Freigeben über


Aktivieren des nativen Sidecar-Modus für das Istio-basierte Servicenetz-Add-On für Azure Kubernetes Service (AKS) (Vorschau)

Kubernetes natives Sidecar soll eine robustere und benutzerfreundlichere Möglichkeit bieten, Sidecar-Muster in Kubernetes-Anwendungen zu integrieren, um Effizienz, Zuverlässigkeit und Einfachheit zu verbessern.

Natives Sidecar ist eine gute Passform für Istio. Es bietet mehrere Vorteile, z. B. vereinfachtes Sidecar-Management. Darüber hinaus verbessert es Zuverlässigkeit und Koordination. Außerdem werden Ressourcen optimiert und die betriebliche Effizienz verbessert.

Ab Kubernetes Version 1.29 ist das Feature Sidecar-Container für AKS aktiviert. Mit dieser Änderung kann der Istio-native Sidecar-Modus mit dem Istio-Add-On für AKS verwendet werden.

In diesem Artikel wird beschrieben, wie Sie den nativen Sidecar-Modus für Istio-basierte Dienstgitter auf AKS aktivieren.

Voraussetzungen

  1. Registrieren Sie die IstioNativeSidecarModePreview-Featurekennzeichnung über az Featureregister.

    az feature register --namespace Microsoft.ContainerService --name IstioNativeSidecarModePreview
    
  2. Überprüfen Sie den Registrierungsstatus über az feature show.

    az feature show --namespace Microsoft.ContainerService --name IstioNativeSidecarModePreview
    

    Es dauert ein paar Minuten, bis der Status Registered angezeigt wird.

  3. Wenn der Status „Registriert“ widerspiegelt, aktualisieren Sie die Registrierung des Microsoft.ContainerService-Ressourcenanbieters über az provider register.

    az provider register --namespace Microsoft.ContainerService
    

Auf einem vorhandenen Cluster

Überprüfen von Versionen

  1. Überprüfen Sie, mit az aks show ob die Kubernetes-Steuerebenenversion des AKS-Clusters 1.29 oder höher ist.

    az aks show --resource-group $RESOURCE_GROUP --name $CLUSTER -o json | jq ".kubernetesVersion"
    

    Wenn die Steuerebene zu alt ist, aktualisieren Sie Kubernetes Steuerebene.

  2. Stellen Sie sicher, dass Knotenpools 1.29 oder neuere Version ausführen und der Energiezustand ausgeführt wird.

    az aks show --resource-group $RESOURCE_GROUP --name $CLUSTER -o json | jq ".agentPoolProfiles[] | { currentOrchestratorVersion, powerState}"
    

    Achtung

    Der native Sidecar-Modus erfordert sowohl Kubernetes Steuerebene als auch die Datenebene auf 1.29+. Stellen Sie sicher, dass alle Knoten auf 1.29 aktualisiert wurden, bevor Sie den nativen Sidecar-Modus aktivieren. Andernfalls funktionieren Sidecars nicht wie erwartet.

    Wenn eine Knotenpoolversion zu alt ist, verwenden Sie upgrade-node-image, um auf 1.29 oder eine neuere Version zu aktualisieren.

  3. Stellen Sie sicher, dass das Istio-Add-On auf asm-1-20 oder neuere Überarbeitung aktiviert ist.

    az aks show --resource-group $RESOURCE_GROUP --name $CLUSTER -o json | jq ".serviceMeshProfile.istio.revisions"
    

    Wenn istiod zu alt ist, führen Sie ein Upgrade auf asm-1-20 oder neuer aus, indem Sie die Schritte in Istio-Upgrade ausführen.

Überprüfen des systemeigenen Sidecar-Featurestatus auf der Istio-Steuerebene

AKS-Cluster muss mit dem Befehl az aks update in Einklang gebracht werden.

az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER

Wenn der native Sidecar-Modus aktiviert ist, wird die Umgebungsvariable ENABLE_NATIVE_SIDECARS mit dem Wert true in der Podvorlage für die Steuerebene von Istio angezeigt. Verwenden Sie den folgenden Befehl, um die Bereitstellung istiod zu überprüfen.

kubectl get deployment -l app=istiod -n aks-istio-system -o json | jq '.items[].spec.template.spec.containers[].env[] | select(.name=="ENABLE_NATIVE_SIDECARS")'

Workloads neu starten

Sobald die Istio-Steuerungsebene fertig ist, führen Sie einen rollierenden Neustart von Workloads durch, damit istiod native Sidecars eingefügt werden können.

for ns in $(kubectl get ns -l istio.io/rev -o=jsonpath='{.items[0].metadata.name}'); do
  kubectl rollout restart deployments -n $ns
done

Für Bereitstellungen mit istio Sidecars, die mit istioctl kube-inject injiziert werden, müssen Sie Sidecars reinwerfen.

Sidecar-Injektion prüfen

Wenn der systemeigene Seitenmodus erfolgreich aktiviert ist, wird der istio-proxy-Container als Init-Container angezeigt. Verwenden Sie den folgenden Befehl, um die Sidecar-Injektion zu überprüfen:

kubectl get pods -o "custom-columns=NAME:.metadata.name,INIT:.spec.initContainers[*].name,CONTAINERS:.spec.containers[*].name"

istio-proxy-Container sollte als Init-Container angezeigt werden.

NAME                     INIT                     CONTAINERS
sleep-7656cf8794-5b5j4   istio-init,istio-proxy   sleep

Neuen Cluster erstellen

Wenn Sie ein neues AKS-Cluster mit dem Befehl az aks create erstellen, wählen Sie eine Version 1.29 oder neuer und istio asm-1-20 oder neuer aus. Das neue Cluster sollte den systemeigenen Sidecar-Modus automatisch aktiviert haben.

az aks create \
    --resource-group $RESOURCE_GROUP \
    --name $CLUSTER \
    --enable-asm \
    --kubernetes-version 1.29 \
    --revision asm-1-20 \
    --generate-ssh-keys    
    ...

Nächste Schritte