7.5.5. Operator 로그 수집
Operator 문제가 발생하면 Operator Pod 로그에서 자세한 진단 정보를 수집할 수 있습니다.
사전 요구 사항
-
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. - API 서비스가 작동하고 있어야 합니다.
-
OpenShift CLI(
oc
)가 설치되어 있습니다. - 컨트롤 플레인 또는 컨트롤 플레인 머신 (마스터 머신이라고도 함)의 정규화된 도메인 이름이 있어야 합니다.
절차
Operator의 네임스페이스에서 실행 중인 Operator Pod와 Pod 상태, 재시작, 경과 시간을 표시합니다.
$ oc get pods -n <operator_namespace>
Operator Pod의 로그를 검토합니다.
$ oc logs pod/<pod_name> -n <operator_namespace>
Operator Pod에 컨테이너가 여러 개 있는 경우 위 명령에 의해 각 컨테이너의 이름이 포함된 오류가 생성됩니다. 개별 컨테이너의 로그를 쿼리합니다.
$ oc logs pod/<operator_pod_name> -c <container_name> -n <operator_namespace>
API가 작동하지 않는 경우 대신 SSH를 사용하여 각 컨트롤 플레인 노드에서 Operator Pod 및 컨테이너 로그를 검토합니다.
<master-node>.<cluster_name>.<base_domain>
을 적절한 값으로 바꿉니다.각 컨트롤 플레인 노드에 Pod를 나열합니다.
$ ssh core@<master-node>.<cluster_name>.<base_domain> sudo crictl pods
Ready
상태가 표시되지 않는 Operator Pod의 경우 Pod 상태를 자세히 검사합니다.<operator_pod_id>
를 이전 명령의 출력에 나열된 Operator Pod의 ID로 교체합니다.$ ssh core@<master-node>.<cluster_name>.<base_domain> sudo crictl inspectp <operator_pod_id>
Operator Pod와 관련된 컨테이너를 나열합니다.
$ ssh core@<master-node>.<cluster_name>.<base_domain> sudo crictl ps --pod=<operator_pod_id>
Ready
상태가 표시되지 않는 Operator 컨테이너의 경우 컨테이너 상태를 자세히 검사합니다.<container_id>
를 이전 명령의 출력에 나열된 컨테이너 ID로 바꿉니다.$ ssh core@<master-node>.<cluster_name>.<base_domain> sudo crictl inspect <container_id>
Ready
상태가 표시되지 않는 Operator 컨테이너의 로그를 확인합니다.<container_id>
를 이전 명령의 출력에 나열된 컨테이너 ID로 바꿉니다.$ ssh core@<master-node>.<cluster_name>.<base_domain> sudo crictl logs -f <container_id>
참고Red Hat Enterprise Linux CoreOS (RHCOS)를 실행하는 OpenShift Container Platform 4.6 클러스터 노드는 변경할 수 없으며 Operator를 통해 클러스터 변경 사항을 적용합니다. SSH를 사용하여 클러스터 노드에 액세스하는 것은 권장되지 않으며 노드는 accessed 테인트로 표시됩니다. SSH를 통해 진단 데이터를 수집하기 전에
oc adm must gather
및 기타oc
명령을 실행하여 충분한 데이터를 수집할 수 있는지 확인하십시오. 그러나 OpenShift Container Platform API를 사용할 수 없거나 kubelet이 대상 노드에서 제대로 작동하지 않는 경우oc
작업이 영향을 받습니다. 이러한 상황에서ssh core@<node>.<cluster_name>.<base_domain>
을 사용하여 노드에 액세스할 수 있습니다.