Google Cloud ਨੇ ਐਲਾਨ ਕੀਤਾ ਹੈ ਕਿ ਇਸਦੀ GKE ਸੇਵਾ ਹੁਣ ਆਮ ਤੌਰ 'ਤੇ ਉਪਲਬਧ (generally-available) ਦੋ-ਪੜਾਵੀ ਕੰਟਰੋਲ-ਪਲੇਨ ਅੱਪਗ੍ਰੇਡ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ, ਜੋ ਗਾਹਕਾਂ ਨੂੰ ਸੌਫਟਵੇਅਰ ਬਾਈਨਰੀ ਅੱਪਗ੍ਰੇਡ ਨੂੰ ਡਾਟਾ-ਫਾਰਮੈਟ ਮਾਈਗ੍ਰੇਸ਼ਨ ਤੋਂ ਵੱਖ ਕਰਨ ਅਤੇ ਮਾਈਨਰ ਵਰਜ਼ਨ ਤਬਦੀਲੀਆਂ ਦੌਰਾਨ ਰੋਲਬੈਕ ਵਿੰਡੋ ਨੂੰ ਖੁੱਲ੍ਹਾ ਰੱਖਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੀ ਹੈ।
GKE ਨੂੰ ਇੱਕ ਸੁਰੱਖਿਅਤ ਮਾਰਗ ਦੀ ਲੋੜ ਕਿਉਂ ਸੀ
Kubernetes ਕੰਟਰੋਲ ਪਲੇਨ ਨੂੰ ਇੱਕ ਮਾਈਨਰ ਵਰਜ਼ਨ ਤੋਂ ਅਗਲੇ ਵਰਜ਼ਨ 'ਤੇ ਅੱਪਗ੍ਰੇਡ ਕਰਨ ਵਿੱਚ ਹਮੇਸ਼ਾ ਜੋਖਮ ਰਿਹਾ ਹੈ। 1.33 ਤੋਂ 1.34 ਤੱਕ ਦਾ ਬਦਲਾਅ ਨਾ ਸਿਰਫ਼ ਬਾਈਨਰੀਆਂ ਨੂੰ ਬਦਲਦਾ ਹੈ ਬਲਕਿ ਅੰਡਰਲਾਈਂਗ ਡਾਟਾ ਸਟ੍ਰਕਚਰ ਨੂੰ ਵੀ ਦੁਬਾਰਾ ਲਿਖਦਾ ਹੈ। ਜੇਕਰ ਨਵੇਂ ਵਰਜ਼ਨ ਵਿੱਚ ਕੋਈ ਬੱਗ (bug) ਹੈ, ਤਾਂ ਕਲੱਸਟਰ ਨੂੰ ਸਿਰਫ਼ ਵਾਪਸ ਨਹੀਂ ਲਿਆ ਜਾ ਸਕਦਾ; ਐਡਮਿਨਿਸਟ੍ਰੇਟਰਾਂ ਨੂੰ ਪੁਰਾਣੇ ਡਾਟਾਬੇਸ ਸਨੈਪਸ਼ਾਟਸ ਨੂੰ ਰਿਸਟੋਰ ਕਰਨਾ ਪੈਂਦਾ ਹੈ ਜਾਂ ਪੂਰੇ ਕਲੱਸਟਰ ਨੂੰ ਮੁੜ ਬਣਾਉਣਾ ਪੈਂਦਾ ਹੈ, ਜੋ ਕਿ ਇੱਕ ਸਮਾਂ ਲੈਣ ਵਾਲੀ ਅਤੇ ਗਲਤੀ-ਪੂਰਨ ਪ੍ਰਕਿਰਿਆ ਹੈ।
ਦੋ-ਪੜਾਵੀ ਅੱਪਗ੍ਰੇਡ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ
ਨਵਾਂ ਫਲੋਅ ਅੱਪਗ੍ਰੇਡ ਨੂੰ ਦੋ ਵੱਖ-ਵੱਖ ਪੜਾਵਾਂ ਵਿੱਚ ਵੰਡਦਾ ਹੈ:
- ਪੜਾਅ 1 – ਬਾਈਨਰੀ ਅੱਪਗ੍ਰੇਡ (emulated mode)। GKE ਪੁਰਾਣੇ ਡਾਟਾ ਫਾਰਮੈਟ ਨੂੰ ਬਰਕਰਾਰ ਰੱਖਦੇ ਹੋਏ ਕੰਟਰੋਲ-ਪਲੇਨ ਬਾਈਨਰੀਆਂ ਨੂੰ ਟਾਰਗੇਟ ਵਰਜ਼ਨ ਵਿੱਚ ਬਦਲ ਦਿੰਦਾ ਹੈ। ਕਿਉਂਕਿ ਕੋਈ ਨਵਾਂ ਡਾਟਾ ਸਟ੍ਰਕਚਰ ਨਹੀਂ ਲਿਖਿਆ ਜਾਂਦਾ, ਇਸ ਲਈ ਕਲੱਸਟਰ ਇਸ ਪੜਾਅ ਦੌਰਾਨ ਰੋਲਬੈਕ-ਸੁਰੱਖਿਅਤ ਰਹਿੰਦਾ ਹੈ।
- ਪੜਾਅ 2 – ਫਾਈਨਲਾਈਜ਼ੇਸ਼ਨ (Finalization)। ਇੱਕ ਕੌਂਫਿਗਰੇਬਲ ਇੰਤਜ਼ਾਰ ਦੀ ਮਿਆਦ ਤੋਂ ਬਾਅਦ, GKE ਸਟੋਰ ਕੀਤੇ ਡਾਟਾ ਨੂੰ ਨਵੇਂ ਫਾਰਮੈਟ ਵਿੱਚ ਬਦਲ ਦਿੰਦਾ ਹੈ। ਇੱਕ ਵਾਰ ਇਹ ਕਨਵਰਸ਼ਨ ਪੂਰਾ ਹੋ ਜਾਣ ਤੋਂ ਬਾਅਦ, ਰੋਲਬੈਕ ਕਰਨ ਲਈ ਉਸੇ ਸਨੈਪਸ਼ਾਟ-ਰਿਸਟੋਰ ਕੋਸ਼ਿਸ਼ ਦੀ ਲੋੜ ਹੋਵੇਗੀ ਜਿਸ ਤੋਂ ਬਚਣ ਲਈ ਦੋ-ਪੜਾਵੀ ਪ੍ਰਕਿਰਿਆ ਤਿਆਰ ਕੀਤੀ ਗਈ ਸੀ।
ਇਹ ਵੱਖਰਾਅ ਇੱਕ “soak window” ਬਣਾਉਂਦਾ ਹੈ ਜਿੱਥੇ ਆਪਰੇਟਰ ਅਟੱਲ ਡਾਟਾ ਮਾਈਗ੍ਰੇਸ਼ਨ ਲਈ ਵਚਨਬੱਧ ਹੋਏ ਬਿਨਾਂ ਪ੍ਰੋਡਕਸ਼ਨ ਵਿੱਚ ਅੱਪਗ੍ਰੇਡ ਕੀਤੀਆਂ ਬਾਈਨਰੀਆਂ ਦੀ ਨਿਗਰਾਨੀ ਕਰ ਸਕਦੇ ਹਨ।
ਅਭਿਆਸ ਵਿੱਚ soak window
GKE soak ਪੀਰੀਅਡ ਦੌਰਾਨ ਮੁੱਖ ਸਿਹਤ ਮੈਟ੍ਰਿਕਸ—API latency, error rates, ਅਤੇ pod health ਦੀ ਆਪਣੇ ਆਪ ਨਿਗਰਾਨੀ ਕਰਦਾ ਹੈ। ਜੇਕਰ ਸੇਵਾ ਕਿਸੇ ਅਨੋਮਲੀ (anomaly) ਦਾ ਪਤਾ ਲਗਾਉਂਦੀ ਹੈ, ਤਾਂ ਇਹ ਰੋਲਆਊਟ ਨੂੰ ਰੋਕ ਦਿੰਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਕਲੱਸਟਰ ਬਾਈਨਰੀ-ਸਿਰਫ਼ ਸਥਿਤੀ ਵਿੱਚ ਰਹਿੰਦਾ ਹੈ ਜਿੱਥੇ ਰੋਲਬੈਕ ਅਜੇ ਵੀ ਸੰਭਵ ਹੈ। Google ਇਸ ਪੈਟਰਨ ਦੀ ਪਾਲਣਾ ਕਰਨ ਵਾਲੇ ਅੱਪਗ੍ਰੇਡਾਂ ਲਈ 99.999% ਸਫਲਤਾ ਦਰ ਦਾ ਹਵਾਲਾ ਦਿੰਦਾ ਹੈ।
ਉਹਨਾਂ ਕਲੱਸਟਰਾਂ ਲਈ ਜੋ GKE ਦੀ auto-upgrade ਵਿਸ਼ੇਸ਼ਤਾ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ, ਪਲੇਟਫਾਰਮ ਮੈਨੂਅਲ ਦਖਲਅੰਦਾਜ਼ੀ ਤੋਂ ਬਿਨਾਂ ਪੂਰੀ ਦੋ-ਪੜਾਵੀ ਲੜੀ ਨੂੰ ਸੰਚਾਲਿਤ ਕਰਦਾ ਹੈ। ਉਹ ਉਪਭੋਗਤਾ ਜੋ ਪੂਰਾ ਕੰਟਰੋਲ ਚਾਹੁੰਦੇ ਹਨ, ਉਹ Cloud CLI ਜਾਂ Terraform ਰਾਹੀਂ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਚਲਾ ਸਕਦੇ ਹਨ।
ਮੈਨੂਅਲ ਦੋ-ਪੜਾਵੀ ਅੱਪਗ੍ਰੇਡ ਚਲਾਉਣਾ
48-ਘੰਟੇ ਦੀ ਸੁਰੱਖਿਆ ਵਿੰਡੋ ਦੇ ਨਾਲ ਇੱਕ ਆਮ ਮੈਨੂਅਲ ਅੱਪਗ੍ਰੇਡ ਇਸ ਤਰ੍ਹਾਂ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ:
gcloud beta container clusters upgrade my-cluster \
--location=us-central1 \
--cluster-version=1.34.1-gke.1829001 \
--control-plane-soak-duration=48h \
--master
ਮੌਜੂਦਾ ਸਥਿਤੀ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ:
gcloud container clusters describe my-cluster \
--location=us-central1 \
--format="yaml(rollbackSafeUpgradeStatus)"
ਜੇਕਰ soak ਦੌਰਾਨ ਕੋਈ 결함 (defect) ਸਾਹਮਣੇ ਆਉਂਦਾ ਹੈ, ਤਾਂ ਐਡਮਿਨਿਸਟ੍ਰੇਟਰ ਡਾਟਾ ਨੁਕਸਾਨ ਤੋਂ ਬਿਨਾਂ ਰੋਲਬੈਕ ਕਮਾਂਡ ਜਾਰੀ ਕਰ ਸਕਦਾ ਹੈ ਅਤੇ ਪਿਛਲੇ ਵਰਜ਼ਨ 'ਤੇ ਵਾਪਸ ਜਾ ਸਕਦਾ ਹੈ। ਜਦੋਂ ਕਲੱਸਟਰ ਸਥਿਰ ਹੋ ਜਾਂਦਾ ਹੈ, ਤਾਂ complete-control-plane-upgrade ਕਮਾਂਡ ਨਾਲ ਅੱਪਗ੍ਰੇਡ ਨੂੰ ਜਲਦੀ ਪੂਰਾ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
ਸੀਮਾਵਾਂ ਅਤੇ ਲੋੜਾਂ
- ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ ਵਰਜ਼ਨ 1.33 ਜਾਂ ਇਸ ਤੋਂ ਬਾਅਦ ਚੱਲ ਰਹੇ GKE ਕਲੱਸਟਰਾਂ 'ਤੇ ਲਾਗੂ ਹੁੰਦੀ ਹੈ।
- ਇੱਕ ਸਮੇਂ ਵਿੱਚ ਸਿਰਫ਼ ਇੱਕ ਹੀ ਮਾਈਨਰ ਵਰਜ਼ਨ ਨੂੰ ਅੱਪਗ੍ਰੇਡ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ; ਵਰਜ਼ਨਾਂ ਨੂੰ ਛੱਡਣਾ (skipping) ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ।
- ਦੋ-ਪੜਾਵੀ ਪ੍ਰਕਿਰਿਆ ਦੌਰਾਨ Autopilot ਅਤੇ ਰੀਜਨਲ ਕਲੱਸਟਰ ਦੋਵੇਂ ਉਪਲਬਧ ਰਹਿੰਦੇ ਹਨ।
ਸੰਭਾਵੀ ਨੁਕਸਾਨ
ਬਾਈਨਰੀ ਅਤੇ ਡਾਟਾ ਅੱਪਗ੍ਰੇਡਾਂ ਨੂੰ ਵੱਖ ਕਰਨ ਨਾਲ ਅੱਪਗ੍ਰੇਡ ਟਾਈਮਲਾਈਨ ਵਿੱਚ ਇੱਕ ਵਾਧੂ ਕਦਮ ਜੁੜ ਜਾਂਦਾ ਹੈ, ਜੋ ਉਹਨਾਂ ਸੰਸਥਾਵਾਂ ਲਈ ਸਮੁੱਚੀ ਵਿੰਡੋ ਨੂੰ ਵਧਾ ਸਕਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਨੂੰ ਤੇਜ਼ੀ ਨਾਲ ਵਰਜ਼ਨ ਤਬਦੀਲੀਆਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। Soak ਪੀਰੀਅਡ ਆਟੋਮੇਟਡ ਹੈਲਥ ਚੈੱਕ 'ਤੇ ਵੀ ਨਿਰਭਰ ਕਰਦਾ ਹੈ; ਉਹ ਟੀਮਾਂ ਜੋ ਬਹੁਤ ਜ਼ਿਆਦਾ ਕਸਟਮਾਈਜ਼ਡ ਵਰਕਲੋਡ ਚਲਾਉਂਦੀਆਂ ਹਨ, ਉਹਨਾਂ ਨੂੰ ਐਜ-ਕੇਸ ਰਿਗਰੈਸ਼ਨ (edge-case regressions) ਨੂੰ ਫੜਨ ਲਈ GKE ਦੀ ਨਿਗਰਾਨੀ ਦੇ ਨਾਲ ਆਪਣੇ ਔਬਜ਼ਰਵੇਬਿਲਟੀ ਟੂਲਿੰਗ (observability tooling) ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ।
ਅੱਗੇ ਕੀ ਦੇਖਣਾ ਹੈ
Google ਨੇ ਮੇਜਰ ਵਰਜ਼ਨ ਅੱਪਗ੍ਰੇਡਾਂ ਲਈ ਦੋ-ਪੜਾਵੀ ਮਾਡਲ ਨੂੰ ਵਧਾਉਣ ਲਈ ਕੋਈ ਰੋਡਮੈਪ disclosed ਨਹੀਂ ਕੀਤਾ ਹੈ, ਜਿਸ ਲਈ ਅਜੇ ਵੀ ਕਈ ਮਾਮਲਿਆਂ ਵਿੱਚ ਪੂਰੇ ਕਲੱਸਟਰ ਦੇ ਮੁੜ ਨਿਰਮਾਣ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਨਿਰੀਖਕ ਨੋਡ-ਪੂਲ ਅੱਪਗ੍ਰੇਡਾਂ ਲਈ ਅਜਿਹੇ ਹੀ ਸੁਰੱਖਿਆ ਨੈੱਟਾਂ ਅਤੇ ਕਿਸੇ ਤੀਜੀ-ਪਾਰਟੀ CI/CD ਪਾਈਪਲਾਈਨਾਂ ਨਾਲ ਕਿਸੇ ਵੀ ਇੱਕੀਕਰਨ (integration) ਬਾਰੇ ਐਲਾਨਾਂ ਦੀ ਉਡੀਕ ਕਰਨਗੇ ਜੋ soak-window ਚੈੱਕ ਨੂੰ ਆਟੋਮੇਟ ਕਰ ਸਕਦੇ ਹਨ।
ਸਿੱਟਾ (Takeaway): ਬਾਈਨਰੀ ਅੱਪਗ੍ਰੇਡਾਂ ਨੂੰ ਡਾਟਾ ਮਾਈਗ੍ਰੇਸ਼ਨ ਤੋਂ ਵੱਖ ਕਰਕੇ, GKE ਪਲੇਟਫਾਰਮ ਇੰਜੀਨੀਅਰਾਂ ਨੂੰ ਮਾਈਨਰ ਵਰਜ਼ਨ ਤਬਦੀਲੀਆਂ ਲਈ ਇੱਕ ਵਿਵਹਾਰਕ ਰੋਲਬੈਕ ਵਿੰਡੋ ਦਿੰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਡਾਊਨਟਾਈਮ ਨੂੰ ਘੱਟ ਰੱਖਦੇ ਹੋਏ ਕਲੱਸਟਰ ਰੱਖ-ਰਖਾਅ ਦੀ ਸੰਚਾਲਨ ਲਾਗਤ ਘਟਦੀ ਹੈ।
