Поделиться через


Включение собственного режима бокового автомобиля для надстройки сетки на основе Istio в Служба Azure Kubernetes (AKS) (предварительная версия)

Собственный боковик Kubernetes стремится обеспечить более надежный и удобный способ внедрения шаблонов боковика в приложения Kubernetes, повышения эффективности, надежности и простоты.

Собственный боковик хорошо подходит для Istio. Он предлагает несколько преимуществ, таких как упрощенное управление боковином вагоне. Кроме того, она повышает надежность и координацию. Она также оптимизирует ресурсы и повышает эффективность работы.

Начиная с Kubernetes версии 1.29, функция контейнеров боковика включена для AKS. При этом изменении режим машинного автомобиля Istio можно использовать с надстройкой Istio для AKS.

В этой статье описывается, как включить собственный режим бокового автомобиля для сетки служб на основе Istio в AKS.

Подготовка к работе

  1. Регистрация IstioNativeSidecarModePreview флага компонента с помощью az feature register.

    az feature register --namespace Microsoft.ContainerService --name IstioNativeSidecarModePreview
    
  2. Проверьте состояние регистрации с помощью az feature show.

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

    Для отображения Registeredсостояния занимает несколько минут.

  3. Когда состояние отражает зарегистрировано, обновите регистрацию Microsoft.ContainerService поставщика ресурсов с помощью az provider register.

    az provider register --namespace Microsoft.ContainerService
    

В существующем кластере

Проверка версий

  1. Убедитесь, что версия уровня управления Kubernetes кластера AKS — 1.29 или выше с помощью az aks show.

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

    Если версия уровня управления слишком старая, обновите плоскость управления Kubernetes.

  2. Убедитесь, что пулы узлов выполняются 1.29 или работают более новая версия и состояние питания.

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

    Внимание

    В собственном режиме бокового автомобиля требуется плоскость управления Kubernetes и плоскость данных 1.29+. Убедитесь, что все узлы были обновлены до версии 1.29, прежде чем включить собственный режим бокового автомобиля. В противном случае боковики не будут работать должным образом.

    Если какая-либо версия пула узлов слишком старая, обновите образ узла до 1.29 или более новой версии.

  3. Убедитесь, что надстройка Istio включена asm-1-20 или более новая редакция.

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

    Если istiod обновление слишком старое, выполните asm-1-20 действия, описанные в обновлении Istio.

Проверка состояния функции собственного бокового автомобиля в плоскости управления Istio

Кластер AKS необходимо примирить с командой az aks update .

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

Если включен собственный режим бокового автомобиля, переменная ENABLE_NATIVE_SIDECARS среды отображается со значением true в шаблоне pod уровня управления Istio. Чтобы проверить istiod развертывание, используйте следующую команду.

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

Перезапуск рабочих нагрузок

После того как плоскость управления Istio будет готова, выполните перезагрузку рабочих нагрузок, чтобы позволить istiod внедрять собственные боковики.

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

Для развертываний, имеющих istio sidecars, внедренных с помощью istioctl kube-inject, необходимо перепроектировать боковики.

Проверка внедрения боковинка

Если режим собственной стороны успешно включен, istio-proxy контейнер отображается как контейнер инициализации. Используйте следующую команду, чтобы проверить внедрение боковой кареты:

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

istio-proxy контейнер должен отображаться как контейнер инициализации.

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

Создание нового кластера

При создании кластера AKS с помощью команды az aks create выберите версию 1.29 или более новую, istio asm-1-20 или более новую. Новый кластер должен включать собственный режим бокового автомобиля автоматически.

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

Следующие шаги