연습 - Kubernetes에서 마이크로 서비스 복원력 증명

완료됨

Kubernetes의 이점 중 하나는 선언적 구성 관리에 대한 지원입니다. 구성 파일에서 정의한 서비스는 어떤 경우에도 유지됩니다.

즉, 오류가 발생하면 Kubernetes가 오류 이전에 실행 중이던 서비스를 자동으로 다시 시작합니다.

storefrontend Pod를 삭제한 다음, Kubernetes가 이를 다시 시작되었는지 확인하여 이 복원력이 작동하는지 살펴보겠습니다.

  1. 먼저 codespace의 터미널에서 kubectl get pods을(를) 실행하고 storefrontend Pod의 이름(임의 문자열 포함)을 확인합니다. 다음은 출력 예제입니다.

    @user-name /workspaces/eShopLite % kubectl get pods
    
    NAME                             READY   STATUS    RESTARTS   AGE
    productsbackend-7445bdb5c9-pnpk6 1/1     Running   0          31m
    storefrontend-5b6cc765c4-hjpx4   1/1     Running   0          63m
    
  2. 이제 kubectl delete 명령을 사용하여 storefrontend Pod를 삭제합니다. 임의의 문자열을 포함하여 Pod의 전체 이름을 지정해야 합니다.

    kubectl delete pod storefrontend-5b6cc765c4-hjpx4
    

    Pod가 삭제되었다는 메시지를 즉시 받게 됩니다.

  3. Kubernetes는 구성 파일에 선언된 시스템 상태를 유지 관리하므로 즉시 다른 Pod 인스턴스를 시작합니다. kubectl get pods를 실행하여 확인할 수 있습니다.

    @user-name /workspaces/eShopLite % kubectl get pods
    
    NAME                             READY   STATUS    RESTARTS   AGE
    productsbackend-7445bdb5c9-pnpk6 1/1     Running   0          31m
    storefrontend-5b6cc765c4-vwmv8   1/1     Running   0          7s
    

    storefrontend 이름 뒤에 오는 임의 문자열이 변경되어 Pod가 새 인스턴스임을 나타냅니다. 또한 AGE 값도 상당히 작습니다.

이 연습에서는 오류가 발생하더라도 Kubernetes가 자동으로 선언된 시스템 상태를 유지 관리하는 방법을 배웠습니다.

지식 점검

1.

Kubernetes가 실패할 때 Pod를 다시 시작하는 이유는 무엇인가요?