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