Azure Arc 지원 Open Service Mesh

OSM(Open Service Mesh)은 확장 가능한 네이티브 클라우드 서비스 메시이며, 사용자는 매우 동적인 마이크로 서비스 환경을 일관되게 관리하고, 안전하게 만들고, 즉시 사용 가능한 가시성 기능을 사용할 수 있습니다.

OSM은 Kubernetes에서 Envoy 기반 컨트롤 플레인을 실행하고, SMI API를 사용하여 구성될 수 있으며, 애플리케이션의 각 인스턴스 옆에 사이드카 컨테이너로 Envoy 프록시를 삽입하여 작동합니다. Open Service Mesh에서 사용하도록 설정된 서비스 메시 시나리오에 대해 자세히 읽어 보세요.

Azure Arc 지원 OSM의 모든 구성 요소는 가용성 영역에 배포되므로 영역이 중복됩니다.

설치 옵션 및 요구 사항

Azure Arc 지원 Open Service Mesh는 Azure Portal, Azure CLI, ARM 템플릿 또는 기본 제공 Azure 정책을 통해 배포할 수 있습니다.

필수 조건

  • 여기에 나열된 클러스터 확장에 대한 모든 일반적인 필수 구성 요소가 충족되어야 합니다.
  • az k8s-extension CLI 확장 버전 >= v1.0.4 사용

현재 지원 제한 사항

  • Azure Arc 연결 Kubernetes 클러스터에 하나의 Open Service Mesh 인스턴스만 배포할 수 있습니다
  • 가장 최근에 릴리스된 Arc 지원 Open Service Mesh의 두 가지 부 버전에 대한 지원이 제공됩니다. 최신 버전은 여기에서 확인하세요. 지원되는 릴리스 버전에는 참고가 추가됩니다. 중간 릴리스와 연결된 태그를 무시합니다.
  • 현재 지원되는 Kubernetes 배포는 다음과 같습니다.
    • AKS(Azure Kubernetes Service) 엔진
    • Azure Stack HCI의 AKS 클러스터
    • Azure Arc 지원 AKS
    • Cluster API Azure
    • Google Kubernetes Engine
    • Canonical Kubernetes Distribution
    • Rancher Kubernetes Engine
    • OpenShift Kubernetes Distribution
    • Amazon Elastic Kubernetes Service
    • VMware Tanzu Kubernetes 그리드
  • Azure Arc 지원 Open Service Mesh와의 Azure Monitor 통합은 제한된 지원의 미리 보기로 사용할 수 있습니다.

Azure Portal을 사용하는 기본 설치

Azure Portal을 사용하여 배포하려면 Arc 연결 클러스터가 있는 경우 클러스터의 Open Service Mesh 섹션으로 이동합니다.

Open Service Mesh located under Settings for Arc enabled Kubernetes cluster

확장 설치 단추를 선택하여 최신 버전의 확장을 배포합니다.

또는 여기에서 캡처한 CLI 환경을 사용할 수 있습니다. 대규모 온보딩의 경우 이 문서에서 ARM 템플릿을 사용한 배포 및 Azure Policy를 사용한 배포에 대해 자세히 알아보세요.

Azure CLI를 사용하는 기본 설치

다음 단계에서는 Azure Arc에 연결된 지원되는 Kubernetes 배포를 사용하는 클러스터가 이미 있다고 가정합니다. KUBECONFIG 환경 변수가 Arc 지원 Kubernetes 클러스터의 kubeconfig를 가리키는지 확인합니다.

환경 변수를 설정합니다.

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

OpenShift 클러스터를 사용하는 경우 OpenShift 설치 단계로 건너뜁니다.

다음과 같이 확장을 만듭니다.

참고 항목

특정 버전의 OSM을 고정하려면 --version x.y.z 플래그를 create 명령에 추가합니다. 그러면 auto-upgrade-minor-version에 대한 값이 false로 설정됩니다.

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

다음 예시와 유사한 출력이 표시됩니다. 실제 OSM helm 차트를 클러스터에 배포하는 데 3-5분 정도 걸릴 수 있습니다. 이 배포가 발생할 때까지 installStatePending 상태로 유지됩니다.

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

다음으로, 설치의 유효성을 검사합니다.

사용자 지정 설치

다음 섹션에서는 Azure Arc 지원 OSM의 특정 사용자 지정 설치에 대해 설명합니다. 사용자 지정 설치를 사용하려면 JSON 파일에서 OSM 값을 설정하고 k8s-extension create CLI 명령에 전달해야 합니다.

OpenShift 클러스터에 OSM 설치

  1. 다음 콘텐츠를 복사하여 JSON 파일에 저장합니다. 구성 설정 파일을 이미 만들었으면 다음 줄을 기존 파일에 추가하여 이전 변경 내용을 보존합니다.

    {
        "osm.osm.enablePrivilegedInitContainer": "true"
    }
    
  2. 사용자 지정 값을 사용하여 OSM을 설치합니다.

  3. 메시의 애플리케이션에 대한 각 서비스 계정에 권한 있는 보안 컨텍스트 제약 조건을 추가합니다.

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

실제 OSM helm 차트를 클러스터에 배포하는 데 3-5분 정도 걸릴 수 있습니다. 이 배포가 발생할 때까지 installStatePending 상태로 유지됩니다.

권한 있는 init 컨테이너 설정이 기본값으로 되돌아가지 않게 하려면 "osm.osm.enablePrivilegedInitContainer" : "true" 구성 설정을 모든 후속 az k8s-extension create 명령에 전달합니다.

설치 시 고가용성 기능 사용

OSM의 컨트롤 플레인 구성 요소는 고가용성 및 내결함성을 염두에 두고 빌드되었습니다. 이 섹션에서는 설치 중에 HPA(Horizontal Pod Autoscaling) 및 PDB(Pod Disruption Budget)를 사용하도록 설정하는 방법을 설명합니다. OSM용 고가용성 디자인 고려 사항을 자세히 알아보세요.

HPA(Horizontal Pod Autoscaling)

HPA는 사용자가 정의한 평균 대상 CPU 사용률(%) 및 평균 대상 메모리 사용률(%)에 따라 컨트롤 플레인 Pod를 자동으로 스케일 업 또는 다운합니다. 설치하는 동안 HPA를 사용하도록 설정하고 OSM 컨트롤 플레인 Pod에 적용 가능한 값을 설정하려면 다음과 같이 JSON 설정 파일을 만들거나 기존 JSON 설정 파일에 추가하여 HPA를 사용하도록 설정할 컨트롤 플레인 Pod(osmController, injector)마다 키/값 쌍을 반복합니다.

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

이제 사용자 지정 값을 사용하여 OSM을 설치합니다.

PDB(Pod Disruption Budget)

계획된 중단 중에 중단이 발생하지 않도록 컨트롤 플레인 Pod osm-controllerosm-injector에는 각 컨트롤 플레인 애플리케이션에 해당하는 Pod가 항상 최소 하나 이상 있게 하는 PDB가 있습니다.

PDB를 사용하도록 설정하려면 원하는 각 컨트롤 플레인 Pod(osmController, injector)에 대해 다음과 같이 JSON 설정 파일을 만들거나 기존 파일에 추가합니다.

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

이제 사용자 지정 값을 사용하여 OSM을 설치합니다.

인증서 관리를 위해 cert-manager를 사용하여 OSM 설치

cert-manager는 Kubernetes에 프라이빗 키를 저장할 필요 없이 OSM에 서명된 인증서를 발급하는 데 사용할 수 있는 공급자입니다. 자세한 내용은 OSM의 cert-manager 설명서데모를 참조하세요.

참고 항목

OSM GitHub 설명서에 제공된 명령을 주의하여 사용하세요. 명령에서 올바른 네임스페이스를 사용하거나 플래그 --osm-namespace arc-osm-system를 사용하여 지정해야 합니다.

cert-manager를 인증서 공급자로 사용하여 OSM을 설치하려면 다음과 같이 certificateProvider.kind 값이 cert-manager로 설정된 JSON 설정 파일을 만들거나 기존 JSON 설정 파일에 추가합니다. OSM 문서에 지정된 기본 cert-manager 값을 다른 값으로 변경하려면 후속 certmanager.issuer 줄도 포함하고 업데이트합니다.

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

이제 사용자 지정 값을 사용하여 OSM을 설치합니다.

수신을 위해 Contour를 사용하여 OSM 설치

OSM은 수신을 사용하여 외부에서 메시 서비스를 노출하는 여러 옵션을 제공합니다. OSM은 메시 외부에 설치되고 메시에 참여하기 위해 인증서로 프로비전된 수신 컨트롤러와 함께 작동하는 Contour를 사용할 수 있습니다. 자세한 내용은 OSM의 수신 설명서데모를 참조하세요.

참고 항목

OSM GitHub 설명서에 제공된 명령을 주의하여 사용하세요. 명령에서 올바른 네임스페이스를 사용하거나 플래그 --osm-namespace arc-osm-system를 사용하여 지정해야 합니다. OSM 설치 중에 Contour를 구성하는 데 필요한 값을 설정하려면 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"
}

OSM 설치 중에 값 설정

OSM 설치 중에 설정해야 하는 모든 값을 단일 JSON 파일에 저장하고 Azure CLI 설치 명령을 통해 전달해야 합니다.

사용자 지정 설치 섹션의 설명대로 해당 값을 사용하여 JSON 파일을 만든 후에 파일 경로를 환경 변수로 설정합니다.

export SETTINGS_FILE=<json-file-path>

az k8s-extension create 명령을 실행하여 OSM 확장을 만들고 --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

ARM 템플릿을 사용하여 Azure Arc 지원 OSM 설치

클러스터를 Azure Arc에 연결한 후 다음 형식의 JSON 파일을 만들어 <cluster-name><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'))]"
        }
    ]
}

환경 변수를 설정합니다.

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

다음 명령을 실행하여 OSM 확장을 설치합니다.

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

이제 OSM 리소스가 표시되고 클러스터에서 OSM 확장을 사용할 수 있습니다.

기본 제공 정책을 사용하여 Azure Arc 지원 OSM 설치

Azure Portal에서 Azure Arc 지원 Kubernetes 클러스터에 Open Service Mesh 확장이 설치되어 있어야 합니다.Kubernetes 범주의 기본 제공 정책을 사용할 수 있습니다. 이 정책은 구독 또는 리소스 그룹의 범위에서 할당할 수 있습니다.

이 정책의 기본 동작은 없는 경우 배포입니다. 그러나 할당하는 동안 매개 변수를 변경하여 확장 설치에 사용되는 클러스터를 감사할 수 있습니다. 또한 설치하려는 버전(v1.0.0-1 이상)을 매개 변수로 지정하라는 메시지가 표시됩니다.

설치 유효성 검사

다음 명령을 실행합니다.

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

다음과 같은 JSON 출력이 표시됩니다.

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

클러스터에서 OSM(Open Service Mesh) 확장 구성 요소 배포의 유효성을 검사하고 문제를 해결하는 데 사용할 수 있는 더 많은 명령은 Microsoft 문제 해결 가이드를 참조하세요.

OSM 컨트롤러 구성

OSM은 arc-osm-system 네임스페이스에서 컨트롤 플레인의 일부로 MeshConfig 리소스 osm-mesh-config를 배포합니다. 이 MeshConfig의 목적은 메시 소유자/운영자가 필요에 따라 일부 메시 구성을 업데이트할 수 있는 기능을 제공하는 것입니다. 기본값을 보려면 다음 명령을 사용합니다.

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

출력에 기본값이 표시됩니다.

  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:

자세한 내용은 API 참조 구성을 참조하세요. spec.traffic.enablePermissiveTrafficPolicyModetrue로 설정되어 있다는 점에 유의하세요. OSM이 허용 트래픽 정책 모드인 경우 SMI 트래픽 정책 적용은 무시됩니다. 이 모드에서 OSM은 서비스 메시의 일부인 서비스를 자동으로 검색하고 각 Envoy 프록시 사이드카에 트래픽 정책 규칙을 프로그래밍하여 이러한 서비스와 통신할 수 있도록 합니다.

클러스터의 Open Service Mesh 섹션에서 구성 편집을 선택하여 Azure Portal에서 osm-mesh-config를 확인할 수도 있습니다.

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

OSM 컨트롤러 구성 변경

참고 항목

MeshConfig osm-mesh-config의 값은 업그레이드 간에 지속됩니다.

kubectl patch 명령을 사용하여 osm-mesh-config를 변경할 수 있습니다. 다음 예제에서는 허용 트래픽 정책 모드가 false로 변경됩니다.

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

잘못된 값을 사용하면 MeshConfig CRD의 유효성 검사에서 변경을 방지하고 값이 잘못된 이유를 설명하는 오류 메시지를 표시합니다. 예를 들어 다음 명령에서는 enableEgress를 부울이 아닌 값으로 패치하면 어떻게 되는지 보여줍니다.

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"

또는 Azure Portal에서 osm-mesh-config를 편집하려면 클러스터의 Open Service Mesh 섹션에서 구성 편집을 선택합니다.

Edit configuration button in the Open Service Mesh section

Azure Arc 지원 OSM 사용

OSM 기능 사용을 시작하려면 먼저 애플리케이션 네임스페이스를 서비스 메시에 온보딩해야 합니다. OSM GitHub 릴리스 페이지에서 OSM CLI를 다운로드합니다. 메시에 네임스페이스가 추가되면 원하는 OSM 기능을 달성하도록 SMI 정책을 구성할 수 있습니다.

서비스 메시에 네임스페이스 온보딩

다음 명령을 실행하여 메시에 네임스페이스를 추가합니다.

osm namespace add <namespace_name>

클러스터의 Open Service Mesh 섹션에서 +추가를 선택하여 Azure Portal에서 네임스페이스를 온보딩할 수 있습니다.

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

온보딩 서비스에 대한 자세한 내용은 Open Service Mesh 문서를 참조하세요.

SMI(서비스 메시 인터페이스) 정책을 통해 OSM 구성

샘플 애플리케이션으로 시작하거나 테스트 환경을 사용하여 SMI 정책을 사용해 볼 수 있습니다.

참고 항목

샘플 애플리케이션을 사용하는 경우 해당 버전이 클러스터에 설치된 OSM 확장 버전과 일치하는지 확인합니다. 예: v1.0.0의 OSM 확장을 사용하는 경우 OSM 업스트림 리포지토리의 release-v1.0 분기에서 북스토어 매니페스트를 사용합니다.

사용자 고유의 Jaeger, Prometheus 및 Grafana 인스턴스 구성

OSM 확장에서는 Jaeger, Prometheus, GrafanaFlagger와 같은 추가 항목을 설치하지 않습니다. 대신 OSM을 해당 도구의 고유한 실행 중인 인스턴스와 통합할 수 있습니다. 고유한 인스턴스와 통합하려면 다음 문서를 참조하세요.

참고 항목

OSM GitHub 설명서에 제공된 명령을 주의하여 사용하세요. osm-mesh-config를 변경할 때 올바른 네임스페이스 이름 arc-osm-system을 사용하는지 확인합니다.

Azure Monitor 및 Applications Insights을 사용한 모니터링 애플리케이션(미리 보기)

Azure Monitor 및 Azure Application Insights 모두를 사용하면 클라우드 및 온-프레미스 환경에서 원격 분석을 수집, 분석 및 작동하기 위한 종합적인 솔루션을 제공하여 애플리케이션 및 서비스의 가용성과 성능을 극대화할 수 있습니다. Azure Arc 지원 Open Service Mesh는 이러한 두 Azure 서비스에 심층 통합되어 있습니다. 이 통합은 OSM 메트릭에서 제공하는 중요한 KPI를 보고 응답할 수 있는 원활한 Azure 환경을 제공합니다.

Important

Azure Arc 지원 Kubernetes 미리 보기 기능은 셀프 서비스, 옵트인 기반에서 사용할 수 있습니다. 미리 보기는 "있는 그대로" 및 "사용 가능한 상태로" 제공되며 서비스 수준 계약 및 제한적 보증에서 제외됩니다. Azure Arc 지원 Kubernetes 미리 보기의 일부는 고객 지원팀에서 최선을 다해 지원합니다.

다음 단계를 수행하면 Azure Monitor에서 Prometheus 엔드포인트를 스크랩하여 애플리케이션 메트릭을 수집할 수 있습니다.

  1. 모니터링하려는 애플리케이션 네임스페이스가 메시에 온보딩되도록 여기에서 사용할 수 있는 지침을 따릅니다.

  2. 애플리케이션 네임스페이스에 대한 prometheus 엔드포인트를 공개합니다.

    osm metrics enable --namespace <namespace1>
    osm metrics enable --namespace <namespace2>
    
  3. 여기에서 제공하는 지침을 사용하여 Azure Monitor 확장을 설치합니다.

  4. Azure Monitor에서 네임스페이스를 모니터링할 수 있도록 하는 kube-system 네임스페이스에 Configmap을 만듭니다. 예를 들어 다음을 통해 container-azm-ms-osmconfig.yaml을 만들어 <namespace1><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. 다음 kubectl 명령을 실행합니다

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

메트릭이 Log Analytics에 표시되는 데 최대 15분이 걸릴 수 있습니다. InsightsMetrics 테이블을 쿼리해 볼 수 있습니다.

InsightsMetrics
| where Name contains "envoy"
| extend t=parse_json(Tags)
| where t.app == "namespace1"
  1. 링크를 사용하여 Arc 연결 Kubernetes 클러스터에 액세스합니다.
  2. Azure Monitor로 이동하고 보고서 탭으로 이동하여 OSM 통합 문서에 액세스합니다.
  3. 시간 범위 및 네임스페이스를 선택하여 서비스 범위를 지정합니다.

OSM workbook

요청 탭

요청 탭에는 서비스를 통해 OSM의 서비스로 전송된 모든 http 요청에 대한 요약이 표시됩니다.

  • 그리드에서 서비스를 선택하여 모든 서비스를 볼 수 있습니다.
  • 총 요청, 요청 오류 비율, P90 대기 시간을 볼 수 있습니다.
  • 대상으로 드릴다운하고 HTTP 오류/성공 코드, 성공률, Pod 리소스 사용률 및 대기 시간에 대한 추세를 다른 백분위수로 볼 수 있습니다.

연결 탭

연결 탭에는 Open Service Mesh의 서비스 간 모든 연결에 대한 요약이 표시됩니다.

  • 아웃바운드 연결: 원본 서비스와 대상 서비스 간의 총 연결 수입니다.
  • 아웃바운드 활성 연결: 선택한 시간 범위에서 원본과 대상 간의 활성 연결의 최근 수입니다.
  • 아웃바운드 연결 실패: 원본 서비스와 대상 서비스 간의 총 실패한 연결 수입니다.

특정 OSM 버전으로 업그레이드

업그레이드하는 동안 컨트롤 플레인의 가동 중지 시간이 있을 수 있습니다. 데이터 평면은 CRD 업그레이드 중에만 영향을 받습니다.

지원되는 업그레이드

OSM 확장은 부 버전 및 주 버전에서 수동으로 업그레이드할 수 있습니다. 그러나 자동 업그레이드(사용하도록 설정된 경우)는 부 버전에서만 작동합니다.

특정 OSM 버전으로 수동 업그레이드

다음 명령은 OSM-Arc 확장을 특정 버전으로 업그레이드합니다.

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

자동 업그레이드 사용

기본적으로 자동 업그레이드가 사용되도록 설정되지 않으면 다음 명령을 실행하여 자동 업그레이드를 사용하도록 설정할 수 있습니다. 설치 유효성 검사 단계에서 자세히 설명한 대로 az k8s-extension show 명령을 실행하여 --auto-upgrade-minor-version의 현재 값을 확인할 수 있습니다.

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

Azure Arc 지원 OSM 제거

다음 명령을 사용합니다.

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

확장 인스턴스가 삭제되었는지 확인합니다.

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

이 출력에는 OSM이 포함되어서는 안됩니다. 클러스터에 다른 확장을 설치하지 않은 경우에는 단순히 빈 배열입니다.

az k8s-extension 명령을 사용하여 OSM 확장을 삭제하면 arc-osm-system 네임스페이스는 제거되지 않으며 네임스페이스 내의 실제 리소스(예: 웹후크 구성 변경 및 osm-controller pod)를 삭제하는 데 약 10분이 소요됩니다.

참고 항목

az k8s-extension CLI를 사용하여 Arc에서 관리하는 OSM 구성 요소를 제거합니다. Arc에서는 OSM CLI를 사용한 제거를 지원하지 않으며 OSM CLI를 사용하여 제거하면 원치 않는 동작이 발생할 수 있습니다.

다음 단계