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
Instalowanie kontrolera ruchu przychodzącego AGIC.
Utwórz przestrzeń nazw dla usługi aplikacji przy użyciu
kubectl create ns
polecenia .kubectl create ns httpbin
Dodaj przestrzeń nazw do siatki przy użyciu polecenia interfejsu
osm namespace add
wiersza polecenia OSM.osm namespace add httpbin
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
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
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
Wdróż następujące
Ingress
konfiguracje iIngressBackend
, aby umożliwić klientom zewnętrznym dostęphttpbin
do usługi na porcie14001
przy użyciukubectl 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
Sprawdź,
Ingress
czy obiekt został pomyślnie wdrożony przy użyciukubectl 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
Sprawdź,
IngressBackend
czy obiekt został pomyślnie wdrożony przy użyciukubectl 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
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ącegocurl
polecenia.curl -sI http://<external-ip>/get
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.
Włącz metryki dla przestrzeni nazw w siatce przy użyciu
osm metrics enable
polecenia .osm metrics enable --namespace myappnamespace
Utwórz ConfigMap w
kube-system
przestrzeni nazw, która umożliwia usłudze Azure Monitor monitorowanie przestrzeni nazw. Na przykład utwórz elementmonitor-configmap.yaml
z następującą zawartością, aby monitorować elementmyappnamespace
: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
Zastosuj ConfigMap przy użyciu
kubectl apply
polecenia .kubectl apply -f monitor-configmap.yaml
Przejdź do witryny Azure Portal i wybierz klaster usługi AKS.
W obszarze Monitorowanie wybierz pozycję Dzienniki.
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.
Azure Kubernetes Service