Megosztás a következőn keresztül:


Az Azure Kubernetes Service-hez készült, Istio-alapú szolgáltatásháló-bővítmény üzembe helyezése

Ez a cikk bemutatja, hogyan telepítheti az Istio-alapú service mesh bővítményt az Azure Kubernetes Service (AKS) fürthöz.

Az Istio-ról és a service mesh bővítményről további információt az Azure Kubernetes Service Istio-alapú service mesh bővítményében talál.

Mielőtt elkezdené

  • A bővítményhez telepítve kell lennie az Azure CLI 2.57.0-s vagy újabb verziójának. A verzió ellenőrzéséhez futtatható az --version . A telepítéssel vagy frissítéssel kapcsolatban lásd: Az Azure CLI telepítése.

  • Ha meg szeretné tudni, hogy mely Istio-bővítmény-változatok érhetők el egy régióban, és melyek kompatibilisek az AKS-fürtverziókkal, használja a következő parancsot az aks mesh get-revisions:

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

Környezeti változók beállítása

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

Az Istio bővítmény telepítése

Ez a szakasz az Istio bővítmény telepítésének lépéseit tartalmazza a fürt létrehozása során, vagy egy meglévő fürt azure CLI-vel való engedélyezését. Ha a bővítményt a Bicep használatával szeretné telepíteni, tekintse meg az AKS-fürtök a Bicep használatával történő Istio service mesh bővítményével való telepítésének útmutatójában. Az AKS-fürtök Bicep-erőforrásdefiníciójáról további információt a Bicep managedCluster-referenciában talál.

Korrektúra kiválasztása

Ha változat megadása nélkül engedélyezi a bővítményt, egy alapértelmezett támogatott változat lesz telepítve.

Változat megadásához hajtsa végre a következő lépéseket.

  1. az aks mesh get-revisions A paranccsal ellenőrizheti, hogy mely változatok érhetők el egy régió különböző AKS-fürtverzióihoz.
  2. Az elérhető változatok alapján felveheti a --revision asm-X-Y (pl.: --revision asm-1-20) jelzőt az engedélyezési parancsba, amelyet a mesh telepítéséhez használ.

Háló telepítése fürtlétrehozáskor

Ha telepíteni szeretné az Istio bővítményt a fürt létrehozásakor, használja az vagy--enable-asm a --enable-azure-service-mesh paramétert.

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

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

Mesh telepítése meglévő fürthöz

Az alábbi példa engedélyezi az Istio bővítményt egy meglévő AKS-fürthöz:

Fontos

Meglévő fürtön nem engedélyezheti az Istio bővítményt, ha egy OSM-bővítmény már szerepel a fürtön. Az Istio bővítmény telepítése előtt távolítsa el az OSM bővítményt. További információ: OSM-bővítmény eltávolítása az AKS-fürtből. Az Istio bővítmény csak az 1.23-es verziójú >AKS-fürtökön engedélyezhető.

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

Sikeres telepítés ellenőrzése

Annak ellenőrzéséhez, hogy az Istio bővítmény telepítve van-e a fürtön, futtassa a következő parancsot:

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

Ellenőrizze, hogy a kimenet látható-e Istio.

Használja az aks get-credentials az AKS-fürt hitelesítő adatait:

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

Annak ellenőrzésére használható kubectl , hogy istiod a podok (Istio vezérlősík) sikeresen futnak-e:

kubectl get pods -n aks-istio-system

Győződjön meg arról, hogy a istiod pod állapota Running. Példa:

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

Oldalkocsi-injektálás engedélyezése

Ha automatikusan telepíteni szeretné az oldalkocsit az új podokra, a névtereket a jelenleg telepített vezérlősík változatának megfelelő korrektúracímkével kell jegyzetelnie.

Ha nem biztos abban, hogy melyik változat van telepítve, használja a következőt:

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

Alkalmazza a változatcímkét:

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

Fontos

Az alapértelmezett istio-injection=enabled címkézés nem működik. A vezérlősík változatának (például: istio.io/rev=asm-1-18) megfelelő explicit verziószámozásra van szükség.

Az oldalkocsi istioctl kube-injectkézi injektálásához a () és revision (-i-r) paramétereket istioNamespace kell megadnia. Példa:

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

Trigger oldalkocsi injektálás

Üzembe helyezheti a teszteléshez megadott mintaalkalmazást, vagy elindíthatja a sidecar-injektálást a meglévő számítási feladatokhoz.

Meglévő alkalmazások

Ha meglévő alkalmazásokat szeretne hozzáadni a hálóhoz, győződjön meg arról, hogy a névterek az előző lépésben leírtak szerint vannak címkézve, majd indítsa újra az üzemelő példányokat a sidecar-injektálás aktiválásához:

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

Ellenőrizze, hogy a sidecar-injektálás sikeres volt-e, ha biztosítja, hogy az összes tároló készen áll, és keresse meg a istio-proxy tárolót a kubectl describe kimenetben, például:

kubectl describe pod -n namespace <pod name>

A istio-proxy tároló az envoy oldalkocsi. Az alkalmazás most már az adatsík része.

Mintaalkalmazás üzembe helyezése

A kubectl apply mintaalkalmazás üzembe helyezése a fürtön:

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

Győződjön meg arról, hogy számos üzembe helyezés és szolgáltatás jön létre a fürtön. Példa:

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

A szolgáltatások sikeres létrehozásának ellenőrzésére használható kubectl get services :

kubectl get services

Győződjön meg arról, hogy a következő szolgáltatások lettek üzembe helyezve:

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

Ellenőrizze, hogy az összes pod állapota Running két tárolóval rendelkezik-e az READY oszlopban. Az egyes podokhoz hozzáadott második tárolóistio-proxy az Istio által injektált envoy oldalkocsi, a másik pedig az alkalmazástároló.

Ha tesztelni szeretné ezt a mintaalkalmazást a bejövő forgalom ellen, tekintse meg a következő lépéseket.

Erőforrások törlése

A mintaalkalmazás törlésére használható kubectl delete :

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

Ha nem kívánja engedélyezni az Istio bejövő forgalmát a fürtön, és le szeretné tiltani az Istio bővítményt, futtassa a következő parancsot:

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

Figyelemfelhívás

A service mesh bővítmény letiltása teljesen eltávolítja az Istio vezérlősíkot a fürtből.

Az Istio CustomResourceDefintions (CRD-k) alapértelmezés szerint nem törlődnek. A tisztításukhoz használja a következőt:

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

A fürt és a kapcsolódó erőforrások törlésére használható az group delete :

az group delete --name ${RESOURCE_GROUP} --yes --no-wait

Következő lépések