33.2. 프로브를 사용한 컨테이너 상태 점검


프로브는 실행 중인 컨테이너에서 진단을 주기적으로 수행하는 Kubernetes 작업입니다. 현재 두 가지 유형의 프로브가 존재하며 각각 다른 목적을 제공합니다.

활성 프로브

활성 상태 프로브는 구성된 컨테이너가 여전히 실행 중인지 확인합니다. 활성 상태 프로브가 실패하면 kubelet이 컨테이너를 종료하며 재시작 정책이 적용됩니다. 포드 구성의 template.spec.containers.livenessprobe 스탠자를 구성하여 활성 상태 점검을 설정합니다.

준비 프로브

준비 상태 프로브는 컨테이너를 서비스할 준비가 되었는지 확인합니다. 준비 상태 프로브가 컨테이너에 실패하면 끝점 컨트롤러는 컨테이너에 모든 서비스의 끝점에서 IP 주소가 제거되었는지 확인합니다. 준비 상태 프로브는 컨테이너가 실행 중이더라도 프록시에서 트래픽을 수신하지 않아도 끝점 컨트롤러에 신호를 보낼 수 있습니다. 포드 구성의 template.spec.containers.readinessprobe 스탠자를 구성하여 준비 상태 점검을 설정합니다.

프로브의 정확한 타이밍은 두 필드에 의해 제어되며 이는 모두 초 단위로 표시됩니다.

필드설명

initialDelaySeconds

컨테이너가 프로브를 시작하기 시작한 후 대기하는 시간입니다.

timeoutSeconds

프로브가 완료될 때까지 대기하는 시간(기본값: 1). 이 시간이 초과되면 OpenShift Container Platform에서 프로브가 실패한 것으로 간주합니다.

두 프로브 모두 다음 세 가지 방법으로 구성할 수 있습니다.

HTTP 검사

kubelet은 웹 후크를 사용하여 컨테이너의 상태를 확인합니다. HTTP 응답 코드가 200에서 399 사이인 경우 검사가 성공한 것으로 간주됩니다. 다음은 HTTP 검사 방법을 사용한 준비 상태 점검의 예입니다.

예 33.1. 준비 상태 HTTP 확인

...
readinessProbe:
  httpGet:
    path: /healthz
    port: 8080
  initialDelaySeconds: 15
  timeoutSeconds: 1
...

HTTP 확인은 완전히 초기화되었을 때 HTTP 상태 코드를 반환하는 애플리케이션에 적합합니다.

컨테이너 실행 확인

kubelet은 컨테이너 내에서 명령을 실행합니다. 상태 0으로 검사를 종료하는 것은 성공한 것으로 간주됩니다. 다음은 컨테이너 실행 방법을 사용한 활성 점검의 예입니다.

예 33.2. 활성 상태의 컨테이너 실행 확인

...
livenessProbe:
  exec:
    command:
    - cat
    - /tmp/health
  initialDelaySeconds: 15
...
참고

timeoutSeconds 매개변수는 컨테이너 실행 확인에 대한 준비 상태 및 활성 상태 프로브에 영향을 미치지 않습니다.

참고

timeoutSeconds 매개변수는 컨테이너 실행 확인에 대한 준비 상태 및 활성 상태 프로브에 영향을 미치지 않습니다. OpenShift Container Platform은 컨테이너에 대한 exec 호출에서 시간 초과를 시간 초과할 수 없으므로 프로브 자체 내에서 타임아웃을 구현할 수 있습니다. 프로브에서 타임아웃을 구현하는 한 가지 방법은 timeout 매개변수를 사용하여 활성 상태 또는 준비 상태 프로브를 실행하는 것입니다.

[...]
       livenessProbe:
        exec:
          command:
            - /bin/bash
            - '-c'
            - timeout 60 /opt/eap/bin/livenessProbe.sh 1
        timeoutSeconds: 1
        periodSeconds: 10
        successThreshold: 1
        failureThreshold: 3
[...]
1
프로브 스크립트의 시간 초과 값 및 경로입니다.

TCP 소켓 확인

kubelet은 컨테이너에 소켓을 열려고 합니다. 컨테이너는 검사에서 연결을 설정할 수 있는 경우에만 정상으로 간주됩니다. 다음은 TCP 소켓 검사 방법을 사용한 활성 점검의 예입니다.

예 33.3. 활성 상태의 TCP 소켓 확인

...
livenessProbe:
  tcpSocket:
    port: 8080
  initialDelaySeconds: 15
  timeoutSeconds: 1
...

TCP 소켓 검사는 초기화가 완료될 때까지 수신 대기를 시작하지 않는 애플리케이션에 적합합니다.

상태 점검에 대한 자세한 내용은 Kubernetes 설명서 를 참조하십시오.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.