Sdílet prostřednictvím


Integrace se službou Open Service Mesh ve službě Azure Kubernetes Service (AKS)

Doplněk Open Service Mesh (OSM) se integruje s funkcemi, které poskytuje Azure a některé opensourcové projekty.

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 integrace s open source projekty se nevztahují zásady podpory AKS.

Příchozí přenos dat

Příchozí přenos dat umožňuje směrovat provoz mimo síť do služeb v rámci sítě. S OSM můžete nakonfigurovat většinu řešení příchozího přenosu dat tak, aby fungovala se sítí, ale OSM funguje nejlépe s jedním z následujících řešení:

Poznámka:

V tuto chvíli funguje kontroler příchozího přenosu dat služby Azure Gateway (AGIC) jenom pro back-endy HTTP. Pokud nakonfigurujete osm pro použití AGIC, AGIC se nepoužije pro jiné back-endy, jako je HTTPS a mTLS.

Použití kontroleru příchozího přenosu dat služby Azure Gateway (AGIC) s doplňkem OSM pro příchozí přenos dat HTTP

Důležité

Pro příchozí přenos dat HTTPS nemůžete nakonfigurovat kontroler příchozího přenosu dat služby Azure Gateway (AGIC ).

Vytvoření oboru názvů a nasazení aplikační služby

  1. Instalace kontroleru příchozího přenosu dat AGIC.

  2. Pomocí příkazu vytvořte obor názvů pro aplikační službu kubectl create ns .

    kubectl create ns httpbin
    
  3. Přidejte obor názvů do sítě pomocí osm namespace add příkazu OSM CLI.

    osm namespace add httpbin
    
  4. Pomocí příkazu nasaďte aplikační službu do oboru názvů kubectl apply .

    export RELEASE_BRANCH=release-v1.2
    kubectl apply -f https://raw.githubusercontent.com/openservicemesh/osm-docs/$RELEASE_BRANCH/manifests/samples/httpbin/httpbin.yaml -n httpbin
    
  5. Pomocí příkazu ověřte, že jsou pody spuštěné a spuštěné, a pomocí příkazu vložil kubectl get pods envoy sidecar.

    kubectl get pods -n httpbin
    

    Výstup by měl vypadat podobně jako v následujícím příkladu výstupu:

    NAME                      READY   STATUS    RESTARTS   AGE
    httpbin-7c6464475-9wrr8   2/2     Running   0          6d20h
    
  6. Vypíše podrobnosti o službě kubectl get svc pomocí příkazu.

    kubectl get svc -n httpbin
    

    Výstup by měl vypadat podobně jako v následujícím příkladu výstupu:

    NAME      TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)     AGE
    httpbin   ClusterIP   10.0.92.135   <none>        14001/TCP   6d20h
    

Nasaďte konfigurace příchozího přenosu dat a ověřte přístup k aplikační službě.

  1. Nasaďte následující Ingress konfigurace a IngressBackend povolte externím klientům přístup httpbin ke službě na portu 14001 pomocí kubectl apply příkazu.

    kubectl apply -f <<EOF
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: httpbin
      namespace: httpbin
      annotations:
        kubernetes.io/ingress.class: azure/application-gateway
    spec:
      rules:
     - http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: httpbin
                port:
                  number: 14001
    ---
    kind: IngressBackend
    apiVersion: policy.openservicemesh.io/v1alpha1
    metadata:
      name: httpbin
      namespace: httpbin
    spec:
      backends:
     - name: httpbin
        port:
          number: 14001 # targetPort of httpbin service
          protocol: http
      sources:
     - kind: IPRange
        name: 10.0.0.0/8
    EOF
    
  2. Pomocí příkazu ověřte, že Ingress se objekt úspěšně nasadil kubectl get ingress , a poznamenejte si externí IP adresu.

    kubectl get ingress -n httpbin
    

    Výstup by měl vypadat podobně jako v následujícím příkladu výstupu:

    NAME      CLASS    HOSTS   ADDRESS         PORTS   AGE
    httpbin   <none>   *       20.85.173.179   80      6d20h
    
  3. Pomocí příkazu ověřte, že IngressBackend se objekt úspěšně nasadil kubectl get ingressbackend .

    kubectl get ingressbackend -n httpbin
    

    Výstup by měl vypadat podobně jako v následujícím příkladu výstupu:

    NAME      STATUS
    httpbin   committed
    
  4. Ověřte, že ke službě httpbin máte přístup pomocí externí IP adresy služby příchozího přenosu dat a následujícího curl příkazu.

    curl -sI http://<external-ip>/get
    
  5. Potvrďte, že obdržíte odpověď s status 200.

Pozorovatelnost metrik

Pozorovatelnost metrik umožňuje zobrazit metriky sítě a nasazení ve vaší síti. S OSM můžete použít Prometheus a Grafana pro pozorovatelnost metrik, ale tyto integrace nejsou pokryté zásadami podpory AKS.

Osm můžete integrovat také se službou Azure Monitor.

Před povolením metrik ve vaší síti pro integraci se službou Azure Monitor se ujistěte, že máte následující požadavky:

  • Povolte Azure Monitor ve vašem clusteru.
  • Povolte doplněk OSM pro cluster AKS.
  • Onboarding oborů názvů aplikace do sítě.
  1. Pomocí příkazu povolte metriky pro obor názvů v síti osm metrics enable .

    osm metrics enable --namespace myappnamespace
    
  2. V oboru názvů vytvořte objekt ConfigMap kube-system , který umožňuje službě Azure Monitor monitorovat vaše obory názvů. Můžete například vytvořit s následujícím obsahem monitor-configmap.yaml , který bude monitorovat myappnamespace:

    kind: ConfigMap
    apiVersion: v1
    data:
      schema-version: v1
      config-version: ver1
      osm-metric-collection-configuration: |-
        # OSM metric collection settings
        [osm_metric_collection_configuration]
          [osm_metric_collection_configuration.settings]
              # Namespaces to monitor
              monitor_namespaces = ["myappnamespace"]
    metadata:
      name: container-azm-ms-osmconfig
      namespace: kube-system
    
  3. Použijte objekt ConfigMap pomocí kubectl apply příkazu.

    kubectl apply -f monitor-configmap.yaml
    
  4. Přejděte na web Azure Portal a vyberte cluster AKS.

  5. V části Monitorování vyberte Protokoly.

  6. V části Monitorování zadejte dotaz na InsightsMetrics tabulku, aby se zobrazily metriky v povolených oborech názvů. Například následující dotaz zobrazí metriky volání pro výchozí obor názvů:

    InsightsMetrics
    |     where Name contains "envoy"
    |     extend t=parse_json(Tags)
    |     where t.namespace == "default"
    

Nástroje pro automatizaci a vývojáře

OSM může integrovat s určitými automatizačními projekty a vývojářskými nástroji, které pomáhají operátorům a vývojářům vytvářet a vydávat aplikace. Osm se například integruje s Flaggerem pro progresivní doručování a Dapr pro vytváření aplikací. Integrace OSM s Flaggerem a Dapr nejsou pokryté zásadami podpory AKS.

Externí autorizace

Externí autorizace umožňuje přesměrovat autorizaci požadavků HTTP na externí službu. OSM může používat externí autorizaci integrací s open policy agentem (OPA), ale tato integrace se nevztahuje na zásady podpory AKS.

Správa certifikátů

OSM má několik typů certifikátů, které používá k provozu v clusteru AKS. OSM obsahuje vlastního správce certifikátů s názvem Tresor, který se ve výchozím nastavení používá. Osm také umožňuje integraci se službou Hashicorp Vault a cert-managerem, ale tyto integrace se nevztahují na zásady podpory AKS.

Další kroky

Tento článek se zabývá doplňky Open Service Mesh (OSM) s funkcemi, které poskytuje Azure a některé opensourcové projekty. Další informace o OSM najdete v tématu O OSM v AKS.