웹사이트 검색

Kubernetes 클러스터에 첫 번째 포드를 배포하는 방법


이 기사에서는 Kubernetes 클러스터에서 첫 번째 포드를 생성하는 방법을 살펴봅니다. Nginx용 포드를 생성하는 단계를 살펴보겠습니다.

포드는 Kubernetes 애플리케이션의 기본 실행 단위입니다. 동일한 호스트에 함께 배포되는 컨테이너 모음입니다. Kubernetes 클러스터의 포드는 두 가지 방법으로 사용할 수 있습니다.

  1. 단일 컨테이너를 실행하는 Pod: Pod를 사용하는 가장 일반적인 방법입니다. Kubernetes는 컨테이너를 직접 관리하는 대신 포드를 관리합니다.
  2. 함께 작동해야 하는 여러 컨테이너를 실행하는 포드: 이 모델에서 포드는 리소스를 공유하기 위해 밀접하게 결합된 여러 컨테이너를 가질 수 있습니다.

Pod에 여러 컨테이너가 포함될 수 있다고 위에서 설명한 것처럼 가능한 경우 항상 단일 컨테이너를 사용하는 것이 좋습니다. 단일 포드에서 여러 컨테이너를 그룹화하는 것은 비교적 고급 사용 사례입니다. 컨테이너가 밀접하게 결합된 특정 인스턴스에서만 이 패턴을 사용해야 합니다.

단일 컨테이너를 배포하는 경우 일반적으로 \pod\라는 단어를 \container\로 바꿀 수 있습니다. 포드는 구성원 간의 데이터 공유 및 통신을 가능하게 합니다.

포드는 항상 노드에서 실행됩니다. 노드는 Kubernetes의 작업자 시스템이며 클러스터에 따라 가상 또는 물리적 시스템일 수 있습니다. 각 노드는 마스터가 관리합니다. 노드에는 여러 포드가 있을 수 있으며 Kubernetes 마스터는 클러스터의 노드에서 포드 예약을 자동으로 처리합니다.

Pod 수명 주기의 5단계

  1. 대기 중: Kubernetes 시스템에서 Pod를 수락했지만 하나 이상의 컨테이너 이미지가 생성되지 않았습니다. 여기에는 예약되기 전의 시간과 네트워크를 통해 이미지를 다운로드하는 데 소요된 시간이 포함되며 시간이 걸릴 수 있습니다.
  2. 실행 중: 포드가 노드에 바인딩되었으며 모든 컨테이너가 생성되었습니다. 하나 이상의 컨테이너가 아직 실행 중이거나 시작 또는 다시 시작하는 중입니다.
  3. 성공: 포드의 모든 컨테이너가 성공적으로 종료되었으며 다시 시작되지 않습니다.
  4. 실패: 포드의 모든 컨테이너가 종료되었으며 하나 이상의 컨테이너가 실패로 종료되었습니다. 즉, 컨테이너가 0이 아닌 상태로 종료되었거나 시스템에 의해 종료되었습니다.
  5. 알 수 없음: 일반적으로 포드 호스트와의 통신 오류로 인해 어떤 이유로 포드의 상태를 가져올 수 없습니다.

전제 조건

  1. AWS 계정(없으면 새로 생성)
  2. Kubernetes 클러스터(Kubernetes 클러스터 생성 방법을 배우려면 \kubeadm을 사용하여 AWS EC2 인스턴스 Ubuntu에서 Kubernetes 클러스터 설정\ 검색).

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

우리가 할 일

  1. NginX용 Kubernetes Pod 생성 및 삭제

Nginx용 Kubernetes 포드 생성

첫 번째 포드를 만들려면 개체/포드 파일을 만들기 위한 새 디렉터리를 생성해 보겠습니다. 다음 명령을 사용하여 시스템에 새 디렉토리를 만듭니다.

mkdir my-first-pod
cd my-first-pod/

계속 진행하기 전에 클러스터 상태를 확인하세요.

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

sudo kubectl get nodes
sudo kubectl version

다음 명령을 사용하여 기본 네임스페이스의 팟(Pod)을 나열하십시오. 이것이 클러스터의 첫 번째 팟이 될 것이므로 기본 네임스페이스에 팟이 표시되지 않습니다.

sudo kubectl get pods

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

다음 코드 블록으로 \my-first-pod.yml\ 파일을 생성합니다.

vim my-first-pod.yml

---
apiVersion: v1
kind: Pod
metadata:
  name: myfirstpod
  labels:
    app: web
spec:
  containers:
    - name: myfirstcontainer
      image: nginx
      ports:
        - containerPort: 80

여기,

  • apiVersion: APIVersion은 객체 표현의 버전 스키마를 정의합니다.
  • 종류: 만들려는 개체의 종류입니다. 여기서는 포드를 만들고 있으므로 포드입니다.
  • 이름: 이름은 네임스페이스 내에서 고유해야 합니다.
  • 레이블: 개체를 구성하고 분류하는 데 사용할 수 있는 문자열 키 및 값의 맵
  • 사양: 포드의 원하는 동작 사양입니다.

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

sudo kubectl apply -f my-first-pod.yml 

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

sudo kubectl get pods

포드가 실제로 실행 중인지 확인하려면 다음 명령어를 실행하세요. 이것은 포드 내에서 명령을 실행합니다(참고: docker exec를 실행하는 것과 유사합니다.)

sudo kubectl exec myfirstpod — service nginx status

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

sudo kubectl delete pods myfirstpod

마지막으로 포드가 삭제되었는지 확인하려면 다음 명령을 사용하십시오.

sudo kubectl get pods

결론

이 기사에서는 Pod 및 수명 주기 단계에 대한 기본 사항을 배웠습니다. Kubernetes에서 첫 번째 Nginx Pod를 생성하는 단계를 확인했습니다. 또한 Pod에 대한 세부 정보를 추출하는 방법도 살펴보았습니다. 이와 함께 포드를 삭제하는 명령어에 대해 살펴보았다.