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, а потім виконайте наступні команди.
Визначте бажане імʼя регіону, який підтримує AKS
$ az provider list --query "[?namespace=='Microsoft.ContainerService'].resourceTypes[] | [?resourceType=='managedClusters'].locations[]" -o tsv
Перевірте підтримувані версії Kubernetes для вибраного регіону
Замініть
my location
на значення регіону з попереднього кроку та виконайте:$ az aks get-versions --location "my location" --query "orchestrators[].orchestratorVersion"
Створіть групу ресурсів і розгорніть кластер 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
Отримайте облікові дані
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