쿠버네티스 첫 걸음

  1. 클러스터 구성확인
    1. K8s 클러스터 환경의 정보 출력(macOS 미니쿠배
    2. 싱글 노드 K8s 클러스터에서 구성 노드 출력
      1. Role : 책과 다르게 control-plane 이 나오는 이유?
  2. 파드 실행
    1. 파드는 쿠버네티스에서 컨테이너를 실행하는 최소 단위.
      1.  kubectl : K8s 클러스터를 조작하기 위해 사용되는 커맨드
      2. run : 컨테이너 실행을 명령하는 서브 커맨드
      3. hello-world : 쿠버네티스 오브젝트의 이름(파드나 컨트롤러 등)
      4. —image=hello-world : 컨테이너의 이미지, 쿠버네티스에서는 파드 단위로 컨테이너가 기동되며 리포지터리명이 생략된 경우에는 도커 허브를 사용
      5. -it : 도커에서의 -it와 마찬가지로, -i는 키보드 표준 입력에 연결하고, -t는 유사터미널과 연결하여 대화 모드 설정. 옵션 ‘—restart=Never’인 경우에만 유효하며, 그 외에는 백그라운드로 실행.
      6. —restart=Never : 옵션에 따라 파드의 기동 방법 변경. Never 직접 파드가 기동되며 Always OnFailure 컨트롤러를 통해 파드가 기동
    2. 파드 실행 
    3. 파드목록 출력 


매니페스트와 파드

  1. 매니페스트 
    1. 매니페스트란 쿠버네티스의 오브젝트를 생성하기 위한 메타 정보를 YAML이나 JSON으로 기술한 파일이다.

    2. 매니페스트는 kubectl run nginx —image=nginx:lastest —restart=Never 실행한 것과 같은 의미를 가진다.

  2. 파드API

    1. apiVersion : v1 설정

    2. Kind : Pod설정

    3. Metadata : 파드의 이름을 지정하는 name은 필수 항목이며, 네임스페이스 내에서 유일한 이름이어야 함.

    4. Spec : 파드의 사양을 기술

  3. 파드의 사양

    1. Containers : 컨테이너의 사양을 배열로 기술

    2. initContainers : 초기화 전용 컨테이너의 사양을 배열로 기술.

    3. nodeSelector : 파드가 배포될 노드의 레이블을 지정.

    4. Volumes : 파드 컨테이너 간에 공유할 있는 볼륨을 설정

  4. 컨테이너 설정

    1. Image : 이미지의 리포지터리명과 태그

    2. Name : 컨테이너를 여러 개 기술할 경우 필수 항목

    3. livenessProbe : 컨테이너 애플리케이션이 정상적으로 동작 주인지 검사하는 프로브

    4. readinessProbe : 컨테이너 애플리케이션이 사용자의 요청을 받을 준비가 되었는지 검사하는 프로브

    5. Ports : 외부로부터 요청을 전달받기 위한 포트 목록

    6. Resources : cpu와 메모리 요구량과 상한치

    7. volumeMounts : 파드에 정의한 볼륨을 컨테이너의 파일 시스템에 마운트하는 설정. 복수 개 기술 가능

    8. Command : 컨테이너 가동 시 실행할 커맨드. args가 인자로 적용

    9. Args : command의 실행 인자

    10. Env : 컨테이너 내에 환경 변수를 설정

  5. 매니 페스트의 적용과 확인

  6. 파드를 만드는 매니페스트 적용 & 파드의 상태 목록
  7. 파드의 IP 주소와 파드가 배포된 노드 표시