Usługa Open Service Mesh z obsługą usługi Azure Arc

Open Service Mesh (OSM) to uproszczona, rozszerzalna, natywna dla chmury siatka usług, która umożliwia użytkownikom jednolite zarządzanie, zabezpieczanie i uzyskiwanie wbudowanych funkcji obserwacji w środowiskach wysoce dynamicznych mikrousług.

OSM uruchamia płaszczyznę sterowania opartą na usłudze Envoy na platformie Kubernetes, można skonfigurować za pomocą interfejsów API SMI i działa przez wstrzyknięcie serwera proxy usługi Envoy jako kontenera przyczepki obok każdego wystąpienia aplikacji. Przeczytaj więcej na temat scenariuszy usługi Service Mesh obsługiwanych przez usługę Open Service Mesh.

Wszystkie składniki osm z obsługą usługi Azure Arc są wdrażane w strefach dostępności, dzięki czemu są strefowo nadmiarowe.

Opcje instalacji i wymagania

Usługę Open Service Mesh z obsługą usługi Azure Arc można wdrożyć za pośrednictwem witryny Azure Portal, interfejsu wiersza polecenia platformy Azure, szablonu usługi ARM lub wbudowanych zasad platformy Azure.

Wymagania wstępne

  • Upewnij się, że zostały spełnione wszystkie typowe wymagania wstępne dotyczące rozszerzeń klastra wymienione tutaj.
  • Użyj az k8s-extension wersji >rozszerzenia interfejsu wiersza polecenia = v1.0.4

Bieżące ograniczenia pomocy technicznej

  • W klastrze Kubernetes połączonym z usługą Azure Arc można wdrożyć tylko jedno wystąpienie usługi Open Service Mesh.
  • Obsługa jest dostępna dla dwóch ostatnio wydanych wersji pomocniczych usługi Open Service Mesh z obsługą usługi Arc. Znajdź najnowszą wersję tutaj. Obsługiwane wersje wersji są dołączane z uwagami. Ignoruj tagi skojarzone z wydaniami pośrednimi.
  • Obecnie obsługiwane są następujące dystrybucje platformy Kubernetes:
    • Aparat usługi AKS (Azure Kubernetes Service)
    • Klastry AKS w usłudze Azure Stack HCI
    • Usługa AKS włączona przez usługę Azure Arc
    • Interfejs API klastra platformy Azure
    • Aparat Google Kubernetes
    • Dystrybucja rozwiązania Canonical Kubernetes
    • Rancher Kubernetes Engine
    • Dystrybucja rozwiązania OpenShift Kubernetes
    • Amazon Elastic Kubernetes Service
    • VMware Tanzu Kubernetes Grid
  • Integracja usługi Azure Monitor z usługą Open Service Mesh z obsługą usługi Azure Arc jest dostępna w wersji zapoznawczej z ograniczoną obsługą.

Instalacja podstawowa przy użyciu witryny Azure Portal

Aby wdrożyć przy użyciu witryny Azure Portal, po utworzeniu klastra połączonego z usługą Arc przejdź do sekcji Open Service Mesh klastra.

Open Service Mesh located under Settings for Arc enabled Kubernetes cluster

Wybierz przycisk Zainstaluj rozszerzenie, aby wdrożyć najnowszą wersję rozszerzenia.

Alternatywnie możesz użyć środowiska interfejsu wiersza polecenia przechwyconego tutaj. Aby uzyskać informacje na temat dołączania na dużą skalę, zapoznaj się z tym artykułem na temat wdrażania przy użyciu szablonu usługi ARM i korzystania z usługi Azure Policy.

Podstawowa instalacja przy użyciu interfejsu wiersza polecenia platformy Azure

W poniższych krokach założono, że masz już klaster z obsługiwaną dystrybucją Kubernetes połączoną z usługą Azure Arc. Upewnij się, że zmienna środowiskowa KUBECONFIG wskazuje na konfigurację kubeconfig klastra Kubernetes z obsługą usługi Arc.

Ustaw zmienne środowiskowe:

export CLUSTER_NAME=<arc-cluster-name>
export RESOURCE_GROUP=<resource-group-name>

Jeśli używasz klastra OpenShift, przejdź do kroków instalacji openShift.

Utwórz rozszerzenie:

Uwaga

Aby przypiąć określoną wersję OSM, dodaj flagę --version x.y.z do create polecenia . Należy pamiętać, że spowoduje to ustawienie wartości dla auto-upgrade-minor-version wartości false.

az k8s-extension create --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --cluster-type connectedClusters --extension-type Microsoft.openservicemesh --scope cluster --name osm

Powinny zostać wyświetlone dane wyjściowe podobne do tego przykładu. Wdrożenie rzeczywistego wykresu helm OSM w klastrze może potrwać od 3 do 5 minut. Dopóki to wdrożenie się nie powiedzie, installState pozostanie .Pending

{
  "autoUpgradeMinorVersion": true,
  "configurationSettings": {},
  "creationTime": "2021-04-29T17:50:11.4116524+00:00",
  "errorInfo": {
    "code": null,
    "message": null
  },
  "extensionType": "microsoft.openservicemesh",
  "id": "/subscriptions/<subscription-id>/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.Kubernetes/connectedClusters/$CLUSTER_NAME/providers/Microsoft.KubernetesConfiguration/extensions/osm",
  "identity": null,
  "installState": "Pending",
  "lastModifiedTime": "2021-04-29T17:50:11.4116525+00:00",
  "lastStatusTime": null,
  "location": null,
  "name": "osm",
  "releaseTrain": "stable",
  "resourceGroup": "$RESOURCE_GROUP",
  "scope": {
    "cluster": {
      "releaseNamespace": "arc-osm-system"
    },
    "namespace": null
  },
  "statuses": [],
  "type": "Microsoft.KubernetesConfiguration/extensions",
  "version": "x.y.z"
}

Następnie zweryfikuj instalację.

Instalacje niestandardowe

W poniższych sekcjach opisano niektóre niestandardowe instalacje osm z obsługą usługi Azure Arc. Instalacje niestandardowe wymagają ustawienia wartości OSM w pliku JSON i przekazania ich do k8s-extension create polecenia interfejsu wiersza polecenia.

Instalowanie osmu w klastrze OpenShift

  1. Skopiuj i zapisz następującą zawartość w pliku JSON. Jeśli plik ustawień konfiguracji został już utworzony, dodaj następujący wiersz do istniejącego pliku, aby zachować poprzednie zmiany.

    {
        "osm.osm.enablePrivilegedInitContainer": "true"
    }
    
  2. Zainstaluj OSM z wartościami niestandardowymi.

  3. Dodaj ograniczenie kontekstu zabezpieczeń uprzywilejowanych do każdego konta usługi dla aplikacji w siatce.

    oc adm policy add-scc-to-user privileged -z <service account name> -n <service account namespace>
    

Wdrożenie rzeczywistego wykresu helm OSM w klastrze może potrwać od 3 do 5 minut. Dopóki to wdrożenie się nie powiedzie, installState pozostanie .Pending

Aby upewnić się, że ustawienie kontenera inicjowania uprzywilejowanego nie zostanie przywrócone do wartości domyślnej, przekaż "osm.osm.enablePrivilegedInitContainer" : "true" ustawienie konfiguracji do wszystkich kolejnych az k8s-extension create poleceń.

Włączanie funkcji wysokiej dostępności podczas instalacji

Składniki płaszczyzny sterowania OSM są tworzone z myślą o wysokiej dostępności i odporności na uszkodzenia. W tej sekcji opisano sposób włączania skalowania automatycznego zasobników w poziomie (HPA) i budżetu zakłóceń zasobników (PDB) podczas instalacji. Przeczytaj więcej na temat zagadnień projektowych dotyczących wysokiej dostępności w osm.

Skalowanie automatyczne zasobnika poziomego (HPA)

Narzędzie HPA automatycznie skaluje zasobniki płaszczyzny sterowania w górę lub w dół na podstawie średniego docelowego wykorzystania procesora CPU (%) i średniego wykorzystania pamięci docelowej (%) zdefiniowanego przez użytkownika. Aby włączyć hpa i ustawić odpowiednie wartości na zasobnikach płaszczyzny sterowania OSM podczas instalacji, utwórz lub dołącz do istniejącego pliku ustawień JSON, jak pokazano tutaj, powtarzając pary klucz/wartość dla każdego zasobnika płaszczyzny sterowania (osmController, injector), które chcesz włączyć HPA.

{
  "osm.osm.<control_plane_pod>.autoScale.enable" : "true",
  "osm.osm.<control_plane_pod>.autoScale.minReplicas" : "<allowed values: 1-10>",
  "osm.osm.<control_plane_pod>.autoScale.maxReplicas" : "<allowed values: 1-10>",
  "osm.osm.<control_plane_pod>.autoScale.cpu.targetAverageUtilization" : "<allowed values 0-100>",
  "osm.osm.<control_plane_pod>.autoScale.memory.targetAverageUtilization" : "<allowed values 0-100>"
}

Teraz zainstaluj osm z wartościami niestandardowymi.

Budżet na zakłócenia zasobnika (PDB)

Aby zapobiec zakłóceniom podczas planowanych przestojów, zasobniki osm-controller płaszczyzny sterowania i osm-injector mają pdB, który gwarantuje, że zawsze istnieje co najmniej jeden zasobnik odpowiadający każdej aplikacji płaszczyzny sterowania.

Aby włączyć plik PDB, utwórz lub dołącz do istniejącego pliku ustawień JSON w następujący sposób dla każdego żądanego zasobnika płaszczyzny sterowania (osmController, injector):

{
  "osm.osm.<control_plane_pod>.enablePodDisruptionBudget" : "true"
}

Teraz zainstaluj osm z wartościami niestandardowymi.

Instalowanie osmu za pomocą menedżera certyfikatów na potrzeby zarządzania certyfikatami

cert-manager to dostawca, który może służyć do wystawiania podpisanych certyfikatów do OSM bez konieczności przechowywania kluczy prywatnych na platformie Kubernetes. Zapoznaj się z dokumentacją menedżera certyfikatów OSM i pokazem, aby dowiedzieć się więcej.

Uwaga

Użyj poleceń podanych w dokumentacji OSM GitHub z ostrożnością. Upewnij się, że używasz poprawnej przestrzeni nazw w poleceniach lub określ flagę --osm-namespace arc-osm-system.

Aby zainstalować osm z menedżerem certyfikatów jako dostawcą certyfikatów, utwórz lub dołącz do istniejącego pliku ustawień JSON wartość ustawioną certificateProvider.kind na menedżera certyfikatów, jak pokazano tutaj. Aby zmienić domyślne wartości menedżera certyfikatów określone w dokumentacji OSM, uwzględnij i zaktualizuj kolejne certmanager.issuer wiersze.

{
  "osm.osm.certificateProvider.kind" : "cert-manager",
  "osm.osm.certmanager.issuerName" : "<issuer name>",
  "osm.osm.certmanager.issuerKind" : "<issuer kind>",
  "osm.osm.certmanager.issuerGroup" : "<issuer group>"
}

Teraz zainstaluj osm z wartościami niestandardowymi.

Instalowanie OSM z konturem dla ruchu przychodzącego

OSM oferuje wiele opcji uwidaczniania usług siatki zewnętrznie przy użyciu ruchu przychodzącego. OSM może używać konturu, który współpracuje z kontrolerem ruchu przychodzącego zainstalowanym poza siatką i aprowizowany przy użyciu certyfikatu, aby uczestniczyć w siatce. Aby dowiedzieć się więcej, zapoznaj się z dokumentacją ruchu przychodzącego i pokazem OSM.

Uwaga

Użyj poleceń podanych w dokumentacji OSM GitHub z ostrożnością. Upewnij się, że używasz poprawnej przestrzeni nazw w poleceniach lub określ flagę --osm-namespace arc-osm-system. Aby ustawić wymagane wartości do skonfigurowania konturu podczas instalacji OSM, dołącz następujący plik ustawień JSON:

{
  "osm.osm.osmNamespace" : "arc-osm-system",
  "osm.contour.enabled" : "true",
  "osm.contour.configInline.tls.envoy-client-certificate.name" : "osm-contour-envoy-client-cert", 
  "osm.contour.configInline.tls.envoy-client-certificate.namespace" : "arc-osm-system"
}

Ustawianie wartości podczas instalacji OSM

Wszelkie wartości, które należy ustawić podczas instalacji OSM, należy zapisać w jednym pliku JSON i przekazać za pomocą polecenia instalacji interfejsu wiersza polecenia platformy Azure.

Po utworzeniu pliku JSON z odpowiednimi wartościami zgodnie z opisem w sekcjach instalacji niestandardowej ustaw ścieżkę pliku jako zmienną środowiskową:

export SETTINGS_FILE=<json-file-path>

Uruchom polecenie , az k8s-extension create aby utworzyć rozszerzenie OSM, przekazując plik ustawień przy użyciu flagi --configuration-settings-file :

az k8s-extension create --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --cluster-type connectedClusters --extension-type Microsoft.openservicemesh --scope cluster --name osm --configuration-settings-file $SETTINGS_FILE

Instalowanie protokołu OSM z obsługą usługi Azure Arc przy użyciu szablonu usługi ARM

Po połączeniu klastra z usługą Azure Arc utwórz plik JSON z następującym formatem, aktualizując <cluster-name> wartości i <osm-arc-version> :

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "ConnectedClusterName": {
            "defaultValue": "<cluster-name>",
            "type": "String",
            "metadata": {
                "description": "The Connected Cluster name."
            }
        },
        "ExtensionInstanceName": {
            "defaultValue": "osm",
            "type": "String",
            "metadata": {
                "description": "The extension instance name."
            }
        },
        "ExtensionVersion": {
            "defaultValue": "<osm-arc-version>",
            "type": "String",
            "metadata": {
                "description": "The extension type version."
            }
        },
        "ExtensionType": {
            "defaultValue": "Microsoft.openservicemesh",
            "type": "String",
            "metadata": {
                "description": "The extension type."
            }
        },
        "ReleaseTrain": {
            "defaultValue": "Stable",
            "type": "String",
            "metadata": {
                "description": "The release train."
            }
        }
    },
    "functions": [],
    "resources": [
        {
            "type": "Microsoft.KubernetesConfiguration/extensions",
            "apiVersion": "2020-07-01-preview",
            "name": "[parameters('ExtensionInstanceName')]",
            "properties": {
                "extensionType": "[parameters('ExtensionType')]",
                "releaseTrain": "[parameters('ReleaseTrain')]",
                "version": "[parameters('ExtensionVersion')]"
            },
            "scope": "[concat('Microsoft.Kubernetes/connectedClusters/', parameters('ConnectedClusterName'))]"
        }
    ]
}

Ustaw zmienne środowiskowe:

export TEMPLATE_FILE_NAME=<template-file-path>
export DEPLOYMENT_NAME=<desired-deployment-name>

Uruchom to polecenie, aby zainstalować rozszerzenie OSM:

az deployment group create --name $DEPLOYMENT_NAME --resource-group $RESOURCE_GROUP --template-file $TEMPLATE_FILE_NAME

Teraz powinno być możliwe wyświetlenie zasobów OSM i użycie rozszerzenia OSM w klastrze.

Instalowanie protokołu OSM z obsługą usługi Azure Arc przy użyciu wbudowanych zasad

Wbudowane zasady są dostępne w witrynie Azure Portal w kategorii Kubernetes: klastry Kubernetes z obsługą usługi Azure Arc powinny mieć zainstalowane rozszerzenie Open Service Mesh. Te zasady można przypisać w zakresie subskrypcji lub grupy zasobów.

Domyślną akcją tych zasad jest Wdróż, jeśli nie istnieje. Można jednak wybrać inspekcję klastrów pod kątem instalacji rozszerzeń, zmieniając parametry podczas przypisywania. Zostanie również wyświetlony monit o określenie wersji, którą chcesz zainstalować (wersja 1.0.0-1 lub nowsza) jako parametr.

Weryfikowanie instalacji

Uruchom następujące polecenie:

az k8s-extension show --cluster-type connectedClusters --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --name osm

Powinny zostać wyświetlone dane wyjściowe JSON podobne do następujących:

{
  "autoUpgradeMinorVersion": true,
  "configurationSettings": {},
  "creationTime": "2021-04-29T19:22:00.7649729+00:00",
  "errorInfo": {
    "code": null,
    "message": null
  },
  "extensionType": "microsoft.openservicemesh",
  "id": "/subscriptions/<subscription-id>/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.Kubernetes/connectedClusters/$CLUSTER_NAME/providers/Microsoft.KubernetesConfiguration/extensions/osm",
  "identity": null,
  "installState": "Installed",
  "lastModifiedTime": "2021-04-29T19:22:00.7649731+00:00",
  "lastStatusTime": "2021-04-29T19:23:27.642+00:00",
  "location": null,
  "name": "osm",
  "releaseTrain": "stable",
  "resourceGroup": "$RESOURCE_GROUP",
  "scope": {
    "cluster": {
      "releaseNamespace": "arc-osm-system"
    },
    "namespace": null
  },
  "statuses": [],
  "type": "Microsoft.KubernetesConfiguration/extensions",
  "version": "x.y.z"
}

Aby uzyskać więcej poleceń, których można użyć do weryfikowania i rozwiązywania problemów z wdrażaniem składników rozszerzenia Open Service Mesh (OSM) w klastrze, zobacz nasz przewodnik rozwiązywania problemów

Konfiguracja kontrolera OSM

OSM wdraża zasób osm-mesh-config MeshConfig jako część płaszczyzny sterowania w arc-osm-system przestrzeni nazw. Celem tej konfiguracji MeshConfig jest zapewnienie właścicielowi/operatorowi siatki możliwości aktualizowania niektórych konfiguracji siatki na podstawie ich potrzeb. Aby wyświetlić wartości domyślne, użyj następującego polecenia.

kubectl describe meshconfig osm-mesh-config -n arc-osm-system

Dane wyjściowe zawierają wartości domyślne:

  Certificate:
    Cert Key Bit Size:               2048
    Service Cert Validity Duration:  24h
  Feature Flags:
    Enable Async Proxy Service Mapping:  false
    Enable Egress Policy:                true
    Enable Envoy Active Health Checks:   false
    Enable Ingress Backend Policy:       true
    Enable Multicluster Mode:            false
    Enable Retry Policy:                 false
    Enable Snapshot Cache Mode:          false
    Enable WASM Stats:                   true
  Observability:
    Enable Debug Server:  false
    Osm Log Level:        info
    Tracing:
      Enable:  false
  Sidecar:
    Config Resync Interval:            0s
    Enable Privileged Init Container:  false
    Log Level:                         error
    Resources:
  Traffic:
    Enable Egress:                          false
    Enable Permissive Traffic Policy Mode:  true
    Inbound External Authorization:
      Enable:              false
      Failure Mode Allow:  false
      Stat Prefix:         inboundExtAuthz
      Timeout:             1s
    Inbound Port Exclusion List:
    Outbound IP Range Exclusion List:
    Outbound Port Exclusion List:

Aby uzyskać więcej informacji, zobacz dokumentację interfejsu API konfiguracji. Zwróć uwagę, że spec.traffic.enablePermissiveTrafficPolicyMode ustawiono wartość true. Gdy OSM jest w trybie zasad ruchu permisywnego, wymuszanie zasad ruchu SMI jest pomijane. W tym trybie OSM automatycznie odnajduje usługi będące częścią siatki usług i programuje reguły zasad ruchu na każdym sidecar serwera proxy usługi Envoy, aby móc komunikować się z tymi usługami.

osm-mesh-config Można również wyświetlić w witrynie Azure Portal, wybierając pozycję Edytuj konfigurację w sekcji Open Service Mesh klastra.

Edit configuration button located on top of the Open Service Mesh section

Wprowadzanie zmian w konfiguracji kontrolera OSM

Uwaga

Wartości w narzędziu MeshConfig osm-mesh-config są utrwalane w ramach uaktualnień.

Zmiany, które osm-mesh-config można wprowadzić za pomocą kubectl patch polecenia . W poniższym przykładzie tryb zasad ruchu permissive został zmieniony na false.

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

Jeśli jest używana nieprawidłowa wartość, walidacje w usłudze MeshConfig CRD uniemożliwiają zmianę z komunikatem o błędzie wyjaśniającym, dlaczego wartość jest nieprawidłowa. Na przykład to polecenie pokazuje, co się stanie, jeśli wprowadzimy poprawkę enableEgress do wartości innej niż wartość logiczna:

kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"traffic":{"enableEgress":"no"}}}'  --type=merge
# Validations on the CRD will deny this change
The MeshConfig "osm-mesh-config" is invalid: spec.traffic.enableEgress: Invalid value: "string": spec.traffic.enableEgress in body must be of type boolean: "string"

Alternatywnie, aby edytować osm-mesh-config w witrynie Azure Portal, wybierz pozycję Edytuj konfigurację w sekcji Open Service Mesh klastra.

Edit configuration button in the Open Service Mesh section

Korzystanie z osmu z obsługą usługi Azure Arc

Aby rozpocząć korzystanie z funkcji OSM, należy najpierw dołączyć przestrzenie nazw aplikacji do siatki usług. Pobierz interfejs wiersza polecenia OSM ze strony wydań usługi GitHub OSM. Po dodaniu przestrzeni nazw do siatki można skonfigurować zasady SMI w celu osiągnięcia żądanej możliwości OSM.

Dołączanie przestrzeni nazw do siatki usług

Dodaj przestrzenie nazw do siatki, uruchamiając następujące polecenie:

osm namespace add <namespace_name>

Przestrzenie nazw można również dołączyć z witryny Azure Portal, wybierając pozycję +Dodaj w sekcji Open Service Mesh klastra.

+Add button located on top of the Open Service Mesh section

Aby uzyskać więcej informacji na temat usług dołączania, zobacz dokumentację usługi Open Service Mesh.

Konfigurowanie osmu przy użyciu zasad SMI (Service Mesh Interface)

Możesz zacząć od przykładowej aplikacji lub użyć środowiska testowego, aby wypróbować zasady SMI.

Uwaga

Jeśli używasz przykładowych aplikacji, upewnij się, że ich wersje są zgodne z wersją rozszerzenia OSM zainstalowanego w klastrze. Jeśli na przykład używasz wersji 1.0.0 rozszerzenia OSM, użyj manifestu księgarni z gałęzi release-v1.0 repozytorium nadrzędnego OSM.

Konfigurowanie własnych wystąpień Jaeger, Prometheus i Grafana

Rozszerzenie OSM nie instaluje dodatków, takich jak Jaeger, Prometheus, Grafana i Flagger. Zamiast tego możesz zintegrować OSM z własnymi uruchomionymi wystąpieniami tych narzędzi. Aby zintegrować je z własnymi wystąpieniami, zapoznaj się z następującą dokumentacją:

Uwaga

Użyj poleceń podanych w dokumentacji OSM GitHub z ostrożnością. Upewnij się, że używasz poprawnej nazwy arc-osm-system przestrzeni nazw podczas wprowadzania zmian w pliku osm-mesh-config.

Monitorowanie aplikacji przy użyciu usługi Azure Monitor i aplikacji Szczegółowe informacje (wersja zapoznawcza)

Zarówno usługa Azure Monitor, jak i aplikacja systemu Azure Szczegółowe informacje pomagają zmaksymalizować dostępność i wydajność aplikacji i usług, zapewniając kompleksowe rozwiązanie do zbierania, analizowania i działania na podstawie danych telemetrycznych z chmury i środowisk lokalnych. Usługa Open Service Mesh z obsługą usługi Azure Arc ma głębokie integracje z obydwoma tymi usługami platformy Azure. Ta integracja zapewnia bezproblemowe środowisko platformy Azure do wyświetlania kluczowych wskaźników KPI udostępnianych przez metryki OSM i reagowania na nie.

Ważne

Funkcje platformy Kubernetes z obsługą usługi Azure Arc w wersji zapoznawczej są dostępne na zasadzie samoobsługi. Wersje zapoznawcze są udostępniane w wersji "as is" i "jako dostępne" i są wykluczone z umów dotyczących poziomu usług i ograniczonej gwarancji. Wersje zapoznawcze platformy Kubernetes z obsługą usługi Azure Arc są częściowo objęte pomocą techniczną dla klientów.

Wykonaj następujące kroki, aby umożliwić usłudze Azure Monitor złomowanie punktów końcowych rozwiązania Prometheus na potrzeby zbierania metryk aplikacji.

  1. Postępuj zgodnie ze wskazówkami dostępnymi tutaj , aby upewnić się, że przestrzenie nazw aplikacji, które chcesz monitorować, są dołączane do siatki.

  2. Uwidaczniaj punkty końcowe rozwiązania Prometheus dla przestrzeni nazw aplikacji.

    osm metrics enable --namespace <namespace1>
    osm metrics enable --namespace <namespace2>
    
  3. Zainstaluj rozszerzenie usługi Azure Monitor, korzystając ze wskazówek dostępnych tutaj.

  4. Utwórz Mapę konfiguracji w kube-system przestrzeni nazw, która umożliwia usłudze Azure Monitor monitorowanie przestrzeni nazw. Na przykład utwórz element container-azm-ms-osmconfig.yaml z następującymi elementami, aby monitorować <namespace1> i <namespace2>:

    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 = ["<namespace1>", "<namespace2>"]
    metadata:
      name: container-azm-ms-osmconfig
      namespace: kube-system
    
  5. Uruchom następujące polecenie kubectl

    kubectl apply -f container-azm-ms-osmconfig.yaml
    

Wyświetlenie metryk w usłudze Log Analytics może potrwać do 15 minut. Możesz spróbować wykonać zapytanie dotyczące tabeli Szczegółowe informacje Metrics.

InsightsMetrics
| where Name contains "envoy"
| extend t=parse_json(Tags)
| where t.app == "namespace1"
  1. Uzyskaj dostęp do połączonego klastra Kubernetes usługi Arc przy użyciu tego linku.
  2. Przejdź do usługi Azure Monitor i przejdź do karty Raporty , aby uzyskać dostęp do skoroszytu OSM.
  3. Wybierz zakres czasu i przestrzeń nazw, aby ograniczyć zakres usług.

OSM workbook

Karta Żądania

Karta Żądania zawiera podsumowanie wszystkich żądań HTTP wysyłanych za pośrednictwem usługi do usługi w OSM.

  • Wszystkie usługi można wyświetlić, wybierając usługę w siatce.
  • Możesz wyświetlić łączną liczbę żądań, szybkość błędów żądań i opóźnienie P90.
  • Możesz przejść do szczegółów lokalizacji docelowej i wyświetlić trendy dla kodu błędu/powodzenia HTTP, współczynnika powodzenia, wykorzystania zasobów zasobników i opóźnień w różnych percentylach.

Karta Połączenia

Karta Połączenie ions zawiera podsumowanie wszystkich połączeń między usługami w usłudze Open Service Mesh.

  • Połączenia wychodzące: łączna liczba połączeń między usługami źródłowymi i docelowymi.
  • Aktywne połączenia wychodzące: ostatnia liczba aktywnych połączeń między źródłem i miejscem docelowym w wybranym zakresie czasu.
  • Połączenia wychodzące nie powiodły się: łączna liczba zakończonych niepowodzeniem połączeń między usługą źródłową i docelową.

Uaktualnianie do określonej wersji OSM

Podczas uaktualniania może wystąpić pewien przestój płaszczyzny sterowania. Płaszczyzna danych ma wpływ tylko podczas uaktualniania CRD.

Obsługiwane uaktualnienia

Rozszerzenie OSM można uaktualnić ręcznie w wersjach pomocniczych i głównych. Jednak automatyczne uaktualnianie (jeśli jest włączone) działa tylko w wersjach pomocniczych.

Ręczne uaktualnianie do określonej wersji OSM

Następujące polecenie uaktualnia rozszerzenie OSM-Arc do określonej wersji:

az k8s-extension update --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --cluster-type connectedClusters --release-train stable --name osm --version x.y.z

Włączanie automatycznych uaktualnień

Jeśli automatyczne uaktualnienia nie są domyślnie włączone, można uruchomić następujące polecenie, aby je włączyć. Bieżącą wartość --auto-upgrade-minor-version można zweryfikować, uruchamiając polecenie zgodnie z opisem az k8s-extension showw kroku Weryfikowanie instalacji .

az k8s-extension update --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --cluster-type connectedClusters --release-train stable --name osm --auto-upgrade-minor-version true

Odinstalowywanie osmu z obsługą usługi Azure Arc

Użyj następującego polecenia:

az k8s-extension delete --cluster-type connectedClusters --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --name osm -y

Sprawdź, czy wystąpienie rozszerzenia zostało usunięte:

az k8s-extension list --cluster-type connectedClusters --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP

Te dane wyjściowe nie powinny zawierać osmu. Jeśli nie masz żadnych innych rozszerzeń zainstalowanych w klastrze, jest to tylko pusta tablica.

Usunięcie rozszerzenia arc-osm-system OSM za pomocą az k8s-extension polecenia spowoduje, że przestrzeń nazw nie zostanie usunięta, a rzeczywiste zasoby w przestrzeni nazw (na przykładmutowanie konfiguracji elementu webhook i zasobnika osm-controller) potrwa około 10 minut.

Uwaga

Użyj interfejsu wiersza polecenia az k8s-extension, aby odinstalować składniki OSM zarządzane przez usługę Arc. Odinstalowanie interfejsu wiersza polecenia OSM nie jest obsługiwane przez usługę Arc i może spowodować niepożądane zachowanie.

Następne kroki