Pods with YAML

2023. 4. 9. 15:02Kubernetes

yaml 설정 파일로 pod를 생성할 수있다.

쿠버네티스는 yaml 파일을 써서 쿠버네티스 오브젝트를 생성한다.

오브젝트 예시 : pods, replicas, deployments, services 

 

구조는 다 비슷한데, 아래 4가지는  root level 속성들이라 필수값이다.

apiVersion:
kind:
metadata:

spec:

1) api version은 쿠버네티스 API 버전인데,

종류에따라 올바른 api version 을 써야함. 

Pod는 apiVersion:v1

Kind Version
POD v1
Service c1
ReplicaSet apps/v1
Deployment apps/v1

2) Kind : object 유형이다. 

위 표의 kind에 해당하는걸 적으면 됨.

Pod는 kind: pod

3) metadata : obejct의 데이터를 적으면됨. 

name,labels 등등 

dictionary의 형태이다.

단, 주의할건 자식값들에 인덴테이션이 있는데, 인덴테이션 정도는 상관없지만,

자식들간에 인덴테이션 일관성은 유지돼야한다.

 

탭은 권장하지 않는다. 항상 스페이스 2번 권장.

# 올바른 예시
metadata:
	name: myapp-pod
	labels:
		app: myapp
        
# 잘못된 예시
metadata:
	name: myapp-pod
		labels:
			app: myapp

 

name은 pod 명이다.

labels 도 dictionary 형태인데, key,value로 라벨링을 할수있다.

-> 나중에 pod 를 식별할때 쓸수있음 ,pod가 수백 수천개인데, 그룹화하기 좋다. 

 

4) spec : 오브젝트에따라 추가적으로 제공해야하는 값이 다르기 때문에, 

문서보고 올바른 양식을 적는게 중요하다. 

spec 도 dicitionay 형태인데, container 하위에 적을 수있다.

컨테이너는 배열이나 리스트다.

컨테이너가 리스트인 형태인 이유는 pod가 여러개 컨테이너를 가질수 있기 때문이다. 

 

아래는 pod 명세 완성본

#pod-definition.yml
apiVersion:v1
kind:Pod #대소문자 구분 중요!
metadata: 
	name: myapp-pod
    labels:
    	app: myapp
        type: front-end
        
spec:
	container:
    	-name: nginx-container # - 가 들어가는 이유는 list의 첫번째 item이기 때문이다.
         image: nginx
#yml 로 pod 생성하는법
kubectl create -f pod-definition.yml

# 존재하는 pod 보는법
kubectl get pods

#pod 상세 명세보는법 (pod의 metadata에 적힌 name 필요)
kubectl describe pod myapp-pod

 

container 가 여러개일때 yml 예시

#pod.yml
apiVersion:v1
kind:Pod #대소문자 구분 중요!
metadata: 
	name: nginx
    labels:
    	app: nginx
        tier: fronetend
        
spec:
	container:
    	-name: nginx-container 
         image: nginx
        -name: busybox # 두번째 컨테이너
         image: busybox

 

 

# 생성하는법은 apply로도 가능 f옵션은 파일명을 쓰겠단 뜻
kubectl apply -f pod.yaml

-> pod/nginx created

'Kubernetes' 카테고리의 다른 글

Test-replicaSet  (0) 2023.04.12
Recap-ReplicaSets  (0) 2023.04.10
Recap -Pods  (0) 2023.04.09
Kube-Proxy  (0) 2023.04.08
Kubelet  (0) 2023.04.08