Nasazení doplňku Open Service Mesh pomocí Bicep ve službě Azure Kubernetes Service (AKS)

V tomto článku se dozvíte, jak nasadit doplněk Open Service Mesh (OSM) do služby Azure Kubernetes Service (AKS) pomocí šablony Bicep .

Poznámka:

Při vyřazení open service mesh (OSM) od základu CLOUD Native Computing Foundation (CNCF) doporučujeme identifikovat konfigurace OSM a migrovat je na ekvivalentní konfiguraci Istio. Informace o migraci z OSM na Istio najdete v pokynech k migraci konfigurací Open Service Mesh (OSM) do Istio.

Důležité

Na základě verze Kubernetes, na které je cluster spuštěný, nainstaluje doplněk OSM jinou verzi OSM.

Verze Kubernetes Nainstalovaná verze OSM
1.24.0 nebo vyšší 1.2.5
Mezi 1.23.5 a 1.24.0 1.1.3
Nižší než 1,23.5 1.0.0

Starší verze OSM nemusí být k dispozici pro instalaci nebo se aktivně podporují, pokud odpovídající verze AKS dosáhla konce životnosti. Informace o windows podpory verzí AKS najdete v kalendáři verze AKS Kubernetes.

Bicep je jazyk specifický pro doménu, který k nasazení prostředků Azure používá deklarativní syntaxi. Místo vytváření šablon Azure Resource Manageru můžete použít Bicep k nasazení prostředků Azure infrastruktury jako kódu.

Než začnete

Než začnete, ujistěte se, že máte splněné následující požadavky:

Instalace doplňku OSM pro nový cluster AKS pomocí Bicep

Pro nasazení nového clusteru AKS povolíte doplněk OSM při vytváření clusteru. Následující pokyny používají obecnou šablonu Bicep, která nasadí cluster AKS pomocí dočasných disků a síťového kubenet rozhraní kontejneru a potom povolí doplněk OSM. Pokročilejší scénáře nasazení najdete v tématu Co je Bicep?

Vytvoření skupiny zdrojů

  • Pomocí příkazu vytvořte skupinu az group create prostředků.

    az group create --name <my-osm-bicep-aks-cluster-rg> --location <azure-region>
    

Vytvoření hlavních souborů a parametrů Bicep

  1. Vytvořte adresář pro uložení potřebných souborů nasazení Bicep. Následující příklad vytvoří adresář s názvem bicep-osm-aks-addon a změní adresář:

    mkdir bicep-osm-aks-addon
    cd bicep-osm-aks-addon
    
  2. Vytvořte hlavní soubor a soubor parametrů.

    touch osm.aks.bicep && touch osm.aks.parameters.json
    
  3. Otevřete soubor osm.aks.bicep a zkopírujte následující obsah:

    // 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. Otevřete soubor osm.aks.parameters.json a zkopírujte následující obsah. Nezapomeňte nahradit hodnoty parametrů nasazení vlastními hodnotami.

    Poznámka:

    Soubor osm.aks.parameters.json je ukázkový soubor parametrů šablony potřebný pro nasazení Bicep. Aktualizujte parametry speciálně pro vaše prostředí nasazení. Mezi parametry, které potřebujete přidat, patří: clusterName, clusterDNSPrefix, k8Version, sshPubKey, locationa adminUsername. K vyhledání seznamu podporovaných verzí Kubernetes ve vaší oblasti použijte az aks get-versions --location <region> příkaz.

    {
      "$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>"
        }
      }
    }
    

Nasazení souborů Bicep

  1. Pomocí příkazu otevřete terminál a ověřte ho az login ve svém účtu Azure pro Azure CLI.

  2. Pomocí příkazu nasaďte soubory az deployment group create Bicep.

    az deployment group create \
      --name OSMBicepDeployment \
      --resource-group osm-bicep-test \
      --template-file osm.aks.bicep \
      --parameters @osm.aks.parameters.json
    

Ověření instalace doplňku OSM

  1. Zadejte dotaz na profily doplňků clusteru a zkontrolujte povolený stav nainstalovaných doplňků. Následující příkaz by měl vrátit true:

    az aks list -g <my-osm-aks-cluster-rg> -o json | jq -r '.[].addonProfiles.openServiceMesh.enabled'
    
  2. Pomocí následujících kubectl příkazů získejte stav osm kontroleru.

    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
    

Přístup ke konfiguraci doplňku OSM

Řadič OSM můžete nakonfigurovat pomocí prostředku OSM MeshConfig a pomocí Azure CLI můžete zobrazit nastavení konfigurace kontroleru OSM.

  • Pomocí příkazu zobrazte nastavení kubectl get konfigurace kontroleru OSM.

    kubectl get meshconfig osm-mesh-config -n kube-system -o yaml
    

    Tady je příklad výstupu 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
    

    Všimněte si, že enablePermissiveTrafficPolicyMode je nakonfigurováno na true. Režim zásad provozu v OSM obchází vynucení zásad provozu SMI . V tomto režimu osm automaticky zjišťuje služby, které jsou součástí sítě služeb. Zjištěné služby budou mít pravidla zásad provozu naprogramovaná na každém proxy sajdkáře envoy, která umožní komunikaci mezi těmito službami.

    Upozorňující

    Než budete pokračovat, ověřte, že je režim zásad provozu pro uživatele nastavený na truehodnotu . Pokud není, změňte ho na true následující příkaz:

    kubectl patch meshconfig osm-mesh-config -n kube-system -p '{"spec":{"traffic":{"enablePermissiveTrafficPolicyMode":true}}}' --type=merge
    

Vyčištění prostředků

  • Pokud už prostředky Azure nepotřebujete, pomocí příkazu odstraňte testovací skupinu az group delete prostředků nasazení.

    az group delete --name osm-bicep-test
    

    Alternativně můžete z clusteru odinstalovat doplněk OSM a související prostředky. Další informace najdete v tématu Odinstalace doplňku Open Service Mesh z clusteru AKS.

Další kroky

Tento článek vám ukázal, jak nainstalovat doplněk OSM do clusteru AKS a ověřit, že je nainstalovaný a spuštěný. S nainstalovaným doplňkem OSM ve vašem clusteru můžete nasadit ukázkovou aplikaci nebo připojit existující aplikaci pro práci se sítí OSM.