AKS(Azure Kubernetes Service)에 대한 네트워크 관찰 기능 설정 - Azure 관리형 Prometheus 및 Grafana

AKS 네트워크 관찰성은 AKS 클러스터의 네트워크 트래픽 데이터를 수집하는 데 사용됩니다. 네트워크 관찰 기능을 사용하면 중앙 집중식 플랫폼에서 애플리케이션 및 네트워크 상태를 모니터링할 수 있습니다. Prometheus는 AKS 네트워크 관찰성 메트릭을 수집하고 Grafana는 이를 시각화합니다. Cilium 및 비 Cilium 데이터 평면이 모두 지원됩니다. 이 문서에서는 네트워크 관찰성 추가 기능을 사용하도록 설정하고 Azure 관리되는 Prometheus 및 Grafana를 사용하여 스크래핑된 메트릭을 시각화하는 방법을 알아봅니다.

Important

AKS 네트워크 가시성은 현재 미리 보기로 제공됩니다. 베타, 미리 보기로 제공되거나 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 약관은 Microsoft Azure 미리 보기에 대한 추가 사용 약관을 참조하세요.

AKS 네트워크 관찰성에 대한 자세한 내용은 AKS(Azure Kubernetes Service) 네트워크 관찰성이란?을 참조하세요.

필수 조건

  • 이 문서의 단계에 필요한 Azure CLI최소 버전은 2.44.0입니다. az --version을 실행하여 버전을 찾습니다. 설치 또는 업그레이드해야 하는 경우 Azure CLI 설치를 참조하세요.

aks-preview Azure CLI 확장 설치

Important

AKS 미리 보기 기능은 셀프 서비스에서 사용할 수 있습니다(옵트인 방식). 미리 보기는 "있는 그대로" 및 "사용 가능한 상태로" 제공되며 서비스 수준 계약 및 제한적 보증에서 제외됩니다. AKS 미리 보기의 일부는 고객 지원팀에서 최선을 다해 지원합니다. 따라서 이러한 기능은 프로덕션 용도로 사용할 수 없습니다. 자세한 내용은 다음 지원 문서를 참조하세요.

# Install the aks-preview extension
az extension add --name aks-preview

# Update the extension to make sure you have the latest version installed
az extension update --name aks-preview

NetworkObservabilityPreview 기능 플래그 등록

az feature register --namespace "Microsoft.ContainerService" --name "NetworkObservabilityPreview"

az feature show를 사용하여 기능 플래그의 등록 상태 검사.

az feature show --namespace "Microsoft.ContainerService" --name "NetworkObservabilityPreview"

이 문서의 앞부분에 앞서 해당 기능이 등록되었다고 말할 때까지 기다립니다.

{
  "id": "/subscriptions/23250d6d-28f0-41dd-9776-61fc80805b6e/providers/Microsoft.Features/providers/Microsoft.ContainerService/features/NetworkObservabilityPreview",
  "name": "Microsoft.ContainerService/NetworkObservabilityPreview",
  "properties": {
    "state": "Registering"
  },
  "type": "Microsoft.Features/providers/features"
}

기능이 등록되면 az provider register를 사용하여 Microsoft.ContainerService 리소스 공급자의 등록새로 고칩니다.

az provider register -n Microsoft.ContainerService

리소스 그룹 만들기

리소스 그룹은 Azure 리소스가 배포 및 관리되는 논리적 컨테이너입니다. az group create 명령을 사용하여 리소스 그룹을 만듭니 다. 다음 예제에서는 eastus 위치에 myResourceGroup이라는 리소스 그룹을 만듭니다.

az group create \
    --name myResourceGroup \
    --location eastus

참고 항목

Kubernetes 버전 1.29 이상의 경우 일반 공급에 도달할 때까지 AMA 메트릭 프로필 및 AFEC 플래그(NetworkObservabilityPreview)를 사용하여 네트워크 관찰성을 사용할 수 있습니다.

Kubernetes 버전 1.29부터 AKS(Azure Kubernetes Service) 클러스터를 만들거나 업데이트할 때 --enable-network-observability 태그가 더 이상 필요하지 않습니다.

Kubernetes 버전 1.28 이하를 실행하는 AKS 클러스터의 경우 네트워크 관찰성을 사용하도록 설정하려면 클러스터를 만들거나 업데이트하는 동안 --enable-network-observability 태그가 필요합니다.

AKS 클러스터 만들기

az aks create를 사용하여 AKS 클러스터를 만듭니다. 다음 예제에서는 myResourceGroup 리소스 그룹에 myAKSCluster라는 AKS 클러스터를 만듭니다.

Cilium이 아닌 클러스터는 기존 클러스터 또는 새 클러스터를 만드는 동안 네트워크 관찰 가능성을 사용하도록 설정할 수 있도록 지원합니다.

다음 예제에서 az aks create를 사용하여 네트워크 관찰 가능성 및 비 Cilium을 사용하여 AKS 클러스터를 만듭니 다.

새 클러스터

az aks create \
    --name myAKSCluster \
    --resource-group myResourceGroup \
    --location eastus \
    --generate-ssh-keys \
    --network-plugin azure \
    --network-plugin-mode overlay \
    --pod-cidr 192.168.0.0/16 \
    --enable-network-observability

기존 클러스터

az aks update를 사용하여 기존 클러스터에 대한 네트워크 관찰 기능을 사용하도록 설정합니다.

az aks update \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --enable-network-observability 

Azure 관리형 Prometheus 및 Grafana

다음 예제를 사용하여 AKS 클러스터에 Prometheus 및 Grafana를 설치하고 사용하도록 설정합니다.

Azure Monitor 리소스 만들기

az resource create \
    --resource-group myResourceGroup \
    --namespace microsoft.monitor \
    --resource-type accounts \
    --name myAzureMonitor \
    --location eastus \
    --properties '{}'

Grafana 인스턴스 만들기

az grafana create를 사용하여 Grafana 인스턴스를 만듭니 다. Grafana 인스턴스의 이름은 고유해야 합니다. myGrafana를 Grafana 인스턴스의 고유한 이름으로 대체합니다.

az grafana create \
    --name myGrafana \
    --resource-group myResourceGroup 

Grafana 및 Azure Monitor 리소스 ID를 변수에 배치합니다.

az grafana show를 사용하여 Grafana 리소스 ID를 변수에 배치합니다. az resource show를 사용하여 Azure Monitor 리소스 ID를 변수에 배치합니다. myGrafana를 Grafana 인스턴스의 이름으로 바꿉 있습니다.

grafanaId=$(az grafana show \
                --name myGrafana \
                --resource-group myResourceGroup \
                --query id \
                --output tsv)

azuremonitorId=$(az resource show \
                    --resource-group myResourceGroup \
                    --name myAzureMonitor \
                    --resource-type "Microsoft.Monitor/accounts" \
                    --query id \
                    --output tsv)

az aks update를 사용하여 Azure Monitor 및 Grafana 리소스를 AKS 클러스터에 연결합니다.

az aks update \
    --name myAKSCluster \
    --resource-group myResourceGroup \
    --enable-azure-monitor-metrics \
    --azure-monitor-workspace-resource-id $azuremonitorId \
    --grafana-resource-id $grafanaId

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

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

Grafana에서 시각화 사용

참고 항목

다음 섹션에서는 Azure 관리형 Prometheus 및 Grafana를 배포해야 합니다.

  1. 다음 예제를 사용하여 Azure Monitor Pod가 실행 중인지 확인합니다.

    kubectl get po -owide -n kube-system | grep ama-
    
    ama-metrics-5bc6c6d948-zkgc9          2/2     Running   0 (21h ago)   26h
    ama-metrics-ksm-556d86b5dc-2ndkv      1/1     Running   0 (26h ago)   26h
    ama-metrics-node-lbwcj                2/2     Running   0 (21h ago)   26h
    ama-metrics-node-rzkzn                2/2     Running   0 (21h ago)   26h
    ama-metrics-win-node-gqnkw            2/2     Running   0 (26h ago)   26h
    ama-metrics-win-node-tkrm8            2/2     Running   0 (26h ago)   26h
    
  2. 왼쪽 탐색 메뉴에서 대시보드를 선택하고 Managed Prometheus 폴더에서 Kubernetes/네트워킹 대시보드를 엽니다.

  3. Kubernetes/네트워킹 Grafana 대시보드의 메트릭이 표시되는지 확인합니다. 메트릭이 표시되지 않으면 오른쪽 위 드롭다운 상자에서 시간 범위를 마지막 15분으로 변경합니다.

리소스 정리

이 애플리케이션을 계속 사용하지 않려면 다음 예제와 함께 이 문서에서 만든 AKS 클러스터 및 기타 리소스를 삭제합니다.

  az group delete \
    --name myResourceGroup

다음 단계

이 방법 문서에서는 AKS 클러스터에 AKS 네트워크 관찰 기능을 설치하고 사용하도록 설정하는 방법을 알아보았습니다.