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


이 페이지에서

  1. 포드 수명 주기의 5단계
  2. 전제 조건
  3. 우리가 할 일\n
  4. Nginx용 Kubernetes 포드 생성

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

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

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

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

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

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

Pod 수명 주기의 5단계

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

전제 조건

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

우리가 할 일

  1. NginX용 Kubernetes Pod 생성 및 삭제

Nginx용 Kubernetes 포드 생성

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

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

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

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

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

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

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

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

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

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

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

결론

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