Azure

Слідуйте цим інструкціям для підготовки Azure кластера для Istio.

Ви можете розгорнути Kubernetes кластер на Azure через AKS або Cluster API provider for Azure (CAPZ) для самостійно керованого Kubernetes або AKS, який повністю підтримує Istio.

AKS

Ви можете створити кластер AKS через численні засоби, такі як az cli, портал Azure, az cli з Bicep або Terraform.

Для варіанту з az cli виконайте автентифікацію через az login АБО використовуйте Cloud Shell, а потім виконайте наступні команди.

  1. Визначте бажане імʼя регіону, який підтримує AKS

    $ az provider list --query "[?namespace=='Microsoft.ContainerService'].resourceTypes[] | [?resourceType=='managedClusters'].locations[]" -o tsv
  2. Перевірте підтримувані версії Kubernetes для вибраного регіону

    Замініть my location на значення регіону з попереднього кроку та виконайте:

    $ az aks get-versions --location "my location" --query "orchestrators[].orchestratorVersion"
  3. Створіть групу ресурсів і розгорніть кластер AKS

    Замініть myResourceGroup та myAKSCluster на бажані імена, my location на значення з кроку 1, 1.28.3 на підтримувану версію в регіоні та виконайте:

    $ az group create --name myResourceGroup --location "my location"
    $ az aks create --resource-group myResourceGroup --name myAKSCluster --node-count 3 --kubernetes-version 1.28.3 --generate-ssh-keys
  4. Отримайте облікові дані kubeconfig для AKS

    Замініть myResourceGroup та myAKSCluster на імена з попереднього кроку та виконайте:

    $ az aks get-credentials --resource-group myResourceGroup --name myAKSCluster

Using Gateway API with Azure

Якщо ви використовуєте Gateway API з AKS, вам також може знадобитися додати наступну конфігурацію до ресурсу Gateway:

infrastructure:
  annotations:
    service.beta.kubernetes.io/port_<http[s] port>_health-probe_protocol: tcp

де <http[s] port> — номер порту вашого HTTP(S)-прослуховувача. Якщо у вас є кілька прослуховувачів HTTP(S), вам потрібно додати анотацію для кожного прослуховувача. Ця анотація необхідна для роботи перевірок працездатності Azure Load Balancer, коли шлях / не відповідає кодом 200.

Наприклад, якщо ви використовуєте приклад Ingress Gateways з використанням Gateway API, вам потрібно буде розгорнути наступний Gateway:

$ kubectl apply -f - <<EOF
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: httpbin-gateway
spec:
  infrastructure:
    annotations:
      service.beta.kubernetes.io/port_80_health-probe_protocol: tcp
  gatewayClassName: istio
  listeners:
  - name: http
    hostname: "httpbin.example.com"
    port: 80
    protocol: HTTP
    allowedRoutes:
      namespaces:
        from: Same
EOF
Чи була ця інформація корисною?
Чи є у вас пропозиції щодо покращення?

Дякуємо за ваш відгук!