BottleRocket, Ubuntu 또는 Redhat의 기본 및 워커 노드에서 EKS Anywhere 클러스터 구성 요소 로그를 확인하려면 어떻게 해야 하나요?

4분 분량
0

Amazon Elastic Kubernetes Service(Amazon EKS) Anywhere에서 컨트롤 플레인 또는 데이터 영역 머신 생성이 실패할 때 구성 요소 로그를 확인하고 싶습니다.

간략한 설명

Amazon EKS Anywhere 워크로드 클러스터를 생성하는 동안 컨트롤 플레인, etcd, 데이터 영역에서 각 머신의 로그를 확인할 수 있습니다.

각 머신의 구성 요소 로그를 확인하려면 다음 조건이 충족되어야 합니다.

  • EKS Anywhere가 워크로드 클러스터 생성을 시도하고 있으며 각 머신이 생성 과정에 있습니다.
  • 각 머신에서 컨트롤 플레인, etcd 및 데이터 영역에서 SSH를 통해 로그인할 수 있습니다.

해결 방법

$ kubectl get machines 명령으로 각 머신의 상태를 확인합니다.

관리 클러스터의 예:

$ kubectl get machines -A
NAMESPACE     NAME                         CLUSTER   NODENAME      PROVIDERID                                       PHASE     AGE     VERSION
eksa-system   mgmt-etcd-bwnfq              mgmt                    vsphere://4230b0d5-7b14-4753-bd41-3dbe4987dbc4   Running   5h26m
eksa-system   mgmt-etcd-bzm77              mgmt                    vsphere://4230b278-1fb4-f539-0afe-9f12afebf86b   Running   5h26m
eksa-system   mgmt-etcd-dzww2              mgmt                    vsphere://42309b5a-b0ad-58a5-1e40-5fe39a3d1640   Running   5h26m
eksa-system   mgmt-jw8dl                   mgmt      10.4.11.19    vsphere://42304059-c833-48d3-9856-7f902c852743   Running   5h26m   v1.24.9-eks-1-24-7
eksa-system   mgmt-md-0-66b858b477-6cbcz   mgmt      10.4.35.76    vsphere://4230efad-5d42-c570-36c5-bf9ee92ee011   Running   5h26m   v1.24.9-eks-1-24-7
eksa-system   mgmt-md-0-66b858b477-8h88c   mgmt      10.4.19.38    vsphere://4230edbf-db9b-3ae9-a2e6-8421e06863fb   Running   5h26m   v1.24.9-eks-1-24-7
eksa-system   mgmt-s7fb7                   mgmt      10.4.67.152   vsphere://42301d6f-feb1-d967-9750-148d0823c7b5   Running   5h26m   v1.24.9-eks-1-24-7

머신의 상태를 확인하고 구성 요소 로그를 점검할 수 있는지 확인한 후 SSH를 통해 각 머신에 로그인합니다. 다음 예에서 user는 각 제공업체의 MachineConfig에 지정된 SSH 로그인 사용자입니다.

$ ssh -i private_key_file user@Machine_IP_address

컴퓨터의 운영 체제(OS)에 따라 관련 단계를 수행하여 컴포넌트 로그를 확인합니다.

참고: 컨트롤 플레인 섹션은 클러스터 이름 접두사("cluster_name-")가 있는 이름으로 지정된 머신을 나타냅니다. etcd 섹션은 클러스터 이름과 etcd 접두사("cluster_name-etcd-")가 있는 이름으로 지정된 머신을 나타냅니다. 데이터 영역 섹션은 클러스터 이름과 워커 노드 이름 접두사("cluster_name-worker_node_name-")가 포함된 이름의 머신을 나타냅니다. ClusterConfig 설정에 따라 etcd는 전용 머신을 갖지 않고 대신 컨트롤 플레인에서 시작할 수 있습니다.

BottleRocket OS가 설치된 머신

SSH로 로그인하면 관리자 컨테이너에도 로그인하게 됩니다. 디버깅을 위해 로그를 확인하기 전에 다음 명령으로 루트 권한을 얻으세요.

$ sudo sheltie

컨트롤 플레인

kubelet 로그의 경우, 다음 명령을 실행합니다.

# journalctl -u kubelet.service --no-pager

컨테이너 로그의 경우, 다음 명령을 실행합니다.

# journalctl -u containerd.service --no-pager

머신 초기화 로그의 경우, 다음 명령을 실행합니다.

# journalctl _COMM=host-ctr --no-pager

각 컨테이너 로그에 대해 /var/log/containers 디렉터리에서 로그를 확인합니다.

Kubernetes kube-apiserver, kube-controller-manager, kube-scheduler, kube-vip 매니페스트의 경우 /etc/kubernetes/manifest 디렉터리에서 파일을 확인합니다.

etcd

컨테이너 로그의 경우, 다음 명령을 실행합니다.

# journalctl -u containerd.service --no-pager

머신 초기화 로그의 경우, 다음 명령을 실행합니다.

# journalctl _COMM=host-ctr --no-pager

etcd 로그의 경우, /var/log/containers 디렉터리를 찾습니다.

데이터 영역

kubelet 로그의 경우, 다음 명령을 실행합니다.

# journalctl -u kubelet.service --no-pager

컨테이너 로그의 경우, 다음 명령을 실행합니다.

# journalctl -u containerd.service --no-pager

머신 초기화 로그의 경우, 다음 명령을 실행합니다.

# journalctl _COMM=host-ctr

각 컨테이너 로그에 대해 /var/log/containers 디렉터리에서 로그를 확인합니다.

참고: AWS Snow를 공급자로 사용하는 경우, 각 노드에서 다음 명령의 결과도 확인합니다.

# journalctl -u bootstrap-containers@bottlerocket-bootstrap-snow.service
# systemctl status bootstrap-containers@bottlerocket-bootstrap-snow

Ubuntu 또는 Red Hat Enterprise Linux OS가 설치된 머신

디버깅을 위해 로그를 확인하기 전에 다음 명령으로 루트 권한을 얻으세요.

$ sudo su -

컨트롤 플레인

kubelet 로그의 경우, 다음 명령을 실행합니다.

# journalctl -u kubelet.service --no-pager

컨테이너 로그의 경우, 다음 명령을 실행합니다.

# journalctl -u containerd.service --no-pager

머신 초기화 로그의 경우, 다음 명령을 실행합니다.

# cat /var/log/cloud-init-output.log

각 컨테이너 로그에 대해 /var/log/containers 디렉터리에서 로그를 확인합니다.

머신을 시작할 때 개시되는 사용자 데이터의 경우, 다음 명령을 실행합니다.

# cat /var/lib/cloud/instance/user-data.txt

Kubernetes kube-apiserver, kube-controller-manager, kube-scheduler, kube-vip 매니페스트의 경우 /etc/kubernetes/manifest 디렉터리에서 파일을 확인합니다.

etcd

etcd 로그의 경우, 다음 명령을 실행합니다.

# journalctl -u etcd.service --no-pager

머신 초기화 로그의 경우, 다음 명령을 실행합니다.

# cat /var/log/cloud-init-output.log

머신을 시작할 때 개시되는 사용자 데이터의 경우, 다음 명령을 실행합니다.

# cat /var/lib/cloud/instance/user-data.txt

데이터 영역

kubelet 로그의 경우, 다음 명령을 실행합니다.

# journalctl -u kubelet.service --no-pager

컨테이너 로그의 경우, 다음 명령을 실행합니다.

# journalctl -u containerd.service --no-pager

머신 초기화 로그의 경우, 다음 명령을 실행합니다.

# cat /var/log/cloud-init-output.log

머신을 시작할 때 개시되는 사용자 데이터의 경우, 다음 명령을 실행합니다.

cat /var/lib/cloud/instance/user-data.txt

각 컨테이너 로그에 대해 /var/log/containers 디렉터리에서 로그를 확인합니다.

AWS 공식
AWS 공식업데이트됨 일 년 전