클라우드 엔지니어/클라우드 캠프과정

쿠버네티스 파드( kubernetes Pod)

해아's 2022. 10. 13. 15:51
Pod
0) Pod란?
파드는 컨테이너를 하나 이상 모아 놓은 것
쿠버네티스 애플리케이션의 최소 단위
강하게 결합된 여러 개의 컨테이너로 구성된 파드도 있고(고급 활용 사례), 단일 컨테이너로만 이루어진 파드도 있다

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

2) YAML 파일
키: 값 형태로 작성하는 파일

 

apiVersion: apps/v1		키가 apiVersion 이고 값이 apps/v1
kind: Pod
metadata:			키가 metadata 이고 값이 name: nginx-deployment
  name: nginx		값은 또 다른 키와 값이 될  수 있다.
spec:
  containers:
  - name: nginx
    image: nginx:latest
파드 API
	apiVersion : v1 설정
	kind : 오브젝트를 지정
	metadata : 오브젝트의 정보를 입력, name은 필수, 
	spec : 
		initContainers : 초기화 전용 컨테이너의 명세를 기술
		nodeSelector : 파드가 배포될 노드를 지정
			kubernetes.io/hostname: 노드 이름 지정
		volumes : 파드 내 컨테이너 간에 공유할 수 있는 볼륨을 지정
		containers : 컨테이너의 명세를 배열로 기술
			image : 컨테이너 생성시 사용할 이미지
			name : 컨테이너 이름
			livenessProbe : 컨테이너 내의 프로그램이 정상적으로 동작 중인지 검사하는 프로브
			readinessProbe : 컨테이너 내의 프로그램이 사용자의 요청을 받을 준비가 되었는지 검사하는 프로브
			ports : 외부 요청을 전달하기 위한 포트 목록, 배열로 작성
				containerPort : 포트 번호 지정
			resources : CPU와 메모리 제한
			volumeMounts : 파드에 정의한 볼륨을 컨테이너의 마운트할 경로
			command : 컨테이너 생성 시 마지막에 실행할 명령어
			args : command의 매개변수
			env : 환경변수 설정

 

3) 파드 동작 확인
	kubectl apply -f [yaml 파일 이름]
	kubectl delete -f [yaml 파일 이름]
	kubectl get pods -o wide	wide는 IP까지 보기위한 옵션
	kubectl describe [파드 이름]

 

728x90
반응형