📂
Amazon EKS
  • Amazon EKS
  • 워크스페이스 생성하기
    • Cloud9 IDE 환경 구성
    • IAM 역할 생성
    • SSH & CMK Key 생성하기
  • EKS 클러스터 구축
    • EKS 클러스터 만들기
  • 쿠버네티스 대시보드 배포
    • Kubernetes 공식 대시보드 배포
  • 마이크로서비스 배포
    • 예제 애플리케이션 배포
    • 서비스 스케일(Scaling)
    • 애플리케이션 정리하기
  • 애플리케이션 배포 - Helm
    • HELM 설치
    • Helm으로 Nginx 배포
    • Helm을 사용하여 마이크로서비스 배포
    • 정리하기
  • 리소스 관리 - POD 배치
    • NodeSelector
    • Affinity and Anti-affinity
    • 더 실용적인 사용 사례
    • 정리하기
  • 리소스 관리 - Health Checks
    • Liveness 프로브 구성
    • Readiness 프로브 구성
    • 정리하기
  • 리소스 관리 - AutoScaling
    • HPA 구성하기
    • CA 구성하기
    • 정리하기
  • 네트워킹 - 서비스 노출
    • 서비스와 애플리케이션 연결
    • 서비스에 접근하기
    • 서비스 노출
    • Ingress
    • Ingress Controller
    • 정리하기
  • 네트워크 - Calico 정책
    • Calico 설치하기
    • Stars Policy Demo
    • 정리하기
  • Updating 권한설정 - RBAC
    • 테스트 POD 설치
    • 사용자 생성 및 맵핑
    • 역할과 바인딩
    • 정리하기
  • Updating 권한설정 - IAM 그룹
    • IAM Role, Group & User 생성하기
    • RBAC 설정하기
    • EKS 엑세스 테스트
    • 정리하기
  • Updating 권한설정 - Service account
    • OIDC 자격 증명 공급자 생성하기
    • IAM 역할 생성 및 지정
    • 샘플 POD 배포
    • 정리하기
  • Updating - 네트워크 - POD Security Group
    • SG 생성하기
    • RDS 생성하기
    • CNI 구성하기
    • SG 정책
    • Pod 배포하기
    • 정리하기
  • Updating - 모니터링 - Prometheus and Grafana
    • Prometheus 배포하기
    • Grafana 배포하기
    • 정리하기(Optional)
  • Updating 모니터링 - X-Ray
    • X-Ray DaemonSet 배포하기
    • 샘플 마이크로서비스 배포
    • X-Ray console 확인
    • 정리하기(Optional)
  • Updating 모니터링 - Container Insights
    • 사전 준비
    • Container Insights 구성하기
    • 부하 테스트
    • Container Insights 확인하기
    • 정리하기(Optional)
  • Updating CD - Gitops with Flux
    • 사전 준비
    • Codepipeline
    • EKS에 배포
    • 정리하기
  • Updating Argo Rollouts
  • Updating Service Mesh - AWS App Mesh
    • Fargate 및 OBSERVABILITY 구성
    • Product Catalog App 배포
    • APP MESH 설치
    • Porting to APP MESH
    • Virtual Gateway 구성
    • Canary
    • Observability
  • Updating 버전 업그레이드 - EKS Cluster
    • Upgrade EKS control Plane
    • Upgrade EKS CORE ADD-ONs
    • Upgrade Managed Node Group
Powered by GitBook
On this page
  • 1. 프로브 구성
  • 2. 실패 확인하기

Was this helpful?

  1. 리소스 관리 - Health Checks

Readiness 프로브 구성

1. 프로브 구성

다음 코드 블록을 실행하여 ~/environment/healthchecks/readiness-deployment.yaml을 생성합니다. readinessProbe 정의는 Linux 명령을 상태 검사로 구성하는 방법을 설명합니다. Readiness 프로브를 구성하기 위해 빈 파일 /tmp/healthy를 생성하고 동일한 파일을 사용하여 kubelet이 정상 파드로만 배포를 업데이트 하는 것에 도움이 되는지 이해 합니다.

cat <<EoF > ~/environment/healthchecks/readiness-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: readiness-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: readiness-deployment
  template:
    metadata:
      labels:
        app: readiness-deployment
    spec:
      containers:
      - name: readiness-deployment
        image: alpine
        command: ["sh", "-c", "touch /tmp/healthy && sleep 86400"]
        readinessProbe:
          exec:
            command:
            - cat
            - /tmp/healthy
          initialDelaySeconds: 5
          periodSeconds: 3
EoF

이제 readiness 상태 프로브를 테스트 하기 위한 배포를 수행합니다.

kubectl apply -f ~/environment/healthchecks/readiness-deployment.yaml

위의 명령은 처음에 설명 된대로 3개의 복제본과 준비 상태 프로브를 사용하여 배포를 수행합니다.

kubectl get pods -l app=readiness-deployment

출력은 다음과 유사 합니다.

서비스가 이 배포를 가리킬 때 트래픽 처리가 가능한 모든 복제본을 사용할 수 있는지도 확인 합니다.

kubectl describe deployment readiness-deployment | grep Replicas:

2. 실패 확인하기

위의 3개 파드 중 하나를 선택하고 아래와 같이 명령을 실행 하여 readiness 프로브를 실패하게 만드는 /tmp/healthy 파일을 삭제합니다.

kubectl exec -it <YOUR-READINESS-POD-NAME> -- rm /tmp/healthy

예제 클러스터에서 readiness-deployment-644f56898d-29zxr를 선택 했습니다. /tmp/healthy 파일이 삭제 되었습니다. Readiness검사를 통과 하려면 이 파일이 있어야 합니다.

kubectl get pods -l app=readiness-deployment

출력은 다음과 같습니다.

위 배포에서 트래픽은 첫 번째 파드로 라우팅 되지 않습니다. 준비 열 파드에 대한 readiness 프로브가 통과하지 못했으므로 준비되지 않음으로 표시 되었음을 확인 합니다.

이제 서비스가 이 배포를 가리킬 때 트래픽을 제공하는 데 사용 할 수 있는 복제본을 확인합니다.

kubectl describe deployment readiness-deployment | grep Replicas:

출력은 다음과 같습니다.

파드에 대한 readiness 프로브가 실패하면 엔드포인트 컨트롤러는 파드와 일치하는 모든 서비스의 엔드포인트 목록에서 파드를 제거 합니다.

파드를 복원하려면 파드 이름으로 아래 명령을 실행하여 /tmp/healthy 파일을 다시 만듭니다. 파드가 프로브를 통과하면 준비 됨으로 표시되고 트래픽 수신을 다시 시작합니다.

kubectl exec -it <YOUR-READINESS-POD-NAME> -- touch /tmp/healthy

아래 명령어로 파드가 복원되었는지 확인합니다.

kubectl get pods -l app=readiness-deployment
PreviousLiveness 프로브 구성Next정리하기

Last updated 3 years ago

Was this helpful?