Amazon EKS 로깅 - AWS 규범적 지침

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon EKS 로깅

쿠버네티스 로깅은 컨트롤 플레인 로깅, 노드 로깅 및 애플리케이션 로깅으로 나눌 수 있다. 이Kubernetes 제어 플레인는 Kubernetes 클러스터를 관리하고 감사 및 진단 목적으로 사용되는 로그를 생성하는 구성 요소 집합입니다. 아마존 EKS를 사용하면다른 컨트롤 플레인 구성 요소에 대한 로그 켜기CloudWatch 전송합니다.

쿠버네티스는 또한 다음과 같은 시스템 컴포넌트를 실행합니다.kubeletkube-proxy파드를 실행하는 각 쿠버네티스 노드에서. 이러한 구성 요소는 각 노드 내에 로그를 작성하고 사용자가 구성할 수 있습니다. CloudWatch 및 컨테이너 인사이트를 사용하여 각 Amazon EKS 노드에 대해 이러한 로그를 캡처합니다.

컨테이너는 다음과 같이 그룹화됩니다.꼬투리쿠버네티스 클러스터 내에서 쿠버네티스 노드에서 실행되도록 예약된다. 대부분의 컨테이너화된 애플리케이션은 표준 출력 및 표준 오류를 기록하며, 컨테이너 엔진은 출력을 로깅 드라이버로 리디렉션합니다. 쿠버네티스에서 컨테이너 로그는/var/log/pods노드의 디렉토리입니다. 구성할 수 있습니다. CloudWatch 각 Amazon EKS 포드에 대해 이러한 로그를 캡처하는 컨테이너 통찰력을 제공합니다.

Amazon EKS 제어 영역 로깅

Amazon EKS 클러스터는 쿠버네티스 클러스터용 고가용성 단일 테넌트 컨트롤 플레인과 컨테이너를 실행하는 Amazon EKS 노드로 구성됩니다. 컨트롤 플레인 노드는 다음에 의해 관리되는 계정에서 실행됩니다.AWS. Amazon EKS 클러스터 컨트롤 플레인 노드는 CloudWatch 특정 제어 평면 구성요소에 대해 로깅을 켤 수 있습니다.

로그는 각 쿠버네티스 컨트롤 플레인 컴포넌트 인스턴스에 대해 제공됩니다.AWS컨트롤 플레인 노드의 상태를 관리하고쿠버네티스 엔드포인트에 대한 SLA (서비스 수준 계약).

Amazon EKS 노드 및 애플리케이션 로깅

를 사용할 것을 권장합니다.CloudWatch Container InsightsAmazon EKS의 로그 및 메트릭을 캡처합니다. 컨테이너 인사이트는 다음을 사용하여 클러스터, 노드 및 포드 수준 지표를 구현합니다. CloudWatch 에이전트 및 CloudWatch에 대한 로그 캡처용 유창한 비트 또는 Fluentd입니다. Container Insights는 캡처된 뷰를 계층화된 자동 대시보드도 제공합니다. CloudWatch 지표. 컨테이너 인사이트는 CloudWatch로 배포됩니다. DaemonSet Fluent Bit DaemonSet 모든 Amazon EKS 노드에서 실행됩니다. 노드는 다음에 의해 관리되기 때문에 컨테이너 인사이트에서 Fargate 노드는 지원되지 않습니다.AWSDaemonSets 지원하지 않습니다. Amazon EKS용 Fargate 로깅은 이 가이드에서는 별도로 다룹니다.

다음 표에는 CloudWatch 에 의해 캡처된 로그 그룹 및 로그기본 Fluentd 또는 Fluent Bit 로그 캡처 구성Amazon EKS.

/aws/containerinsights/Cluster_Name/application 의 모든 로그 파일/var/log/containers. 이 디렉토리는 모든 쿠버네티스 컨테이너 로그에 대한 심볼릭 링크를 제공합니다./var/log/pods디렉터리 구조입니다. 이렇게 하면 응용 프로그램 컨테이너 로그를 캡처합니다.stdout또는stderr. 여기에는 다음과 같은 쿠버네티스 시스템 컨테이너에 대한 로그도 포함됩니다.aws-vpc-cni-init,kube-proxy, 및coreDNS.
/aws/containerinsights/Cluster_Name/host 에서의 로그/var/log/dmesg,/var/log/secure, 및/var/log/messages.
/aws/containerinsights/Cluster_Name/dataplane kubelet.service, kubeproxy.servicedocker.service에 대한 /var/log/journal에서의 로그.

로깅을 위해 Fluent Bit 또는 Fluentd와 함께 컨테이너 인사이트를 사용하지 않으려면 다음을 사용하여 노드 및 컨테이너 로그를 캡처할 수 있습니다. CloudWatch Amazon EKS 노드에 설치된 에이전트입니다. Amazon EKS 노드는 EC2 인스턴스입니다. 즉, Amazon EC2 EC2의 표준 시스템 수준 로깅 접근 방식에 포함시켜야 합니다. 을 (를) 설치하는 경우 CloudWatch 대리점 및 상태 관리자를 사용하는 에이전트인 경우 Amazon EKS 노드도 CloudWatch 에이전트 설치, 구성 및 업데이트

다음 표는 쿠버네티스에만 해당하며 로깅을 위해 Fluentd 또는 Fluentd와 함께 컨테이너 인사이트를 사용하지 않을 경우 캡처해야 하는 로그를 보여줍니다.

/var/log/containers 이 디렉토리는 아래의 모든 쿠버네티스 컨테이너 로그에 대한 심볼릭 링크를 제공합니다./var/log/pods디렉터리 구조입니다. 이렇게 하면 응용 프로그램 컨테이너 로그를 효과적으로 캡처합니다.stdout또는stderr. 여기에는 다음과 같은 쿠버네티스 시스템 컨테이너에 대한 로그가 포함됩니다.aws-vpc-cni-init,kube-proxy, 및coreDNS. 중요: 컨테이너 인사이트를 사용하는 경우에는 필요하지 않습니다.
var/log/aws-routed-eni/ipamd.log

/var/log/aws-routed-eni/plugin.log
L-IPAM 데몬에 대한 로그는 여기에서 찾을 수 있습니다.

Amazon EKS 노드가 다음을 설치하고 구성해야 합니다. CloudWatch 적절한 시스템 수준 로그 및 메트릭을 보내는 에이전트입니다. 그러나 Amazon EKS 최적화 AMI에는 Systems Manager 에이전트가 포함되어 있지 않습니다. 를 사용하여시작 템플릿, Systems Manager 에이전트 설치 및 기본값을 자동화할 수 있습니다. CloudWatch 사용자 데이터 섹션을 통해 구현된 시작 스크립트를 사용하여 중요한 Amazon EKS별 로그를 캡처하는 구성입니다. Amazon EKS 노드는 Auto Scaling 그룹을관리형 노드 그룹또는자체 관리형 노드.

관리형 노드 그룹을 사용하면시작 템플릿여기에는 Systems Manager 에이전트 설치를 자동화하는 사용자 데이터 섹션이 포함되어 있으며 CloudWatch 구성. 를 사용자 지정하고 사용할 수 있습니다.Amazon_eks_관리_노드_그룹_런치_구성. 얌 AWS CloudFormationSystems Manager 에이전트를 설치하는 시작 템플릿을 만드는 템플릿 CloudWatch 에이전트에 Amazon EKS 특정 로깅 구성을 추가합니다. CloudWatch 구성 디렉터리입니다. 이 템플릿은 Amazon EKS 관리형 노드 그룹 시작 템플릿을 다음과 같이 업데이트하는 데 사용할 수 있습니다. infrastructure-as-code (IAC) 접근 방식. 각 업데이트AWS CloudFormation템플리트는 새 버전의 시작 템플릿을 프로비저닝합니다. 그런 다음 노드 그룹을 업데이트하여 새 템플릿 버전을 사용하고관리형 수명 주기 프로세스다운타임 없이 노드를 업데이트하십시오. 관리형 노드 그룹에 적용된 IAM 역할 및 인스턴스 프로필에CloudWatchAgentServerPolicyAmazonSSMManagedInstanceCore AWS관리형 정책

자체 관리형 노드를 사용하면 Amazon EKS 노드에 대한 수명 주기 및 업데이트 전략을 직접 프로비저닝하고 관리할 수 있습니다. 자체 관리형 노드를 사용하면 Amazon EKS 클러스터에서 Windows 노드를 실행할 수 있으며Bottlerocket와 함께기타 옵션. 를 사용할 수 있습니다.AWS CloudFormation자체 관리형 노드를 Amazon EKS 클러스터에 배포합니다. 즉, Amazon EKS 클러스터에 IAC 및 관리형 변경 접근 방식을 사용할 수 있습니다.AWS를 제공합니다.아마존-엑스-노디그룹.yaml AWS CloudFormation있는 그대로 또는 사용자 지정할 수 있는 템플릿입니다. 이 템플릿은 클러스터의 Amazon EKS 노드에 필요한 모든 리소스를 프로비저닝합니다 (예: 별도의 IAM 역할, 보안 그룹, Amazon EC2 Auto Scaling 그룹 및 시작 템플릿). 이아마존-엑스-노디그룹.yaml AWS CloudFormation템플릿은 필요한 Systems Manager 에이전트를 설치하는 업데이트된 버전입니다. CloudWatch 에이전트에 Amazon EKS 특정 로깅 구성을 추가합니다. CloudWatch 구성 디렉터리입니다.

Fargate 아마존 EKS 로깅

Fargate의 Amazon EKS를 사용하면 쿠버네티스 노드를 할당하거나 관리하지 않고도 파드를 배포할 수 있습니다. 이렇게 하면 쿠버네티스 노드에 대한 시스템 레벨 로그를 캡처할 필요가 없습니다. Fargate 포드에서 로그를 캡처하려면 Fluent Bit을 사용하여 로그를 CloudWatch로 직접 전달할 수 있습니다. 이렇게 하면 로그를 자동으로 라우팅할 수 있습니다. CloudWatch Fargate의 Amazon EKS 포드에 대한 추가 구성 또는 사이드카 컨테이너가 없습니다. 자세한 내용은 단원을 참조하십시오.Fargate 로깅Amazon EKS 설명서에 나와 있습니다.아마존 EKS를 위한 유창한에AWS블로그. 이 솔루션은STDOUTSTDERR컨테이너에서 입/출력 (I/O) 스트림을 다음 CloudWatch Fargate의 Amazon EKS 클러스터에 대해 설정된 Fluent Bit 구성을 기반으로 하는 Fluent Bit을 통해