Udostępnij za pośrednictwem


Integracje z usługą Open Service Mesh w usłudze Azure Kubernetes Service (AKS)

Dodatek Open Service Mesh (OSM) integruje się z funkcjami udostępnianymi przez platformę Azure i niektórymi projektami open source.

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

Integracje z projektami open source nie są objęte zasadami pomocy technicznej usługi AKS.

Ruch przychodzący

Ruch przychodzący umożliwia kierowanie ruchu zewnętrznego do siatki do usług w obrębie siatki. Dzięki OSM można skonfigurować większość rozwiązań ruchu przychodzącego do pracy z siatką, ale OSM działa najlepiej z jednym z następujących rozwiązań:

Uwaga

Obecnie kontroler ruchu przychodzącego usługi Azure Gateway (AGIC) działa tylko w przypadku zapleczy HTTP. Jeśli skonfigurujesz OSM do używania AGIC, usługa AGIC nie będzie używana dla innych zapleczy, takich jak HTTPS i mTLS.

Używanie kontrolera ruchu przychodzącego usługi Azure Gateway (AGIC) z dodatkiem OSM dla ruchu przychodzącego HTTP

Ważne

Nie można skonfigurować kontrolera ruchu przychodzącego usługi Azure Gateway (AGIC) dla ruchu przychodzącego HTTPS.

Tworzenie przestrzeni nazw i wdrażanie usługi aplikacji

  1. Instalowanie kontrolera ruchu przychodzącego AGIC.

  2. Utwórz przestrzeń nazw dla usługi aplikacji przy użyciu kubectl create ns polecenia .

    kubectl create ns httpbin
    
  3. Dodaj przestrzeń nazw do siatki przy użyciu polecenia interfejsu osm namespace add wiersza polecenia OSM.

    osm namespace add httpbin
    
  4. Wdróż usługę aplikacji w przestrzeni nazw przy użyciu kubectl apply polecenia .

    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. Sprawdź, czy zasobniki są uruchomione i czy wysłannik wstrzyknął przyczepkę kubectl get pods przy użyciu polecenia .

    kubectl get pods -n httpbin
    

    Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:

    NAME                      READY   STATUS    RESTARTS   AGE
    httpbin-7c6464475-9wrr8   2/2     Running   0          6d20h
    
  6. Wyświetl szczegóły usługi przy użyciu kubectl get svc polecenia .

    kubectl get svc -n httpbin
    

    Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:

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

Wdrażanie konfiguracji ruchu przychodzącego i weryfikowanie dostępu do usługi aplikacji

  1. Wdróż następujące Ingress konfiguracje i IngressBackend , aby umożliwić klientom zewnętrznym dostęp httpbin do usługi na porcie 14001 przy użyciu kubectl apply polecenia .

    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. Sprawdź, Ingress czy obiekt został pomyślnie wdrożony przy użyciu kubectl get ingress polecenia i zanotuj zewnętrzny adres IP.

    kubectl get ingress -n httpbin
    

    Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:

    NAME      CLASS    HOSTS   ADDRESS         PORTS   AGE
    httpbin   <none>   *       20.85.173.179   80      6d20h
    
  3. Sprawdź, IngressBackend czy obiekt został pomyślnie wdrożony przy użyciu kubectl get ingressbackend polecenia .

    kubectl get ingressbackend -n httpbin
    

    Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:

    NAME      STATUS
    httpbin   committed
    
  4. Sprawdź, czy możesz uzyskać dostęp do httpbin usługi przy użyciu zewnętrznego adresu IP usługi ruchu przychodzącego i następującego curl polecenia.

    curl -sI http://<external-ip>/get
    
  5. Potwierdź, że otrzymasz odpowiedź za pomocą polecenia status 200.

Możliwość obserwowania metryk

Możliwość obserwowania metryk umożliwia wyświetlanie metryk siatki i wdrożeń w siatce. Dzięki osmowi można używać rozwiązań Prometheus i Grafana do obserwowania metryk, ale te integracje nie są objęte zasadami pomocy technicznej usługi AKS.

Możesz również zintegrować OSM z usługą Azure Monitor.

Przed włączeniem metryk w usłudze Mesh w celu integracji z usługą Azure Monitor upewnij się, że masz następujące wymagania wstępne:

  • Włącz usługę Azure Monitor w klastrze.
  • Włącz dodatek OSM dla klastra usługi AKS.
  • Dołącz przestrzenie nazw aplikacji do siatki.
  1. Włącz metryki dla przestrzeni nazw w siatce przy użyciu osm metrics enable polecenia .

    osm metrics enable --namespace myappnamespace
    
  2. Utwórz ConfigMap w kube-system przestrzeni nazw, która umożliwia usłudze Azure Monitor monitorowanie przestrzeni nazw. Na przykład utwórz element monitor-configmap.yaml z następującą zawartością, aby monitorować element 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. Zastosuj ConfigMap przy użyciu kubectl apply polecenia .

    kubectl apply -f monitor-configmap.yaml
    
  4. Przejdź do witryny Azure Portal i wybierz klaster usługi AKS.

  5. W obszarze Monitorowanie wybierz pozycję Dzienniki.

  6. W sekcji Monitorowanie wykonaj zapytanie dotyczące InsightsMetrics tabeli, aby wyświetlić metryki w włączonych przestrzeniach nazw. Na przykład następujące zapytanie przedstawia metryki wysłannika dla domyślnej przestrzeni nazw:

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

Automatyzacja i narzędzia deweloperskie

OSM może integrować się z niektórymi projektami automatyzacji i narzędziami deweloperów, aby ułatwić operatorom i deweloperom tworzenie i wydawanie aplikacji. Na przykład OSM integruje się z aplikacją Flagger na potrzeby progresywnego dostarczania i języka Dapr do tworzenia aplikacji. Integracje OSM z usługą Flagger i Dapr nie są objęte zasadami pomocy technicznej usługi AKS.

Autoryzacja zewnętrzna

Autoryzacja zewnętrzna umożliwia odciążanie autoryzacji żądań HTTP do usługi zewnętrznej. OSM może używać autoryzacji zewnętrznej przez integrację z programem Open Policy Agent (OPA), ale ta integracja nie jest objęta zasadami pomocy technicznej usługi AKS.

Zarządzanie certyfikatami

OSM ma kilka typów certyfikatów używanych do działania w klastrze usługi AKS. OSM zawiera własnego menedżera certyfikatów o nazwie Tresor, który jest używany domyślnie. Alternatywnie osm umożliwia integrację z usługą Hashicorp Vault i cert-manager, ale te integracje nie są objęte zasadami pomocy technicznej usługi AKS.

Następne kroki

W tym artykule omówiono integrację dodatku Open Service Mesh (OSM) z funkcjami udostępnianymi przez platformę Azure i niektórymi projektami open source. Aby dowiedzieć się więcej na temat OSM, zobacz Informacje o OSM w usłudze AKS.