Wdrażanie dodatku Open Service Mesh przy użyciu rozwiązania Bicep w usłudze Azure Kubernetes Service (AKS)
W tym artykule pokazano, jak wdrożyć dodatek Open Service Mesh (OSM) do usługi Azure Kubernetes Service (AKS) przy użyciu szablonu Bicep .
Uwaga
Po wycofaniu usługi Open Service Mesh (OSM) przez Cloud Native Computing Foundation (CNCF) zalecamy zidentyfikowanie konfiguracji OSM i migrację ich do równoważnej konfiguracji istio. Aby uzyskać informacje na temat migracji z osmu do istio, zobacz Wskazówki dotyczące migracji konfiguracji open Service Mesh (OSM) do istio.
Ważne
W oparciu o wersję platformy Kubernetes, która jest uruchomiona, dodatek OSM instaluje inną wersję osmu.
Wersja platformy Kubernetes | Zainstalowano wersję OSM |
---|---|
1.24.0 lub nowsza | 1.2.5 |
Od 1.23.5 do 1.24.0 | 1.1.3 |
Poniżej 1.23.5 | 1.0.0 |
Starsze wersje OSM mogą nie być dostępne do zainstalowania lub być aktywnie obsługiwane, jeśli odpowiednia wersja usługi AKS osiągnęła koniec życia. Możesz sprawdzić kalendarz wydania usługi AKS Kubernetes, aby uzyskać informacje na temat systemu Windows obsługi wersji usługi AKS.
Bicep to język specyficzny dla domeny, który używa składni deklaratywnej do wdrażania zasobów platformy Azure. Bicep można użyć zamiast tworzenia szablonów usługi Azure Resource Manager w celu wdrożenia zasobów platformy Azure w postaci infrastruktury jako kodu.
Zanim rozpoczniesz
Przed rozpoczęciem upewnij się, że zostały spełnione następujące wymagania wstępne:
- Interfejs wiersza polecenia platformy Azure w wersji 2.20.0 lub nowszej. Uruchom polecenie
az --version
, aby dowiedzieć się, jaka wersja jest używana. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure. - Klucz publiczny SSH używany do wdrażania usługi AKS. Aby uzyskać więcej informacji, zobacz Tworzenie kluczy SSH przy użyciu interfejsu wiersza polecenia platformy Azure.
- Program Visual Studio Code z terminalem powłoki Bash.
- Rozszerzenie Bicep programu Visual Studio Code.
Instalowanie dodatku OSM dla nowego klastra usługi AKS przy użyciu narzędzia Bicep
W przypadku wdrożenia nowego klastra usługi AKS należy włączyć dodatek OSM podczas tworzenia klastra. Poniższe instrukcje korzystają z ogólnego szablonu Bicep, który wdraża klaster usługi AKS przy użyciu dysków efemerycznych i kubenet
interfejsu sieciowego kontenera, a następnie włącza dodatek OSM. Aby uzyskać bardziej zaawansowane scenariusze wdrażania, zobacz Co to jest Bicep?
Tworzenie grupy zasobów
Utwórz grupę zasobów przy użyciu
az group create
polecenia .az group create --name <my-osm-bicep-aks-cluster-rg> --location <azure-region>
Tworzenie plików głównych i parametrów Bicep
Utwórz katalog do przechowywania niezbędnych plików wdrożenia Bicep. Poniższy przykład tworzy katalog o nazwie bicep-osm-aks-addon i zmienia się w katalogu:
mkdir bicep-osm-aks-addon cd bicep-osm-aks-addon
Utwórz plik główny i plik parametrów.
touch osm.aks.bicep && touch osm.aks.parameters.json
Otwórz plik osm.aks.bicep i skopiuj go w następującej zawartości:
// https://learn.microsoft.com/azure/aks/troubleshooting#what-naming-restrictions-are-enforced-for-aks-resources-and-parameters @minLength(3) @maxLength(63) @description('Provide a name for the AKS cluster. The only allowed characters are letters, numbers, dashes, and underscore. The first and last character must be a letter or a number.') param clusterName string @minLength(3) @maxLength(54) @description('Provide a name for the AKS dnsPrefix. Valid characters include alphanumeric values and hyphens (-). The dnsPrefix can\'t include special characters such as a period (.)') param clusterDNSPrefix string param k8Version string param sshPubKey string param location string param adminUsername string resource aksCluster 'Microsoft.ContainerService/managedClusters@2021-03-01' = { name: clusterName location: location identity: { type: 'SystemAssigned' } properties: { kubernetesVersion: k8Version dnsPrefix: clusterDNSPrefix enableRBAC: true agentPoolProfiles: [ { name: 'agentpool' count: 3 vmSize: 'Standard_DS2_v2' osDiskSizeGB: 30 osDiskType: 'Ephemeral' osType: 'Linux' mode: 'System' } ] linuxProfile: { adminUsername: adminUserName ssh: { publicKeys: [ { keyData: sshPubKey } ] } } addonProfiles: { openServiceMesh: { enabled: true config: {} } } } }
Otwórz plik osm.aks.parameters.json i skopiuj następującą zawartość. Pamiętaj, aby zastąpić wartości parametrów wdrożenia własnymi wartościami.
Uwaga
Plik osm.aks.parameters.json to przykładowy plik parametrów szablonu potrzebny do wdrożenia Bicep. Zaktualizuj parametry specjalnie dla środowiska wdrażania. Parametry potrzebne do dodania wartości to:
clusterName
, ,clusterDNSPrefix
,k8Version
sshPubKey
,location
, iadminUsername
. Aby znaleźć listę obsługiwanych wersji platformy Kubernetes w twoim regionie, użyjaz aks get-versions --location <region>
polecenia .{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "clusterName": { "value": "<YOUR CLUSTER NAME HERE>" }, "clusterDNSPrefix": { "value": "<YOUR CLUSTER DNS PREFIX HERE>" }, "k8Version": { "value": "<YOUR SUPPORTED KUBERNETES VERSION HERE>" }, "sshPubKey": { "value": "<YOUR SSH KEY HERE>" }, "location": { "value": "<YOUR AZURE REGION HERE>" }, "adminUsername": { "value": "<YOUR ADMIN USERNAME HERE>" } } }
Wdrażanie plików Bicep
Otwórz terminal i uwierzytelnij się na koncie platformy Azure dla interfejsu wiersza polecenia platformy
az login
Azure przy użyciu polecenia .Wdróż pliki Bicep przy
az deployment group create
użyciu polecenia .az deployment group create \ --name OSMBicepDeployment \ --resource-group osm-bicep-test \ --template-file osm.aks.bicep \ --parameters @osm.aks.parameters.json
Weryfikowanie instalacji dodatku OSM
Wykonaj zapytanie dotyczące profilów dodatków klastra, aby sprawdzić stan włączony zainstalowanych dodatków. Następujące polecenie powinno zwrócić polecenie
true
:az aks list -g <my-osm-aks-cluster-rg> -o json | jq -r '.[].addonProfiles.openServiceMesh.enabled'
Uzyskaj stan osm-controller przy użyciu następujących
kubectl
poleceń.kubectl get deployments -n kube-system --selector app=osm-controller kubectl get pods -n kube-system --selector app=osm-controller kubectl get services -n kube-system --selector app=osm-controller
Uzyskiwanie dostępu do konfiguracji dodatku OSM
Kontroler OSM można skonfigurować przy użyciu zasobu OSM MeshConfig i wyświetlić ustawienia konfiguracji kontrolera OSM przy użyciu interfejsu wiersza polecenia platformy Azure.
Wyświetl ustawienia konfiguracji kontrolera OSM przy użyciu
kubectl get
polecenia .kubectl get meshconfig osm-mesh-config -n kube-system -o yaml
Oto przykładowe dane wyjściowe polecenia MeshConfig:
apiVersion: config.openservicemesh.io/v1alpha1 kind: MeshConfig metadata: creationTimestamp: "0000-00-00A00:00:00A" generation: 1 name: osm-mesh-config namespace: kube-system resourceVersion: "2494" uid: 6c4d67f3-c241-4aeb-bf4f-b029b08faa31 spec: certificate: serviceCertValidityDuration: 24h featureFlags: enableEgressPolicy: true enableMulticlusterMode: false enableWASMStats: true observability: enableDebugServer: true osmLogLevel: info tracing: address: jaeger.osm-system.svc.cluster.local enable: false endpoint: /api/v2/spans port: 9411 sidecar: configResyncInterval: 0s enablePrivilegedInitContainer: false envoyImage: mcr.microsoft.com/oss/envoyproxy/envoy:v1.18.3 initContainerImage: mcr.microsoft.com/oss/openservicemesh/init:v0.9.1 logLevel: error maxDataPlaneConnections: 0 resources: {} traffic: enableEgress: true enablePermissiveTrafficPolicyMode: true inboundExternalAuthorization: enable: false failureModeAllow: false statPrefix: inboundExtAuthz timeout: 1s useHTTPSIngress: false
Zwróć uwagę, że
enablePermissiveTrafficPolicyMode
skonfigurowano wartość .true
W OSM tryb zasad ruchu permissive pomija wymuszanie zasad ruchu SMI . W tym trybie OSM automatycznie odnajduje usługi będące częścią siatki usług. Odnalezione usługi będą miały reguły zasad ruchu zaprogramowane na każdym sidecar serwera proxy usługi Envoy, aby umożliwić komunikację między tymi usługami.Ostrzeżenie
Przed kontynuowaniem sprawdź, czy tryb zasad ruchu permissive jest ustawiony na
true
wartość . Jeśli tak nie jest, zmień ją natrue
przy użyciu następującego polecenia:kubectl patch meshconfig osm-mesh-config -n kube-system -p '{"spec":{"traffic":{"enablePermissiveTrafficPolicyMode":true}}}' --type=merge
Czyszczenie zasobów
Jeśli zasoby platformy Azure nie są już potrzebne, usuń grupę zasobów testowych wdrożenia przy użyciu
az group delete
polecenia .az group delete --name osm-bicep-test
Alternatywnie możesz odinstalować dodatek OSM i powiązane zasoby z klastra. Aby uzyskać więcej informacji, zobacz Odinstalowywanie dodatku Open Service Mesh z klastra usługi AKS.
Następne kroki
W tym artykule pokazano, jak zainstalować dodatek OSM w klastrze usługi AKS i sprawdzić, czy jest zainstalowany i uruchomiony. Za pomocą dodatku OSM zainstalowanego w klastrze możesz wdrożyć przykładową aplikację lub dołączyć istniejącą aplikację do pracy z siatką OSM.
Azure Kubernetes Service