7장. 클러스터 작업

7.1. OpenShift Container Platform 클러스터에서 시스템 이벤트 정보 보기

OpenShift Container Platform의 이벤트는 OpenShift Container Platform 클러스터의 API 오브젝트에 발생하는 이벤트를 기반으로 모델링됩니다.

7.1.1. 이벤트 이해

OpenShift Container Platform은 이벤트를 통해 리소스와 관계없이 실제 이벤트에 대한 정보를 기록할 수 있습니다. 또한 개발자와 관리자는 통합된 방식으로 시스템 구성 요소에 대한 정보를 사용할 수 있습니다.

7.1.2. CLI를 사용하여 이벤트 보기

CLI를 사용하여 지정된 프로젝트의 이벤트 목록을 가져올 수 있습니다.

프로세스

  • 프로젝트의 이벤트를 보려면 다음 명령을 사용합니다.

    $ oc get events [-n <project>] 1
    1
    프로젝트 이름입니다.

    예를 들면 다음과 같습니다.

    $ oc get events -n openshift-config

    출력 예

    LAST SEEN   TYPE      REASON                   OBJECT                      MESSAGE
    97m         Normal    Scheduled                pod/dapi-env-test-pod       Successfully assigned openshift-config/dapi-env-test-pod to ip-10-0-171-202.ec2.internal
    97m         Normal    Pulling                  pod/dapi-env-test-pod       pulling image "gcr.io/google_containers/busybox"
    97m         Normal    Pulled                   pod/dapi-env-test-pod       Successfully pulled image "gcr.io/google_containers/busybox"
    97m         Normal    Created                  pod/dapi-env-test-pod       Created container
    9m5s        Warning   FailedCreatePodSandBox   pod/dapi-volume-test-pod    Failed create pod sandbox: rpc error: code = Unknown desc = failed to create pod network sandbox k8s_dapi-volume-test-pod_openshift-config_6bc60c1f-452e-11e9-9140-0eec59c23068_0(748c7a40db3d08c07fb4f9eba774bd5effe5f0d5090a242432a73eee66ba9e22): Multus: Err adding pod to network "openshift-sdn": cannot set "openshift-sdn" ifname to "eth0": no netns: failed to Statfs "/proc/33366/ns/net": no such file or directory
    8m31s       Normal    Scheduled                pod/dapi-volume-test-pod    Successfully assigned openshift-config/dapi-volume-test-pod to ip-10-0-171-202.ec2.internal

  • OpenShift Container Platform 콘솔에서 프로젝트의 이벤트를 보려면 다음을 수행합니다.

    1. OpenShift Container Platform 콘솔을 시작합니다.
    2. 이벤트를 클릭하고 프로젝트를 선택합니다.
    3. 이벤트를 표시할 리소스로 이동합니다. 예를 들면 다음과 같습니다. 프로젝트 → <project-name> → <resource-name>.

      Pod 및 배포와 같이 많은 오브젝트에는 자체 이벤트 탭도 있으며 해당 오브젝트와 관련된 이벤트가 표시됩니다.

7.1.3. 이벤트 목록

이 섹션에서는 OpenShift Container Platform의 이벤트에 대해 설명합니다.

표 7.1. 구성 이벤트

이름설명

FailedValidation

Pod 구성 검증에 실패했습니다.

표 7.2. 컨테이너 이벤트

이름설명

BackOff

백오프로 컨테이너를 재시작하지 못했습니다.

Created

컨테이너가 생성되었습니다.

Failed

가져오기/생성/시작이 실패했습니다.

Killing

컨테이너를 종료합니다.

Started

컨테이너가 시작되었습니다.

Preempting

다른 Pod를 선점합니다.

ExceededGracePeriod

컨테이너 런타임이 지정된 유예 기간 내에 Pod를 중지하지 않았습니다.

표 7.3. 상태 이벤트

이름설명

Unhealthy

컨테이너 상태가 비정상입니다.

표 7.4. 이미지 이벤트

이름설명

BackOff

Ctr Start를 백오프하고 이미지를 가져옵니다.

ErrImageNeverPull

이미지의 NeverPull Policy를 위반했습니다.

Failed

이미지를 가져오지 못했습니다.

InspectFailed

이미지를 검사하지 못했습니다.

Pulled

이미지를 가져왔거나 컨테이너 이미지가 머신에 이미 있습니다.

Pulling

이미지를 가져오는 중입니다.

표 7.5. 이미지 관리자 이벤트

이름설명

FreeDiskSpaceFailed

디스크 공간을 비우지 못했습니다.

InvalidDiskCapacity

디스크 용량이 유효하지 않습니다.

표 7.6. 노드 이벤트

이름설명

FailedMount

볼륨을 마운트하지 못했습니다.

HostNetworkNotSupported

호스트 네트워크가 지원되지 않습니다.

HostPortConflict

호스트/포트가 충돌합니다.

KubeletSetupFailed

kubelet 설정에 실패했습니다.

NilShaper

정의되지 않은 쉐이퍼입니다.

NodeNotReady

노드가 준비되지 않았습니다.

NodeNotSchedulable

노드를 예약할 수 없습니다.

NodeReady

노드가 준비되었습니다.

NodeSchedulable

노드를 예약할 수 있습니다.

NodeSelectorMismatching

노드 선택기가 일치하지 않습니다.

OutOfDisk

디스크가 없습니다.

Rebooted

노드가 재부팅되었습니다.

Starting

kubelet을 시작합니다.

FailedAttachVolume

볼륨을 연결할 수 없습니다.

FailedDetachVolume

볼륨을 분리할 수 없습니다.

VolumeResizeFailed

볼륨을 확장/축소할 수 없습니다.

VolumeResizeSuccessful

볼륨을 확장/축소했습니다.

FileSystemResizeFailed

파일 시스템을 확장/축소하지 못했습니다.

FileSystemResizeSuccessful

파일 시스템을 확장/축소했습니다.

FailedUnMount

볼륨을 마운트 해제하지 못했습니다.

FailedMapVolume

볼륨을 매핑하지 못했습니다.

FailedUnmapDevice

장치를 매핑 해제하지 못했습니다.

AlreadyMountedVolume

볼륨이 이미 마운트되어 있습니다.

SuccessfulDetachVolume

볼륨이 분리되었습니다.

SuccessfulMountVolume

볼륨을 마운트했습니다.

SuccessfulUnMountVolume

볼륨을 마운트 해제했습니다.

ContainerGCFailed

컨테이너 가비지 컬렉션에 실패했습니다.

ImageGCFailed

이미지 가비지 컬렉션에 실패했습니다.

FailedNodeAllocatableEnforcement

시스템 예약 Cgroup 제한을 적용하지 못했습니다.

NodeAllocatableEnforced

시스템 예약 Cgroup 제한을 적용했습니다.

UnsupportedMountOption

지원되지 않는 마운트 옵션입니다.

SandboxChanged

Pod 샌드박스가 변경되었습니다.

FailedCreatePodSandBox

Pod 샌드박스를 생성하지 못했습니다.

FailedPodSandBoxStatus

실패한 Pod 샌드박스 상태입니다.

표 7.7. Pod 작업자 이벤트

이름설명

FailedSync

Pod 동기화에 실패했습니다.

표 7.8. 시스템 이벤트

이름설명

SystemOOM

클러스터에 OOM(메모리 부족) 상황이 있습니다.

표 7.9. Pod 이벤트

이름설명

FailedKillPod

Pod를 중지하지 못했습니다.

FailedCreatePodContainer

Pod 컨테이너를 생성하지 못했습니다.

Failed

Pod 데이터 디렉터리를 생성하지 못했습니다.

NetworkNotReady

네트워크가 준비되지 않았습니다.

FailedCreate

생성하는 동안 오류가 발생했습니다(<error-msg>).

SuccessfulCreate

Pod가 생성되었습니다(<pod-name>).

FailedDelete

삭제하는 동안 오류가 발생했습니다(<error-msg>).

SuccessfulDelete

Pod가 삭제되었습니다(<pod-id>).

표 7.10. 수평 Pod 자동 스케일러 이벤트

이름설명

SelectorRequired

선택기가 필요합니다.

InvalidSelector

선택기를 해당 내부 선택기 오브젝트로 변환할 수 없습니다.

FailedGetObjectMetric

HPA에서 복제본 수를 계산할 수 없었습니다.

InvalidMetricSourceType

알 수 없는 메트릭 소스 유형입니다.

ValidMetricFound

HPA에서 복제본 수를 성공적으로 계산할 수 있었습니다.

FailedConvertHPA

지정된 HPA를 변환하지 못했습니다.

FailedGetScale

HPA 컨트롤러에서 대상의 현재 규모를 가져올 수 없었습니다.

SucceededGetScale

HPA 컨트롤러에서 대상의 현재 규모를 가져올 수 있었습니다.

FailedComputeMetricsReplicas

나열된 메트릭을 기반으로 원하는 복제본 수를 계산하지 못했습니다.

FailedRescale

새 크기: <size>, 이유: <msg>, 오류: <error-msg>

SuccessfulRescale

새 크기: <size>, 이유: <msg>

FailedUpdateStatus

상태를 업데이트하지 못했습니다.

표 7.11. 네트워크 이벤트(openshift-sdn)

이름설명

Starting

OpenShift-SDN을 시작합니다.

NetworkFailed

Pod의 네트워크 인터페이스가 손실되어 Pod가 중지됩니다.

표 7.12. 네트워크 이벤트(kube-proxy)

이름설명

NeedPods

서비스 포트 <serviceName>:<port>에 Pod가 필요합니다.

표 7.13. 볼륨 이벤트

이름설명

FailedBinding

사용 가능한 영구 볼륨이 없으며 스토리지 클래스가 설정되지 않았습니다.

VolumeMismatch

볼륨 크기 또는 클래스가 클레임에서 요청한 것과 다릅니다.

VolumeFailedRecycle

재생기 Pod를 생성하는 동안 오류가 발생했습니다.

VolumeRecycled

볼륨이 재생될 때 발생합니다.

RecyclerPod

Pod가 재생될 때 발생합니다.

VolumeDelete

볼륨이 삭제될 때 발생합니다.

VolumeFailedDelete

볼륨을 삭제할 때 오류가 발생했습니다.

ExternalProvisioning

클레임에 대한 볼륨이 수동으로 또는 외부 소프트웨어를 통해 프로비저닝되는 경우 발생합니다.

ProvisioningFailed

볼륨을 프로비저닝하지 못했습니다.

ProvisioningCleanupFailed

프로비저닝된 볼륨을 정리하는 동안 오류가 발생했습니다.

ProvisioningSucceeded

볼륨이 성공적으로 프로비저닝될 때 발생합니다.

WaitForFirstConsumer

Pod가 예약될 때까지 바인딩이 지연됩니다.

표 7.14. 라이프사이클 후크

이름설명

FailedPostStartHook

핸들러에서 Pod를 시작하지 못했습니다.

FailedPreStopHook

핸들러에서 사전 정지하지 못했습니다.

UnfinishedPreStopHook

사전 정지 후크가 완료되지 않았습니다.

표 7.15. 배포

이름설명

DeploymentCancellationFailed

배포를 취소하지 못했습니다.

DeploymentCancelled

배포가 취소되었습니다.

DeploymentCreated

새 복제 컨트롤러가 생성되었습니다.

IngressIPRangeFull

서비스에 할당할 수 있는 Ingress IP가 없습니다.

표 7.16. 스케줄러 이벤트

이름설명

FailedScheduling

Pod(<pod-namespace>/<pod-name>)를 예약하지 못했습니다. 이 이벤트는 다음과 같은 여러 가지 이유로 발생합니다. AssumePodVolumes 실패, 바인딩 거부 등.

Preempted

<node-name> 노드의 <preemptor-namespace>/<preemptor-name>에 의해 발생합니다.

Scheduled

<pod-name>을(를) <node-name>에 할당했습니다.

표 7.17. 데몬 세트 이벤트

이름설명

SelectingAll

이 데몬 세트는 모든 Pod를 선택합니다. 비어 있지 않은 선택기가 필요합니다.

FailedPlacement

<node-name>에 Pod를 배치하지 못했습니다.

FailedDaemonPod

<node-name> 노드에 실패한 데몬 Pod <pod-name>이(가) 있어 종료하려고 합니다.

표 7.18. LoadBalancer 서비스 이벤트

이름설명

CreatingLoadBalancerFailed

로드 밸런서 생성 중 오류가 발생했습니다.

DeletingLoadBalancer

로드 밸런서를 삭제하는 중입니다.

EnsuringLoadBalancer

로드 밸런서를 확인하는 중입니다.

EnsuredLoadBalancer

로드 밸런서를 확인했습니다.

UnAvailableLoadBalancer

LoadBalancer 서비스에 사용 가능한 노드가 없습니다.

LoadBalancerSourceRanges

LoadBalancerSourceRanges를 나열합니다. 예를 들면 <old-source-range> → <new-source-range>입니다.

LoadbalancerIP

새 IP 주소를 나열합니다. 예를 들면 <old-ip> → <new-ip>입니다.

ExternalIP

외부 IP 주소를 나열합니다. 예를 들면 Added: <external-ip>입니다.

UID

새 UID를 나열합니다. 예를 들면 <old-service-uid> → <new-service-uid>입니다.

ExternalTrafficPolicy

ExternalTrafficPolicy를 나열합니다. 예를 들면 <old-policy> → <new-policy>입니다.

HealthCheckNodePort

HealthCheckNodePort를 나열합니다. 예를 들면 <old-node-port> → <new-node-port>입니다.

UpdatedLoadBalancer

새 호스트로 로드 밸런서를 업데이트했습니다.

LoadBalancerUpdateFailed

새 호스트로 로드 밸런서를 업데이트하는 동안 오류가 발생했습니다.

DeletingLoadBalancer

로드 밸런서를 삭제하는 중입니다.

DeletingLoadBalancerFailed

로드 밸런서를 삭제하는 동안 오류가 발생했습니다.

DeletedLoadBalancer

로드 밸런서를 삭제했습니다.