웹사이트 검색

Kubernetes에서 배포를 생성하는 방법


이 페이지에서

  1. 전제 조건
  2. 우리가 할 일\n
  3. 배포 만들기
  4. 결론

배포는 동일한 Pod 집합을 나타냅니다. 배포는 애플리케이션의 여러 사본을 실행합니다. 실패한 인스턴스를 자동으로 교체합니다. 하나 이상의 애플리케이션 인스턴스가 항상 실행되도록 하는 데 도움이 됩니다. 배포는 Kubernetes 배포 컨트롤러에서 관리합니다. 배포는 포드 사양이 포함된 포드 템플릿을 사용합니다.

Kubernetes 배포는 애플리케이션에 선언적 업데이트를 제공하는 Kubernetes의 리소스 개체입니다.

배포 사양에 대해 자세히 알아보려면 Kubernetes API 문서를 참조하세요.

이 기사에서는 Kubernetes에서 배포를 생성하고 작업을 수행하는 방법을 배웁니다.

전제 조건

작업자 노드가 1개 이상 있는 Kubernetes 클러스터.
Kubernetes 클러스터 생성 방법을 알아보려면 여기를 클릭하세요. 이 안내서는 AWS Ubuntu 18l04 EC2 인스턴스에서 1개의 마스터와 2개의 노드가 있는 Kubernetes 클러스터를 생성하는 데 도움이 됩니다.

우리가 할 일

배포 만들기

배포 만들기

파일을 만들고 파일에 다음 배포 정의를 추가합니다.

vim my-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: httpd-frontend
  name: httpd-frontend
spec:
  replicas: 1
  selector:
    matchLabels:
      app: httpd-frontend
  template:
    metadata:
      labels:
        app: httpd-frontend
    spec:
      containers:
      - image: httpd:2.4-alpine
        name: httpd



이 예에서:

  • httpd-frontend라는 배포가 생성되며 metadata: name 필드로 표시됩니다.\n
  • 배포는 replicas 필드로 표시된 Pod의 복제본 1개를 생성합니다.\n
  • Pod 템플릿 또는 spec: template 필드는 Pod가 app: httpd-frontend< 라벨이 지정되었음을 나타냅니다. /코드>.
  • Pod 템플릿 사양 또는 template: spec 필드는 Pod가 버전 2.4-alpine에서 httpd: 이미지를 실행하는 하나의 컨테이너인 httpd를 실행함을 나타냅니다.\n

다음 명령을 사용하여 배포를 만듭니다.

kubectl create -f my-deployment.yaml

배포를 생성하면 다음 명령을 사용하여 세부 정보를 가져올 수 있습니다.

kubectl get deployment | grep httpd-frontend

배포는 다음 명령을 사용하여 복제본 세트를 생성했습니다.

kubectl get replicaset | grep httpd-frontend

레플리카 세트로 생성된 포드는 지정된 이름과 일치하는 포드를 나열하는 다음 명령어를 사용하여 나열할 수 있습니다.


kubectl get pods | grep httpd-frontend

이제 기존 Pod가 실패하면 Pod를 삭제하여 Pod 자동 생성을 테스트할 수 있습니다.

기존 Pod를 삭제하려면 다음 명령을 사용합니다.


kubectl get pods | grep httpd-frontend
kubectl delete pod httpd-frontend-74fd6fd8cd-8nj2s
kubectl get pods | grep httpd-frontend

위의 스크린샷에서 기존 pod를 삭제한 후 pod가 생성된 것을 확인할 수 있습니다.

이제 복제본 세트가 삭제되더라도 배포에서 복제본 세트를 생성합니다.

이를 테스트하려면 다음 명령을 사용하여 복제 세트를 삭제하십시오.


kubectl get replicaset | grep httpd-frontend
kubectl delete replicaset httpd-frontend-74fd6fd8cd
kubectl get replicaset | grep httpd-frontend

위의 스크린샷에서 레플리카 세트를 삭제한 후에도 생성된 것을 볼 수 있습니다.

포드의 정보를 조금 더 보려면 다음과 같이 명령어에 "-o wide"를 사용할 수 있습니다.

kubectl get pods | grep httpd-frontend
kubectl get pods -o wide | grep httpd-frontend

Pod의 전체 정보를 얻으려면 다음 명령을 사용하여 설명할 수 있습니다.

kubectl describe pod httpd-frontend

이제 배포를 사용하여 애플리케이션을 더 이상 배포할 필요가 없으면 배포를 삭제하여 삭제할 수 있습니다.

다음 명령을 사용하여 배포를 삭제합니다.

kubectl get deployment | grep httpd-frontend
kubectl delete deployment httpd-frontend
kubectl get deployment | grep httpd-frontend

위의 스크린샷에서 배포를 삭제한 후 생성되지 않았음을 확인할 수 있습니다. 하지만 배포의 일부로 생성된 포드 또는 복제 세트를 삭제하면 생성됩니다.

결론

이 문서에서는 배포를 만드는 방법을 알아보고 Pod, Replicaset 및 배포에서 삭제 작업을 시도했습니다.