다음을 통해 공유


Azure CLI를 사용하여 OSM(Open Service Mesh) 추가 항목 설치

이 문서는 AKS(Azure Kubernetes Service) 클러스터에 OSM(Open Service Mesh) 추가 항목을 설치하는 방법을 보여 줍니다. OSM 추가 항목은 클러스터에 OSM 메시를 설치합니다. OSM 메시는 애플리케이션에 대한 트래픽 관리, 정책 적용, 원격 분석 컬렉션을 제공하는 서비스 메시입니다. OSM 메시에 대한 자세한 내용은 Open Service Mesh를 참조하세요.

참고 항목

CNCF(클라우드 네이티브 컴퓨팅 재단)에서 OSM(Open Service Mesh) OSM(Open Service Mesh)의 사용을 중지함에 따라 OSM 구성을 식별하고 그에 상응하는 Istio 구성으로 마이그레이션하는 것이 좋습니다. OSM에서 Istio로 마이그레이션하는 방법에 대한 자세한 내용은 Istio로 OSM(Open Service Mesh) 구성 마이그레이션 지침을 참조하세요.

Important

클러스터가 실행 중인 Kubernetes 버전에 따라 OSM 추가 기능이 다른 버전의 OSM을 설치합니다.

Kubernetes 버전 설치된 OSM 버전
1.24.0 이상 1.2.5
1.23.5에서 1.24.0 사이 1.1.3
1.23.5 미만 1.0.0

이전 버전의 OSM은 설치에 사용할 수 없거나 해당 AKS 버전이 수명이 다한 경우 적극적으로 지원될 수 없습니다. AKS 버전 지원 창에 대한 정보는 AKS Kubernetes 릴리스 일정에서 확인할 수 있습니다.

필수 구성 요소

클러스터에 OSM 추가 항목 설치

  1. 아직 없다면 az group create 명령을 사용하여 Azure 리소스 그룹을 만듭니다.

    az group create --name myResourceGroup --location eastus
    
  2. az aks create 명령을 사용하여 OSM 추가 항목이 설치된 새 AKS 클러스터를 만들고 --enable-addons 매개 변수에 open-service-mesh를 지정합니다.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --enable-addons open-service-mesh \
        --generate-ssh-keys        
    

Important

OSM 메시가 이미 클러스터에 있는 경우 기존 클러스터에서 OSM 추가 항목을 사용하도록 설정할 수 없습니다. OSM 추가 항목을 사용하도록 설정하기 전에 클러스터에서 기존 OSM 메시를 제거합니다.

기존 클러스터에 설치하는 경우 az aks enable-addons 명령을 사용합니다. 다음 코드에서는 예제를 보여 줍니다.

az aks enable-addons \
 --resource-group myResourceGroup \
 --name myAKSCluster \
 --addons open-service-mesh

클러스터의 자격 증명 가져오기

  • az aks get-credentials 명령을 사용하여 AKS 클러스터의 자격 증명을 가져옵니다.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    

OSM 추가 항목이 클러스터에 설치되어 있는지 확인합니다

  • az aks show 명령을 사용하여 클러스터에 OSM 추가 항목이 설치되어 있는지 확인하고 --query 매개 변수에 'addonProfiles.openServiceMesh.enabled'를 지정합니다. 출력의 addonProfiles에서 openServiceMeshenabled 값이 true로 표시됩니다.

    az aks show --resource-group myResourceGroup --name myAKSCluster  --query 'addonProfiles.openServiceMesh.enabled'
    

OSM 메시가 클러스터에서 실행되고 있는지 확인합니다.

  1. kubectl get deployment 명령을 사용하여 클러스터에서 실행되는 OSM의 버전, 상태, 구성을 확인하고 osm-controller 배포의 이미지 버전을 표시합니다.

    kubectl get deployment -n kube-system osm-controller -o=jsonpath='{$.spec.template.spec.containers[:1].image}'
    

    다음 예제 출력은 OSM 메시의 버전 0.11.1을 보여줍니다.

    mcr.microsoft.com/oss/openservicemesh/osm-controller:v0.11.1
    
  2. app.kubernetes.io/name=openservicemesh.io 배포, Pod, 서비스의 상태를 표시하려면 kubectl 명령을 사용하여 클러스터에서 실행되는 OSM 구성 요소의 상태를 확인합니다.

    kubectl get deployments -n kube-system --selector app.kubernetes.io/name=openservicemesh.io
    kubectl get pods -n kube-system --selector app.kubernetes.io/name=openservicemesh.io
    kubectl get services -n kube-system --selector app.kubernetes.io/name=openservicemesh.io
    

    Important

    Pod의 상태가 Pending과(와) 같이 Running이(가) 아닌 경우 클러스터에 OSM을 실행하기에 충분한 리소스가 없을 수 있습니다. 클러스터에서 OSM을 계속 사용하기 전에 노드 수 및 가상 머신의 SKU와 같은 클러스터 크기 조정을 검토합니다.

  3. kubectl get meshconfig 명령을 사용하여 OSM 메시의 구성을 확인합니다.

    kubectl get meshconfig osm-mesh-config -n kube-system -o yaml
    

    다음 예제 출력은 OSM 메시의 구성을 보여줍니다.

    apiVersion: config.openservicemesh.io/v1alpha1
    kind: MeshConfig
    metadata:
      creationTimestamp: "0000-00-00A00:00:00A"
      generation: 1
      name: osm-mesh-config
      namespace: kube-system
      resourceVersion: "2494"
      uid: 6c4d67f3-c241-4aeb-bf4f-b029b08faa31
    spec:
      certificate:
        serviceCertValidityDuration: 24h
      featureFlags:
        enableEgressPolicy: true
        enableMulticlusterMode: false
        enableWASMStats: true
      observability:
        enableDebugServer: true
        osmLogLevel: info
        tracing:
          address: jaeger.osm-system.svc.cluster.local
          enable: false
          endpoint: /api/v2/spans
          port: 9411
      sidecar:
        configResyncInterval: 0s
        enablePrivilegedInitContainer: false
        envoyImage: mcr.microsoft.com/oss/envoyproxy/envoy:v1.18.3
        initContainerImage: mcr.microsoft.com/oss/openservicemesh/init:v0.9.1
        logLevel: error
        maxDataPlaneConnections: 0
        resources: {}
      traffic:
        enableEgress: true
        enablePermissiveTrafficPolicyMode: true
        inboundExternalAuthorization:
          enable: false
          failureModeAllow: false
          statPrefix: inboundExtAuthz
          timeout: 1s
        useHTTPSIngress: false
    

    예제에서는 OSM에서 허용 트래픽 정책 모드를 사용함을 의미하는 enablePermissiveTrafficPolicyMode: true를 보여 줍니다. OSM 메시에서 이 모드를 사용하도록 설정하면 다음을 수행합니다.

    • SMI 트래픽 정책 적용은 무시됩니다.
    • OSM은 서비스 메시의 일부인 서비스를 자동으로 검색합니다.
    • OSM은 각 Envoy 프록시 사이드카에 트래픽 정책 규칙을 만들어 이러한 서비스와 통신할 수 있도록 합니다.

클러스터 삭제

  • 클러스터가 더 이상 필요하지 않은 경우 az group delete 명령을 사용하여 삭제할 수 있습니다. 이 명령은 소스 그룹과 클러스터 및 관련된 모든 리소스를 제거합니다.

    az group delete --name myResourceGroup --yes --no-wait
    

참고 항목

또는 클러스터에서 OSM 추가 항목 및 관련 리소스를 제거할 수 있습니다. 자세한 내용은 AKS 클러스터에서 Open Service Mesh 추가 항목 제거를 참조하세요.

다음 단계

이 문서는 AKS 클러스터에 OSM 추가 항목을 설치하고, 항목이 설치되어 실행 중인지 확인하는 방법을 보여 줍니다. 클러스터에 OSM 추가 항목이 설치되어 있으면 응용 프로그램 예제를 배포하거나 기존 애플리케이션을 온보딩하여 OSM 메시로 작업할 수 있습니다.