💻
[Kubernetes] Pod 생성해보기
On this page
❐ 실습 내용
파드를 생성하는 방식은 크게 2가지가 있습니다. 각 방식으로 파드를 생성해봅시다.
- yaml파일을 통해 파드 생성
- 명령어를 통해 파드 생성
[방법1] yaml파일을 통해 파드 생성
yaml 파일 생성
jenkins-pod.yaml 파일을 생성합니다.
root@instance-1:~# vi jenkins-pod.yaml
yaml 파일 작성
jenkins-pod.yaml 파일에 아래와 같이 작성합니다. jenkins 이미지를 실행하는 파드를 생성하고, 파드 이름은 jenkins-pod로 하겠다는 의미입니다.
apiVersion: v1 # 디스크립터가 사용하는 API 버전kind: Pod # 리소스 종류metadata:name: jenkins-pod # 파드 이름spec:containers:- name: jenkins # 생성할 컨테이너 이름image: jenkins/jenkins # 생성할 컨테이너 이미지ports:- containerPort: 8080 # 애플리케이션 포트
yaml 파일 적용
jenkins-pod.yaml 파일 내용을 적용합니다.
root@instance-1:~# kubectl create -f jenkins-pod.yamlpod/jenkins-pod created
파드 확인
jenkins-pod 파드가 생성된 것을 확인할 수 있습니다.
root@instance-1:~# kubectl get podNAME READY STATUS RESTARTS AGEjenkins-pod 1/1 Running 0 23s
파드 삭제
jenkins-pod 파드를 삭제 후, 파드를 확인합니다. jenkins-pod 파드가 삭제된 것을 확인할 수 있습니다.
root@instance-1:~# kubectl delete pod jenkins-podpod "jenkins-pod" deletedroot@instance-1:~# kubectl get podNo resources found in default namespace.
[방법2] 명령어를 통해 파드 생성
파드 확인
파드가 없는 것을 확인할 수 있습니다.
root@instance-1:~# kubectl get podNo resources found in default namespace.
파드 생성
nginx 이미지를 실행하는 파드를 생성하고, 파드 이름은 nginx-pod로 지었습니다. 그리고 스펙은 nginx-pod.yaml 파일에 기록합니다.
root@instance-1:~# kubectl run nginx-pod --image=nginx --dry-run=client -o yaml > nginx-pod.yamlroot@instance-1:~# kubectl create -f nginx-pod.yamlpod/nginx-pod created
파드 확인
nginx-pod 파드가 생성된 것을 확인할 수 있습니다.
root@instance-1:~# kubectl get podNAME READY STATUS RESTARTS AGEnginx-pod 1/1 Running 0 24s
파일 확인
nginx-pod.yaml 파일이 생성된 것을 확인할 수 있습니다.
root@instance-1:~# lskube_install.sh nginx-pod.yaml snap
yaml 파일 내용 확인
nginx-pod.yaml 파일을 열어 내용을 확인합니다.
root@instance-1:~# vi nginx-pod.yamlapiVersion: v1kind: Podmetadata:creationTimestamp: nulllabels:run: nginx-podname: nginx-podspec:containers:- image: nginxname: nginx-podresources: {}dnsPolicy: ClusterFirstrestartPolicy: Alwaysstatus: {}
파드 삭제
nginx-pod 파드를 삭제 후, 파드를 확인합니다. nginx-pod 파드가 삭제된 것을 확인할 수 있습니다.
root@instance-1:~# kubectl delete pod nginx-podpod "nginx-pod" deletedroot@instance-1:~# kubectl get podNo resources found in default namespace.