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
Vegye figyelembe, hogy ha bármely
istioctl
CLI-parancsot használ, az Istio bővítmény telepítésére mutató jelölőt kell tartalmaznia:--istioNamespace aks-istio-system
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.
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.- 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 1/1 Running 0 2m
istiod-asm-1-18-74f7f7c46c-4nt2v 1/1 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-inject
ké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
Feljegyzés
A kimenő internet-hozzáféréshez HTTP-proxyt használó fürtöknek szolgáltatásbejegyzést kell beállítaniuk. A telepítési utasításokért lásd: HTTP-proxy támogatása az Azure Kubernetes Service-ben
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 CustomResourceDefintion
s (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
Azure Kubernetes Service