Udostępnij za pośrednictwem


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:

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

  1. 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
    
  2. Utwórz plik główny i plik parametrów.

    touch osm.aks.bicep && touch osm.aks.parameters.json
    
  3. 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: {}
          }
        }
      }
    }
    
  4. 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, k8VersionsshPubKey, location, i adminUsername. Aby znaleźć listę obsługiwanych wersji platformy Kubernetes w twoim regionie, użyj az 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

  1. Otwórz terminal i uwierzytelnij się na koncie platformy Azure dla interfejsu wiersza polecenia platformy az login Azure przy użyciu polecenia .

  2. 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

  1. 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'
    
  2. 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 truewartość . Jeśli tak nie jest, zmień ją na true 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.