Docker, k8s

k8s_yml 파일을 통한 Pod 실행

우당탕탕인생기 2023. 9. 13. 16:59

이번에는 기존에 kubectl run을  pod을 실행시켰다면, 이제는 yml 파일을 통한 pod 생성하는것을 해보도록 하겠다.

 

k8s yml 파일의 기본 설정이다. 물론 저거 말고도 환경변수나 많이 있지만, 일단 기본적인 구성이다.

apiVersion:     # 실행시킬 Object의 api version 
kind:           # 실행시킬 Object 종류
metadata:
  name:         # Pod 이름
spec:
  containers:
  - name:       # container 이름
    image:      # 실행시킬 이미지
   #imagePullPolicy: # 이미지 pull 정책, IfNotPresent , always , Never 존재
  #nodeName: node # 해당 pod을 어떤 node에 지정할것인지 설정
   ports:
   - containerPort  # 해당 서비스의 포트 제어

 

apiVersion : kubectl api-version resourcs 명령어를 통해 실행시킬 Object api version을 확인할 수 있다.

kind: 실행시킬 Obect의 종류로 Pod , Deployment, ReplicaSet , Namespace  등이 있다.

imagePullPolicy : 이미지을 불러오는 정책에 관한 설정인데

                             always은 항상 k8s repo에서 가져오겠다는 뜻

                             IfNotPresent는 local에 이미지가 없다면 가져오기

                             Never는 무조건 local에서 가져오겠다는 뜻이다.

 

kubectl apply -f name.yml 

위 명령어를 통해 실행시키면 pod가 생성되고

 

kubectl delete -f name.yml 

위 명령어를 실행시키면 yml 파일을 통해 실행시킨 pod가 삭제된다.


Nginx.yml

한번 nginx을 생성하는 yml 파일을 만들어보겠다.

 

apiVersion: v1
kind: Pod
metadata:
  name: app-nginx

spec:
  containers:
  - name: nginx
    image: nginx:1.14
    imagePullPolicy: Never
    ports:
    - containerPort: 80

 


centos.yml

centos7 을 생성하고 해당 pod는 namespace 2team에 생성하도록 해보겠다.

 

---
apiVersion: v1
kind: Namespace
metadata:
  name: 2team

---
apiVersion: v1
kind: Pod
metadata:
  name: bash-cent1
  namespace: 2team

spec:
 containers:
 - name: bash-cent1
   image: centos:7
   imagePullPolicy: Never
   command: ["/bin/bash" , "-c" , "while true; do sleep 1000; done"]

 


http.yml

http을 실행하고 해당 pod는 node2번에서 실행하도록 설정해보겠다.

---
apiVersion: v1
kind: Pod
metadata:
   name: http
   labels:
     env: prod
spec:
  containers:
  - name: apache1
    image: httpd
    imagePullPolicy: IfNotPresent
    ports:
    - containerPort: 80
  nodeName: node2

'Docker, k8s' 카테고리의 다른 글

k8s_helm Prometheus Grafana 연동  (0) 2023.09.15
k8s_ Replica, Depolyment  (0) 2023.09.13
k8s_ Pod 생성, Pod접속 , Service, Namespace  (0) 2023.09.12
k8s_Kubernetes  (0) 2023.09.12
Docker image build  (0) 2023.09.11