Upgrade doplňku Istio service mesh pro Azure Kubernetes Service
Tento článek se zabývá možnostmi upgradu doplňku Istio service mesh pro Službu Azure Kubernetes Service (AKS).
Oznámení o vydání nových dílčích revizí nebo oprav doplňku Istio service mesh se publikují v poznámkách k verzi AKS.
Upgrade podverze
Doplněk Istio umožňuje upgrade dílčí revize pomocí kanárského procesu upgradu. Při zahájení upgradu se řídicí rovina nové (kanárové) revize nasadí spolu s řídicí rovinou staré (stabilní) revize. Úlohy roviny dat pak můžete ručně převést pomocí monitorovacích nástrojů ke sledování stavu úloh během tohoto procesu. Pokud se nezobrazí žádné problémy se stavem úloh, můžete upgrade dokončit, aby v clusteru zůstala jenom nová revize. Jinak se můžete vrátit k předchozí revizi Istio.
Pokud cluster aktuálně používá podporovanou dílčí revizi Istio, upgrady jsou povoleny pouze jednu dílčí revizi najednou. Pokud cluster používá nepodporovanou revizi Istio, musíte upgradovat na nejnižší podporovanou dílčí revizi Istio pro tuto verzi Kubernetes. Potom je možné upgrady znovu provést jednu dílčí revizi najednou.
Následující příklad ukazuje, jak upgradovat z revize asm-1-20
na asm-1-21
. Postup je stejný pro všechny dílčí upgrady.
Pomocí příkazu az aks mesh get-upgrades zkontrolujte, které revize jsou pro cluster k dispozici jako cíle upgradu:
az aks mesh get-upgrades --resource-group $RESOURCE_GROUP --name $CLUSTER
Pokud očekáváte, že se v tomto příkazu nezobrazí novější revize, možná budete muset nejprve upgradovat cluster AKS tak, aby byl kompatibilní s nejnovější revizí.
Pokud jste nastavili konfiguraci sítě pro existující revizi sítě v clusteru, musíte před zahájením kanárového upgradu v dalším kroku vytvořit samostatnou mapu ConfigMap odpovídající nové revizi v
aks-istio-system
oboru názvů. Tato konfigurace platí v okamžiku, kdy se v clusteru nasadí řídicí rovina nové revize. Další podrobnosti najdete tady.Zahájení kanárného upgradu z revize
asm-1-20
naasm-1-21
spuštění upgradu az aks mesh:az aks mesh upgrade start --resource-group $RESOURCE_GROUP --name $CLUSTER --revision asm-1-21
Kanárový upgrade znamená, že řídicí rovina 1.20 je nasazena spolu s řídicí rovinou 1.21. Budou dál existovat, dokud upgrade nedokončíte nebo nevrátíte zpět.
Ověřte pody řídicí roviny odpovídající oběma
asm-1-20
aasm-1-21
existují:Ověření
istiod
podů:kubectl get pods -n aks-istio-system
Příklad výstupu:
NAME READY STATUS RESTARTS AGE istiod-asm-1-20-55fccf84c8-dbzlt 1/1 Running 0 58m istiod-asm-1-20-55fccf84c8-fg8zh 1/1 Running 0 58m istiod-asm-1-21-f85f46bf5-7rwg4 1/1 Running 0 51m istiod-asm-1-21-f85f46bf5-8p9qx 1/1 Running 0 51m
Pokud je povolený příchozí přenos dat, ověřte pody příchozího přenosu dat:
kubectl get pods -n aks-istio-ingress
Příklad výstupu:
NAME READY STATUS RESTARTS AGE aks-istio-ingressgateway-external-asm-1-20-58f889f99d-qkvq2 1/1 Running 0 59m aks-istio-ingressgateway-external-asm-1-20-58f889f99d-vhtd5 1/1 Running 0 58m aks-istio-ingressgateway-external-asm-1-21-7466f77bb9-ft9c8 1/1 Running 0 51m aks-istio-ingressgateway-external-asm-1-21-7466f77bb9-wcb6s 1/1 Running 0 51m aks-istio-ingressgateway-internal-asm-1-20-579c5d8d4b-4cc2l 1/1 Running 0 58m aks-istio-ingressgateway-internal-asm-1-20-579c5d8d4b-jjc7m 1/1 Running 0 59m aks-istio-ingressgateway-internal-asm-1-21-757d9b5545-g89s4 1/1 Running 0 51m aks-istio-ingressgateway-internal-asm-1-21-757d9b5545-krq9w 1/1 Running 0 51m
Všimněte si, že pody brány příchozího přenosu dat obou revizí se nasazují souběžně. Služba a její IP adresa ale zůstávají neměnné.
Znovu oznamte obor názvů tak, aby všechny nové pody získaly sajdkára Istio přidružená k nové revizi a jeho řídicí rovině:
kubectl label namespace default istio.io/rev=asm-1-21 --overwrite
Opětovné označování nemá vliv na vaše úlohy, dokud se nerestartují.
Jednotlivé úlohy aplikace se převrácejí jednotlivě tak, že je restartuje. Příklad:
kubectl rollout restart deployment <deployment name> -n <deployment namespace>
Zkontrolujte monitorovací nástroje a řídicí panely a zjistěte, jestli jsou vaše úlohy spuštěné v dobrém stavu po restartování. Na základě výsledku máte dvě možnosti:
Dokončete kanárný upgrade: Pokud jste spokojeni s tím, že všechny úlohy běží v dobrém stavu podle očekávání, můžete dokončit kanárný upgrade. Dokončení upgradu odebere řídicí rovinu předchozí revize a ponechá řídicí rovinu nové revize v clusteru. Spuštěním následujícího příkazu dokončete kanárný upgrade:
az aks mesh upgrade complete --resource-group $RESOURCE_GROUP --name $CLUSTER
Vrácení zpět kanárného upgradu: V případě, že zaznamenáte problémy se stavem úloh, můžete se vrátit k předchozí revizi Istio:
Znovu oznamte obor názvů předchozí revizi:
kubectl label namespace default istio.io/rev=asm-1-20 --overwrite
Vrácením úloh zpět použijte sajdkár odpovídající předchozí revizi Istio opětovným restartováním těchto úloh:
kubectl rollout restart deployment <deployment name> -n <deployment namespace>
Vrácení řídicí roviny zpět na předchozí revizi:
az aks mesh upgrade rollback --resource-group $RESOURCE_GROUP --name $CLUSTER
Pokud byla konfigurace sítě dříve nastavená pro revize, můžete nyní odstranit objekt ConfigMap pro revizi, která byla odebrána z clusteru během dokončení nebo vrácení zpět.
Poznámka:
Ruční opětovné označování oborů názvů při jejich přesunutí na novou revizi může být zdlouhavé a náchylné k chybám. Značky revizí tento problém řeší. Značky revizí jsou stabilní identifikátory, které odkazují na revize a lze je použít, aby se zabránilo opětovnému označení oborů názvů. Místo opětovného označení oboru názvů může operátor sítě jednoduše změnit značku tak, aby odkazovat na novou revizi. Všechny obory názvů označené danou značkou se aktualizují současně. Mějte ale na paměti, že stále potřebujete restartovat úlohy, abyste měli jistotu, že se vloží správná verze istio-proxy
sajdkár.
Menší upgrady revizí s bránou příchozího přenosu dat
Pokud aktuálně používáte brány příchozího přenosu dat Istio a provádíte menší upgrade revizí, mějte na paměti, že pody nebo nasazení brány příchozího přenosu dat Istio se nasazují podle revize. Poskytujeme však jednu službu LoadBalancer napříč všemi pody brány příchozího přenosu dat přes více revizí, takže se v průběhu upgradu nezmění externí/interní IP adresa bran příchozího přenosu dat.
Pokud tedy v clusteru existují dvě revize současně, bude příchozí provoz obsluhovat pody příchozí brány příchozího přenosu dat obou revizí.
Upgrade verze opravy
- Informace o dostupnosti verze doplňku Istio se publikuje ve zprávě k vydání verze AKS.
- Opravy se automaticky nasadí pro pody istiod a ingress v rámci těchto verzí AKS, které respektují
default
časové období plánované údržby nastavené pro cluster. - Uživatel musí ve svých úlohách inicializovat opravy proxy serveru Istio restartováním podů pro opětovnou instalaci:
Zkontrolujte verzi proxy serveru Istio určeného pro nové nebo restartované pody. Tato verze je stejná jako verze podů istiod a Istio ingress po jejich opravě:
kubectl get cm -n aks-istio-system -o yaml | grep "mcr.microsoft.com\/oss\/istio\/proxyv2"
Příklad výstupu:
"image": "mcr.microsoft.com/oss/istio/proxyv2:1.20.6-distroless", "image": "mcr.microsoft.com/oss/istio/proxyv2:1.20.6-distroless"
Zkontrolujte verzi image proxy istio pro všechny pody v oboru názvů:
kubectl get pods --all-namespaces -o jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.containers[*]}{.image}{", "}{end}{end}' |\ sort |\ grep "mcr.microsoft.com\/oss\/istio\/proxyv2"
Příklad výstupu:
productpage-v1-979d4d9fc-p4764: docker.io/istio/examples-bookinfo-productpage-v1:1.20.0, mcr.microsoft.com/oss/istio/proxyv2:1.20.6-distroless
Pokud chcete aktivovat opětovné spuštění, restartujte úlohy. Příklad:
kubectl rollout restart deployments/productpage-v1 -n default
Pokud chcete ověřit, že jsou teď v novějších verzích, zkontrolujte znovu verzi image proxy istio pro všechny pody v oboru názvů:
kubectl get pods --all-namespaces -o jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.containers[*]}{.image}{", "}{end}{end}' |\ sort |\ grep "mcr.microsoft.com\/oss\/istio\/proxyv2"
Příklad výstupu:
productpage-v1-979d4d9fc-p4764: docker.io/istio/examples-bookinfo-productpage-v1:1.20.0, mcr.microsoft.com/oss/istio/proxyv2:1.20.7-distroless
Poznámka:
V případě jakýchkoli problémů, ke kterým došlo během upgradů, najdete v článku o řešení potíží s upgrady revizí sítě.
Azure Kubernetes Service
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro