5장. 클러스터에 대한 데이터 수집
지원 사례를 여는 경우 클러스터에 대한 디버깅 정보를 Red Hat 지원에 제공하면 도움이 됩니다.
다음을 제공하는 것이 좋습니다.
5.1. must-gather 툴 정보 링크 복사링크가 클립보드에 복사되었습니다!
oc adm must-gather CLI 명령은 다음을 포함하여 문제를 디버깅하는 데 필요할 가능성이 높은 클러스터에서 정보를 수집합니다.
- 리소스 정의
- 서비스 로그
기본적으로 oc adm must-gather 명령은 기본 플러그인 이미지를 사용하고 ./must-gather.local 에 씁니다.
또는 다음 섹션에 설명된 대로 적절한 인수로 명령을 실행하여 특정 정보를 수집할 수 있습니다.
하나 이상의 특정 기능과 관련된 데이터를 수집하려면 다음 섹션에 나열된 대로 이미지와 함께
--image인수를 사용합니다.예를 들면 다음과 같습니다.
$ oc adm must-gather \ --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel9:v4.19.19감사 로그를 수집하려면 다음 섹션에 설명된 대로
-- /usr/bin/gather_audit_logs인수를 사용하십시오.예를 들면 다음과 같습니다.
$ oc adm must-gather -- /usr/bin/gather_audit_logs참고- 감사 로그는 파일 크기를 줄이기 위해 기본 정보 세트의 일부로 수집되지 않습니다.
-
Windows 운영 체제에서
cwRsync클라이언트를 설치하고oc rsync명령과 함께 사용할 수 있도록PATH변수에 추가합니다.
oc adm must-gather 를 실행하면 클러스터의 새 프로젝트에 임의의 이름이 있는 새 Pod가 생성됩니다. 해당 Pod에서 데이터가 수집되어 현재 작업 디렉터리에 must-gather.local 로 시작하는 새 디렉터리에 저장됩니다.
예를 들면 다음과 같습니다.
NAMESPACE NAME READY STATUS RESTARTS AGE
...
openshift-must-gather-5drcj must-gather-bklx4 2/2 Running 0 72s
openshift-must-gather-5drcj must-gather-s8sdh 2/2 Running 0 72s
...
필요한 경우 --run-namespace 옵션을 사용하여 특정 네임스페이스에서 oc adm must-gather 명령을 실행할 수 있습니다.
예를 들면 다음과 같습니다.
$ oc adm must-gather --run-namespace <namespace> \
--image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel9:v4.19.19
5.1.1. Red Hat 지원을 위한 클러스터에 대한 데이터 수집 링크 복사링크가 클립보드에 복사되었습니다!
oc adm must-gather CLI 명령을 사용하여 클러스터에 대한 디버깅 정보를 수집할 수 있습니다.
자체 관리형 호스팅 클러스터를 디버깅하기 위해 정보를 수집하는 경우 "호스팅된 제어 평면의 문제를 해결하기 위한 정보 수집"을 참조하세요.
사전 요구 사항
-
cluster-admin역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. -
OpenShift Container Platform CLI(
oc)가 설치되어 있어야 합니다.
프로세스
must-gather데이터를 저장하려는 디렉터리로 이동합니다.참고클러스터가 연결이 끊긴 환경에 있는 경우 추가 단계를 수행해야 합니다. 미러 레지스트리에 신뢰할 수 있는 CA가 있는 경우 먼저 신뢰할 수 있는 CA를 클러스터에 추가해야 합니다. 연결이 끊긴 환경의 모든 클러스터에 대해 기본
must-gather이미지를 이미지 스트림으로 가져와야 합니다.$ oc import-image is/must-gather -n openshiftoc adm must-gather명령을 실행합니다.$ oc adm must-gather중요연결이 끊긴 환경에 있는 경우
--image플래그를 must-gather의 일부로 사용하여 페이로드 이미지를 가리킵니다.참고이 명령은 기본적으로 임의의 컨트롤 플레인 노드를 선택하므로 Pod가
NotReady및SchedulingDisabled상태인 컨트롤 플레인 노드로 예약할 수 있습니다.예를 들어 클러스터에서 Pod를 예약할 수 없는 경우와 같이 명령이 실패하면
oc adm inspect명령을 사용하여 특정 리소스에 대한 정보를 수집합니다.참고권장되는 리소스를 얻으려면 Red Hat 지원에 문의하십시오.
작업 디렉토리에서 생성된
must-gather디렉토리에서 압축 파일을 만듭니다. 고유한 필수 수집 데이터에 대한 날짜와 클러스터 ID를 제공해야 합니다. 클러스터 ID를 찾는 방법에 대한 자세한 내용은 OpenShift 클러스터에서 클러스터 ID 또는 이름을 찾는 방법을 참조하세요. 예를 들어 Linux 운영 체제를 사용하는 컴퓨터에서 다음 명령을 실행합니다.$ tar cvaf must-gather-`date +"%m-%d-%Y-%H-%M-%S"`-<cluster_id>.tar.gz <must_gather_local_dir>1 - 1
must-gather-local.472290403699006248을 실제 디렉터리 이름으로 교체합니다.
- 압축 파일을 Red Hat 고객 포털 의 고객 지원 페이지의 지원 케이스에 첨부합니다.
5.1.2. 꼭 모아야 할 깃발 링크 복사링크가 클립보드에 복사되었습니다!
다음 표에 나열된 플래그는 oc adm must-gather 명령과 함께 사용할 수 있습니다.
| 플래그 | 명령 예 | 설명 |
|---|---|---|
|
|
|
|
|
|
| 수집된 데이터가 기록된 로컬 시스템에서 특정 디렉터리를 설정합니다. |
|
|
|
|
|
|
|
실행할 |
|
|
|
실행할 |
|
|
| 사용할 특정 노드를 설정합니다. 지정하지 않으면 기본적으로 임의의 마스터가 사용됩니다. |
|
|
| 사용할 특정 노드 선택기를 설정합니다. 클러스터 노드 집합의 데이터를 동시에 캡처해야 하는 명령과 이미지를 지정할 때만 관련이 있습니다. |
|
|
|
|
|
|
|
지정된 기간보다 최신 로그만 반환합니다. 기본값은 모든 로그입니다. 플러그인을 사용하는 것이 좋지만 이를 지원할 필요는 없습니다. |
|
|
|
(RFC3339) 형식으로 표시된 특정 날짜와 시간 후에만 로그를 반환합니다. 기본값은 모든 로그입니다. 플러그인을 사용하는 것이 좋지만 이를 지원할 필요는 없습니다. |
|
|
| 수집된 데이터를 복사할 포드의 특정 디렉토리를 설정합니다. |
|
|
| 시간 초과가 발생하기 전까지 데이터를 수집하는 데 걸리는 시간으로, 초, 분 또는 시간으로 표현됩니다(예: 3초, 5분 또는 2시간). 지정된 시간은 0보다 커야 합니다. 지정하지 않으면 기본값은 10분입니다. |
|
|
|
|
5.1.3. 특정 기능에 대한 데이터 수집 링크 복사링크가 클립보드에 복사되었습니다!
oc adm must-gather CLI 명령을 --image 또는 --image-stream 인수와 함께 사용하여 특정 기능에 대한 디버깅 정보를 수집할 수 있습니다. must-gather 툴은 여러 이미지를 지원하므로 단일 명령을 실행하여 둘 이상의 기능에 대한 데이터를 수집할 수 있습니다.
| 이미지 | 목적 |
|---|---|
|
| OpenShift Virtualization의 데이터 수집. |
|
| OpenShift Serverless의 데이터 수집. |
|
| Red Hat OpenShift Service Mesh의 데이터 수집 |
|
| 호스팅된 제어 평면에 대한 데이터 수집. |
|
| Migration Toolkit for Containers의 데이터 수집 |
|
| Red Hat OpenShift Data Foundation의 데이터 수집 |
|
| 로깅을 위한 데이터 수집. |
|
| 네트워크 관찰 운영자를 위한 데이터 수집. |
|
| Local Storage Operator의 데이터 수집 |
|
| OpenShift 샌드박스 컨테이너의 데이터 수집 |
|
| SNR(Self Node Remediation) 운영자, FAR(Fence Agents Remediation) 운영자, MDR(Machine Deletion Remediation) 운영자, NHC(Node Health Check) 운영자, NMO(Node Maintenance Operator)를 포함한 Red Hat Workload Availability Operator에 대한 데이터 수집. NHC Operator 버전이 0.9.0 이전 인 경우 이 이미지를 사용하세요. 자세한 내용은 Red Hat OpenShift의 워크로드 가용성 문서에서 수정, 펜싱 및 유지 관리 의 특정 운영자에 대한 "데이터 수집" 섹션을 참조하세요. |
|
| SNR(Self Node Remediation) 운영자, FAR(Fence Agents Remediation) 운영자, MDR(Machine Deletion Remediation) 운영자, NHC(Node Health Check) 운영자, NMO(Node Maintenance Operator)를 포함한 Red Hat Workload Availability Operator에 대한 데이터 수집. NHC Operator 버전이 0.9.0 이상인 경우 이 이미지를 사용하세요. 자세한 내용은 Red Hat OpenShift의 워크로드 가용성 문서에서 수정, 펜싱 및 유지 관리 의 특정 운영자에 대한 "데이터 수집" 섹션을 참조하세요. |
|
| NUMA 자원 운영자(NRO)를 위한 데이터 수집. |
|
| PTP Operator의 데이터 수집 |
|
| Red Hat OpenShift GitOps의 데이터 수집 |
|
| 비밀 상점 CSI 운전자 운영자를 위한 데이터 수집. |
|
| LVM 운영자를 위한 데이터 수집. |
|
| 규정 준수 운영자를 위한 데이터 수집. |
OpenShift Container Platform 구성 요소 이미지의 최신 버전을 확인하려면 Red Hat 고객 포털의 OpenShift Operator Life Cycles 웹 페이지를 참조하세요.
사전 요구 사항
-
cluster-admin역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. -
OpenShift Container Platform CLI(
oc)가 설치되어 있어야 합니다.
프로세스
-
must-gather데이터를 저장하려는 디렉터리로 이동합니다. --image또는--image-stream인수를 하나 이상 사용하여oc adm must-gather명령을 실행합니다.참고-
특정 기능 데이터 외에도 기본
must-gather데이터를 수집하려면--image-stream=openshift/must-gather인수를 추가하십시오. - 사용자 지정 지표 자동 스케일러에 대한 데이터 수집에 대한 자세한 내용은 다음의 추가 리소스 섹션을 참조하십시오.
예를 들어 다음 명령은 기본 클러스터 데이터와 OpenShift Virtualization 관련 정보를 모두 수집합니다.
$ oc adm must-gather \ --image-stream=openshift/must-gather \1 --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel9:v4.19.192 - 1
- 기본 OpenShift Container Platform
must-gather이미지 - 2
- OpenShift Virtualization의 must-gather 이미지
must-gather툴을 추가 인수와 함께 사용하여 클러스터의 OpenShift 로깅 및 Red Hat OpenShift Logging Operator와 관련된 데이터를 수집할 수 있습니다. OpenShift 로깅의 경우 다음 명령을 실행합니다.$ oc adm must-gather --image=$(oc -n openshift-logging get deployment.apps/cluster-logging-operator \ -o jsonpath='{.spec.template.spec.containers[?(@.name == "cluster-logging-operator")].image}')예 5.1. OpenShift 로깅의
must-gather출력 예├── cluster-logging │ ├── clo │ │ ├── cluster-logging-operator-74dd5994f-6ttgt │ │ ├── clusterlogforwarder_cr │ │ ├── cr │ │ ├── csv │ │ ├── deployment │ │ └── logforwarding_cr │ ├── collector │ │ ├── fluentd-2tr64 │ ├── eo │ │ ├── csv │ │ ├── deployment │ │ └── elasticsearch-operator-7dc7d97b9d-jb4r4 │ ├── es │ │ ├── cluster-elasticsearch │ │ │ ├── aliases │ │ │ ├── health │ │ │ ├── indices │ │ │ ├── latest_documents.json │ │ │ ├── nodes │ │ │ ├── nodes_stats.json │ │ │ └── thread_pool │ │ ├── cr │ │ ├── elasticsearch-cdm-lp8l38m0-1-794d6dd989-4jxms │ │ └── logs │ │ ├── elasticsearch-cdm-lp8l38m0-1-794d6dd989-4jxms │ ├── install │ │ ├── co_logs │ │ ├── install_plan │ │ ├── olmo_logs │ │ └── subscription │ └── kibana │ ├── cr │ ├── kibana-9d69668d4-2rkvz ├── cluster-scoped-resources │ └── core │ ├── nodes │ │ ├── ip-10-0-146-180.eu-west-1.compute.internal.yaml │ └── persistentvolumes │ ├── pvc-0a8d65d9-54aa-4c44-9ecc-33d9381e41c1.yaml ├── event-filter.html ├── gather-debug.log └── namespaces ├── openshift-logging │ ├── apps │ │ ├── daemonsets.yaml │ │ ├── deployments.yaml │ │ ├── replicasets.yaml │ │ └── statefulsets.yaml │ ├── batch │ │ ├── cronjobs.yaml │ │ └── jobs.yaml │ ├── core │ │ ├── configmaps.yaml │ │ ├── endpoints.yaml │ │ ├── events │ │ │ ├── elasticsearch-im-app-1596020400-gm6nl.1626341a296c16a1.yaml │ │ │ ├── elasticsearch-im-audit-1596020400-9l9n4.1626341a2af81bbd.yaml │ │ │ ├── elasticsearch-im-infra-1596020400-v98tk.1626341a2d821069.yaml │ │ │ ├── elasticsearch-im-app-1596020400-cc5vc.1626341a3019b238.yaml │ │ │ ├── elasticsearch-im-audit-1596020400-s8d5s.1626341a31f7b315.yaml │ │ │ ├── elasticsearch-im-infra-1596020400-7mgv8.1626341a35ea59ed.yaml │ │ ├── events.yaml │ │ ├── persistentvolumeclaims.yaml │ │ ├── pods.yaml │ │ ├── replicationcontrollers.yaml │ │ ├── secrets.yaml │ │ └── services.yaml │ ├── openshift-logging.yaml │ ├── pods │ │ ├── cluster-logging-operator-74dd5994f-6ttgt │ │ │ ├── cluster-logging-operator │ │ │ │ └── cluster-logging-operator │ │ │ │ └── logs │ │ │ │ ├── current.log │ │ │ │ ├── previous.insecure.log │ │ │ │ └── previous.log │ │ │ └── cluster-logging-operator-74dd5994f-6ttgt.yaml │ │ ├── cluster-logging-operator-registry-6df49d7d4-mxxff │ │ │ ├── cluster-logging-operator-registry │ │ │ │ └── cluster-logging-operator-registry │ │ │ │ └── logs │ │ │ │ ├── current.log │ │ │ │ ├── previous.insecure.log │ │ │ │ └── previous.log │ │ │ ├── cluster-logging-operator-registry-6df49d7d4-mxxff.yaml │ │ │ └── mutate-csv-and-generate-sqlite-db │ │ │ └── mutate-csv-and-generate-sqlite-db │ │ │ └── logs │ │ │ ├── current.log │ │ │ ├── previous.insecure.log │ │ │ └── previous.log │ │ ├── elasticsearch-cdm-lp8l38m0-1-794d6dd989-4jxms │ │ ├── elasticsearch-im-app-1596030300-bpgcx │ │ │ ├── elasticsearch-im-app-1596030300-bpgcx.yaml │ │ │ └── indexmanagement │ │ │ └── indexmanagement │ │ │ └── logs │ │ │ ├── current.log │ │ │ ├── previous.insecure.log │ │ │ └── previous.log │ │ ├── fluentd-2tr64 │ │ │ ├── fluentd │ │ │ │ └── fluentd │ │ │ │ └── logs │ │ │ │ ├── current.log │ │ │ │ ├── previous.insecure.log │ │ │ │ └── previous.log │ │ │ ├── fluentd-2tr64.yaml │ │ │ └── fluentd-init │ │ │ └── fluentd-init │ │ │ └── logs │ │ │ ├── current.log │ │ │ ├── previous.insecure.log │ │ │ └── previous.log │ │ ├── kibana-9d69668d4-2rkvz │ │ │ ├── kibana │ │ │ │ └── kibana │ │ │ │ └── logs │ │ │ │ ├── current.log │ │ │ │ ├── previous.insecure.log │ │ │ │ └── previous.log │ │ │ ├── kibana-9d69668d4-2rkvz.yaml │ │ │ └── kibana-proxy │ │ │ └── kibana-proxy │ │ │ └── logs │ │ │ ├── current.log │ │ │ ├── previous.insecure.log │ │ │ └── previous.log │ └── route.openshift.io │ └── routes.yaml └── openshift-operators-redhat ├── ...
-
특정 기능 데이터 외에도 기본
--image또는--image-stream인수를 하나 이상 사용하여oc adm must-gather명령을 실행합니다. 예를 들어 다음 명령은 기본 클러스터 데이터와 KubeVirt 관련 정보를 모두 수집합니다.$ oc adm must-gather \ --image-stream=openshift/must-gather \1 --image=quay.io/kubevirt/must-gather2 작업 디렉토리에서 생성된
must-gather디렉토리에서 압축 파일을 만듭니다. 고유한 필수 수집 데이터에 대한 날짜와 클러스터 ID를 제공해야 합니다. 클러스터 ID를 찾는 방법에 대한 자세한 내용은 OpenShift 클러스터에서 클러스터 ID 또는 이름을 찾는 방법을 참조하세요. 예를 들어 Linux 운영 체제를 사용하는 컴퓨터에서 다음 명령을 실행합니다.$ tar cvaf must-gather-`date +"%m-%d-%Y-%H-%M-%S"`-<cluster_id>.tar.gz <must_gather_local_dir>1 - 1
must-gather-local.472290403699006248을 실제 디렉터리 이름으로 교체합니다.
- 압축 파일을 Red Hat 고객 포털 의 고객 지원 페이지의 지원 케이스에 첨부합니다.
5.1.4. 네트워크 로그 수집 링크 복사링크가 클립보드에 복사되었습니다!
클러스터의 모든 노드에서 네트워크 로그를 수집할 수 있습니다.
프로세스
-- gather_network_logs를 사용하여oc adm must-gather명령을 실행합니다.$ oc adm must-gather -- gather_network_logs참고기본적으로
must-gather도구는 클러스터의 모든 노드에서 OVNnbdb및sbdb데이터베이스를 수집합니다. OVNnbdb데이터베이스에 대한 OVN-Kubernetes 트랜잭션을 포함하는 추가 로그를 포함하기 위해--gather_network_logs옵션을 추가합니다.작업 디렉토리에서 생성된
must-gather디렉토리에서 압축 파일을 만듭니다. 고유한 필수 수집 데이터에 대한 날짜와 클러스터 ID를 제공해야 합니다. 클러스터 ID를 찾는 방법에 대한 자세한 내용은 OpenShift 클러스터에서 클러스터 ID 또는 이름을 찾는 방법을 참조하세요. 예를 들어 Linux 운영 체제를 사용하는 컴퓨터에서 다음 명령을 실행합니다.$ tar cvaf must-gather-`date +"%m-%d-%Y-%H-%M-%S"`-<cluster_id>.tar.gz <must_gather_local_dir>1 - 1
must-gather-local.472290403699006248을 실제 디렉터리 이름으로 교체합니다.
- 압축 파일을 Red Hat 고객 포털 의 고객 지원 페이지의 지원 케이스에 첨부합니다.
5.1.5. 필수 수집 저장 한도 변경 링크 복사링크가 클립보드에 복사되었습니다!
oc adm must-gather 명령을 사용하여 데이터를 수집할 때, 정보를 저장할 수 있는 기본 최대 용량은 컨테이너 저장 용량의 30%입니다. 30% 한도에 도달하면 컨테이너가 파괴되고 수집 프로세스가 중단됩니다. 이미 수집된 정보는 로컬 저장소에 다운로드됩니다. must-gather 명령을 다시 실행하려면 저장 용량이 더 큰 컨테이너가 필요하거나 최대 볼륨 백분율을 조정해야 합니다.
컨테이너가 저장 한도에 도달하면 다음 예와 비슷한 오류 메시지가 생성됩니다.
출력 예
Disk usage exceeds the volume percentage of 30% for mounted directory. Exiting...
사전 요구 사항
-
cluster-admin역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. -
OpenShift CLI(
oc)가 설치되어 있어야 합니다.
프로세스
volume-percentage플래그와 함께oc adm must-gather명령을 실행합니다. 새로운 값은 100을 초과할 수 없습니다.$ oc adm must-gather --volume-percentage <storage_percentage>