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 계정. 체험 계정을 만듭니다.
Azure Cloud Shell에서 Bash 환경을 사용합니다. 자세한 내용은 Azure Cloud Shell의 Bash에 대한 빠른 시작을 참조하세요.
CLI 참조 명령을 로컬에서 실행하려면 Azure CLI를 설치합니다. Windows 또는 macOS에서 실행 중인 경우 Docker 컨테이너에서 Azure CLI를 실행하는 것이 좋습니다. 자세한 내용은 Docker 컨테이너에서 Azure CLI를 실행하는 방법을 참조하세요.
로컬 설치를 사용하는 경우 az login 명령을 사용하여 Azure CLI에 로그인합니다. 인증 프로세스를 완료하려면 터미널에 표시되는 단계를 수행합니다. 다른 로그인 옵션은 Azure CLI를 사용하여 로그인을 참조하세요.
메시지가 표시되면 처음 사용할 때 Azure CLI 확장을 설치합니다. 확장에 대한 자세한 내용은 Azure CLI에서 확장 사용을 참조하세요.
az version을 실행하여 설치된 버전과 종속 라이브러리를 찾습니다. 최신 버전으로 업그레이드하려면 az upgrade를 실행합니다.
- 이 문서의 단계에 필요한 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)
AKS 클러스터에 Azure Monitor 및 Grafana 연결
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를 배포해야 합니다.
다음 예제를 사용하여 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
왼쪽 탐색 메뉴에서 대시보드를 선택하고 Managed Prometheus 폴더에서 Kubernetes/네트워킹 대시보드를 엽니다.
Kubernetes/네트워킹 Grafana 대시보드의 메트릭이 표시되는지 확인합니다. 메트릭이 표시되지 않으면 오른쪽 위 드롭다운 상자에서 시간 범위를 마지막 15분으로 변경합니다.
리소스 정리
이 애플리케이션을 계속 사용하지 않려면 다음 예제와 함께 이 문서에서 만든 AKS 클러스터 및 기타 리소스를 삭제합니다.
az group delete \
--name myResourceGroup
다음 단계
이 방법 문서에서는 AKS 클러스터에 AKS 네트워크 관찰 기능을 설치하고 사용하도록 설정하는 방법을 알아보았습니다.
AKS 네트워크 관찰성에 대한 자세한 내용은 AKS(Azure Kubernetes Service) 네트워크 관찰성이란?을 참조하세요.
네트워크 가시성 기능과 BYO Prometheus 및 Grafana를 사용하여 AKS 클러스터를 만들려면 AKS(Azure Kubernetes Service) BYO Prometheus 및 Grafana에 대한 네트워크 가시성 기능 설정을 참조하세요.