Sdílet prostřednictvím


Nasadit doplněk sítě služeb založený na Istiu pro Azure Kubernetes Service

V tomto článku se dozvíte, jak nainstalovat doplněk Istio service mesh pro cluster Azure Kubernetes Service (AKS).

Další informace o Istiu a doplňku service mesh najdete v tématu Service mesh doplněk založený na Istio pro službu Azure Kubernetes Service.

Tip

Azure Copilot můžete použít k nasazení Istia do clusterů AKS na webu Azure Portal. Další informace najdete v tématu Efektivní práce s clustery AKS pomocí Azure Copilotu.

Než začnete

  • Doplněk vyžaduje instalaci Azure CLI verze 2.57.0 nebo novější. Verzi můžete ověřit spuštěním az --version . Pokud chcete nainstalovat nebo upgradovat, přečtěte si téma Instalace Azure CLI.

  • Chcete-li najít informace o tom, které revize doplňků Istio jsou k dispozici v oblasti a jejich kompatibilitu se standardními a LTS verzemi clusterů AKS, použijte příkaz az aks mesh get-revisions.

    az aks mesh get-revisions --location <location> -o table
    

    Další informace o kompatibilitě doplňku Istio s AKS najdete v zásadách podpory kompatibility.

  • V některých případech se při odinstalaci nemusí automaticky vyčistit Istio CRD z předchozích instalací. Přesvědčte se, že jsou odstraněny stávající Istio CRD:

    kubectl delete crd $(kubectl get crd -A | grep "istio.io" | awk '{print $1}')
    

    Doporučuje se také vyčistit další prostředky ze samospravovaných instalací Istio, jako jsou ClusterRoles, MutatingWebhookConfigurations a ValidatingWebhookConfigurations.

  • Všimněte si, že pokud se rozhodnete použít nějaké istioctl příkazy rozhraní příkazového řádku, budete muset přidat příznak, který bude odkazovat na instalaci doplňku Istio: --istioNamespace aks-istio-system

Nastavení proměnných prostředí

export CLUSTER=<cluster-name>
export RESOURCE_GROUP=<resource-group-name>
export LOCATION=<location>

Nainstalovat doplněk Istio

Tato část obsahuje postup instalace doplňku Istio během vytváření clusteru nebo povolení existujícího clusteru pomocí Azure CLI. Pokud chcete doplněk nainstalovat pomocí Bicep, přečtěte si průvodce instalací clusteru AKS s doplňkem Istio Service Mesh pomocí Bicep. Další informace o definici prostředku Bicep pro cluster AKS najdete v referenci ke spravovanému clusteru Bicep.

Note

Pokud potřebujete mít pody vstupní a výstupní brány istiod naplánované na konkrétní uzly, můžete použít systémové uzly AKS nebo štítek uzlu azureservicemesh/istio.replica.preferred. Pody mají vazby na uzly s přednostním váhovým hodnocením 100 pro systémové uzly AKS (s označením kubernetes.azure.com/mode: system) a přednostním váhovým hodnocením 50 pro uzly s označením azureservicemesh/istio.replica.preferred: true.

Výběr revize

Pokud doplněk povolíte bez zadání revize, nainstaluje se vám výchozí podporovaná revize.

Pokud chcete zadat revizi, proveďte následující kroky.

  1. az aks mesh get-revisions Pomocí příkazu zkontrolujte, které revize jsou dostupné pro různé verze clusteru AKS v oblasti.
  2. Na základě dostupných revizí můžete do příkazu povolení, který používáte pro instalaci sítě, zahrnout --revision asm-X-Y příznak (např.: --revision asm-1-24).

Instalace mesh sítě během vytváření clusteru

Chcete-li nainstalovat doplněk Istio při vytváření clusteru, použijte parametr --enable-azure-service-mesh nebo--enable-asm parametr.

az group create --name ${RESOURCE_GROUP} --location ${LOCATION}

az aks create \
    --resource-group ${RESOURCE_GROUP} \
    --name ${CLUSTER} \
    --enable-asm \
    --generate-ssh-keys

Instalace mesh pro existující cluster

Následující příklad povolí doplněk Istio pro existující cluster AKS:

Important

Doplněk Istio není možné povolit v existujícím clusteru, pokud už je v clusteru doplněk OSM. Před instalací doplňku Istio odinstalujte doplněk OSM. Další informace najdete v tématu odinstalace doplňku OSM z clusteru AKS. Doplněk Istio je možné povolit pouze v clusterech AKS verze >= 1.23.

az aks mesh enable --resource-group ${RESOURCE_GROUP} --name ${CLUSTER}

Ověření úspěšné instalace

Pokud chcete ověřit, že je doplněk Istio nainstalovaný v clusteru, spusťte následující příkaz:

az aks show --resource-group ${RESOURCE_GROUP} --name ${CLUSTER}  --query 'serviceMeshProfile.mode'

Potvrďte, že výstup ukazuje Istio.

Slouží az aks get-credentials k získání přihlašovacích údajů pro cluster AKS:

az aks get-credentials --resource-group ${RESOURCE_GROUP} --name ${CLUSTER}

Použijte kubectl k ověření, že pody řídicí roviny (Istio) istiod jsou úspěšně spuštěné:

kubectl get pods -n aks-istio-system

Potvrďte, že pod istiod má stav Running. Například:

NAME                               READY   STATUS    RESTARTS   AGE
istiod-asm-1-24-74f7f7c46c-xfdtl   1/1     Running   0          2m
istiod-asm-1-24-74f7f7c46c-4nt2v   1/1     Running   0          2m

Povolit injektáž sidecaru

Pokud chcete do nových podů automaticky nainstalovat sidecar, musíte anotovat své jmenovité prostory pomocí štítku revize, který odpovídá aktuálně nainstalované revizi řídicího letadla.

Pokud si nejste jistí, která revize je nainstalovaná, použijte:

az aks show --resource-group ${RESOURCE_GROUP} --name ${CLUSTER}  --query 'serviceMeshProfile.istio.revisions'

Použijte štítek revize:

kubectl label namespace default istio.io/rev=asm-X-Y

Important

Explicitní verzování odpovídající revizi kontrolní roviny (např.: istio.io/rev=asm-1-24) se vyžaduje.

Výchozí istio-injection=enabled popisek nebude fungovat a způsobí, že přídavný modul nezahrne injektáž sidecaru do oboru názvů pro doplněk.

Pro ruční injekci sidecaru pomocí istioctl kube-inject musíte zadat další parametry pro istioNamespace (-i) a revision (-r). Například:

kubectl apply -f <(istioctl kube-inject -f sample.yaml -i aks-istio-system -r asm-X-Y) -n foo

Aktivace injektáže postranního kontejneru

Můžete buď nasadit ukázkovou aplikaci poskytnutou pro testování, nebo aktivovat přidání bočního modulu pro stávající pracovní zátěže.

Existující aplikace

Pokud máte existující aplikace, které chcete přidat do mesh sítě, ujistěte se, že jejich obory názvů jsou označené stejně jako v předchozím kroku, a poté restartujte jejich nasazení, aby se spustila injektáž sidecar:

kubectl rollout restart -n <namespace> <deployment name>

Ověřte, že injektáž sidecar kontejneru proběhla úspěšně. Ujistěte se, že všechny kontejnery jsou připravené, a ve výstupu najdete kontejner istio-proxykubectl describe, například:

kubectl describe pod -n namespace <pod name>

Kontejner istio-proxy je sidecar Envoy. Vaše aplikace je teď součástí roviny dat.

Nasazení ukázkové aplikace

Slouží kubectl apply k nasazení ukázkové aplikace v clusteru:

kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.24/samples/bookinfo/platform/kube/bookinfo.yaml

Note

Clustery využívající proxy server HTTP pro odchozí přístup k internetu budou muset nastavit položku služby. Pokyny k nastavení najdete v tématu Podpora proxy serveru HTTP ve službě Azure Kubernetes Service.

Ověřte, že bylo ve vašem clusteru vytvořeno několik nasazení a služeb. Například:

service/details created
serviceaccount/bookinfo-details created
deployment.apps/details-v1 created
service/ratings created
serviceaccount/bookinfo-ratings created
deployment.apps/ratings-v1 created
service/reviews created
serviceaccount/bookinfo-reviews created
deployment.apps/reviews-v1 created
deployment.apps/reviews-v2 created
deployment.apps/reviews-v3 created
service/productpage created
serviceaccount/bookinfo-productpage created
deployment.apps/productpage-v1 created

Slouží kubectl get services k ověření úspěšného vytvoření služeb:

kubectl get services

Ověřte, že byly nasazeny následující služby:

NAME          TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)    AGE
details       ClusterIP   10.0.180.193   <none>        9080/TCP   87s
kubernetes    ClusterIP   10.0.0.1       <none>        443/TCP    15m
productpage   ClusterIP   10.0.112.238   <none>        9080/TCP   86s
ratings       ClusterIP   10.0.15.201    <none>        9080/TCP   86s
reviews       ClusterIP   10.0.73.95     <none>        9080/TCP   86s
kubectl get pods
NAME                              READY   STATUS    RESTARTS   AGE
details-v1-558b8b4b76-2llld       2/2     Running   0          2m41s
productpage-v1-6987489c74-lpkgl   2/2     Running   0          2m40s
ratings-v1-7dc98c7588-vzftc       2/2     Running   0          2m41s
reviews-v1-7f99cc4496-gdxfn       2/2     Running   0          2m41s
reviews-v2-7d79d5bd5d-8zzqd       2/2     Running   0          2m41s
reviews-v3-7dbcdcbc56-m8dph       2/2     Running   0          2m41s

Ověřte, že všechny pody mají stav Running se dvěma kontejnery ve sloupci READY. Druhý kontejner (istio-proxy) přidaný do každého podu je Envoy sidecar vložený od Istio, a ten druhý je kontejner aplikace.

Pokud chcete otestovat tuto ukázkovou aplikaci proti příchozímu provozu, podívejte se na další kroky.

Další kroky