웹사이트 검색

Kubernetes 클러스터에서 첫 번째 배포 만들기


이 기사에서는 Kubernetes 클러스터에서 첫 번째 배포를 생성하는 방법을 살펴봅니다. 예를 들어 Nginx용 배포를 생성합니다.

실행 중인 Kubernetes 클러스터가 있으면 그 위에 컨테이너화된 애플리케이션을 배포할 수 있습니다. 이를 달성하기 위해 Kubernetes 배포 구성을 만들 수 있습니다.

배포는 Pod 및 ReplicaSet에 대한 선언적 업데이트를 제공합니다. 우리는 배포에서 원하는 상태를 설명하고 배포 컨트롤러는 제어된 속도로 실제 상태를 원하는 상태로 변경합니다.

\kubectl\ Kubernetes 명령줄 인터페이스를 사용하여 배포를 만들고 관리할 수 있습니다. Kubectl은 Kubernetes API를 사용하여 클러스터와 상호 작용합니다.

배포 수명 주기에는 세 단계가 있습니다.

<올 스타일=텍스트-정렬:왼쪽>

  • 진행 중: Kubernetes는 배포가 새 ReplicaSet를 생성하거나 배포가 최신 ReplicaSet를 확장하거나 이전 ReplicaSet 또는 새 포드를 축소할 때 배포를 진행 중으로 표시합니다. 준비 또는 사용 가능
  • 완료: Kubernetes는 배포와 관련된 모든 복제본이 업데이트되고 사용 가능하며 배포에 대한 이전 복제본이 실행되지 않을 때 배포를 완료된 것으로 표시합니다. .
  • 실패: 할당량 부족, 준비 프로브 실패, 이미지 가져오기 오류 또는 권한 부족으로 인해 발생할 수 있습니다.

    전제 조건

    1. AWS 계정(없으면 새로 생성)
    2. Kubernetes 클러스터

    참고: AWS EC2 인스턴스에서 시도하지 않으려는 경우 VM을 사용하여 클러스터를 생성할 수도 있습니다.

    우리가 할 일

    1. Nginx용 Kubernetes 배포를 생성합니다.

    Nginx용 Kubernetes 배포 생성

    첫 번째 배포를 만들려면 개체/배포 파일을 만들기 위한 새 디렉터리를 만들면 됩니다. 다음 명령어를 사용하여 시스템에 새 디렉터리를 만듭니다.

    mkdir my-first-deployment
    cd my-first-deployment/

    계속하기 전에 클러스터의 상태를 확인하십시오.

    클러스터에서 사용 가능한 노드를 확인하고 \kubectl\ 버전을 확인하려면 다음 명령을 사용하세요.

    sudo kubectl version
    sudo kubectl get nodes

    클러스터에서 노드를 사용할 수 있으면 배포를 만들 준비가 된 것입니다.

    다음 코드 블록으로 \my-first-deployment.yml\ 파일을 만듭니다.

    vim my-first-deployment.yml

    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
      labels:
        app: nginx
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:1.7.9
            ports:
            - containerPort: 80

    여기,

    • apiVersion: APIVersion은 이 개체 표현의 버전 스키마를 정의합니다.
    • 종류: 배포, 서비스, Configmap 등과 같이 만들려는 개체의 종류입니다.
    • 이름: 이름은 네임스페이스 내에서 고유해야 합니다.
    • 라벨: 개체를 구성하고 분류하는 데 사용할 수 있는 문자열 키 및 값의 맵
    • 사양: 원하는 배포 동작의 사양입니다.
    • replicas: 원하는 포드 수입니다.
    • 선택기: 광고 모음의 라벨 선택기입니다. 이로 인해 포드가 선택된 기존 ReplicaSet는 이 배포의 영향을 받습니다. 포드 템플릿의 레이블과 일치해야 합니다.

    이제 다음 명령을 사용하여 배포를 만들 준비가 되었습니다.

    sudo kubectl apply -f my-first-deployment.yml
    sudo kubectl  get deployments

    위의 스크린샷에서 사용할 수 있는 두 개의 포드로 배포가 생성되었음을 확인할 수 있습니다.

    다음 명령어를 사용하여 pod의 세부정보를 가져올 수 있습니다.

    sudo kubectl get pods

    배포에 대해 자세히 알아보려면 이 \kubectl describe\ 명령을 사용하여 배포에 대한 전체 세부정보를 얻을 수 있습니다.

    sudo kubectl get deployments
    sudo kubectl describe  deployments nginx-deployment

    배포가 더 이상 필요하지 않으면 \kubectl delete command\를 사용하여 삭제할 수 있습니다.

    sudo kubectl  get deployments
    sudo kubectl delete deployments nginx-deployment
    sudo kubectl  get deployments

    위의 스크린샷에서 배포가 삭제된 후 더 이상 사용할 수 없음을 확인할 수 있습니다.

    배포를 삭제하면 포드도 삭제됩니다.

    다음 명령을 사용하여 포드의 가용성을 확인할 수 있습니다.

    sudo  kubectl  get pods

    위 스크린샷에서 배포를 삭제한 후 포드가 삭제되어 사용할 수 없는 것을 확인할 수 있습니다.

    결론

    이 기사에서는 Kubernetes에서 첫 번째 Nginx 배포를 생성하는 단계를 살펴보았습니다. 또한 배포와 관련된 세부 정보를 추출하는 방법도 확인했습니다. 이와 함께 배포를 삭제하는 명령을 살펴보았습니다.