728x90
초기 명령어 및 아규먼트 전달과 실행
초기 실행시 명령어와 아규먼트를 전달
- Pod을 생성할 때 spec.containers.command와 args에 실행하기 원하는 인자를 전달하면 컨테이너가 부팅된 뒤 실행
pod-command-args.yaml
apiVersion: v1
kind: Pod
metadata:
name: command-demo
labels:
purpose: demonstrate-command
spec:
containers:
- name: command-demo-container
image: debian
command: ["printenv"]
args: ["HOSTNAME", "KUBERNETES_PORT"]
restartPolicy: OnFailure
- 환경 변수를 활용하여 출력할 때는
$
를 사용하여 명령 내용 변경 가능
env:
- name: MESSAGE
value: "hello world"
command: ["/bin/echo"]
args: ["$(MESSAGE)"]
연습문제
- busybox 이미지를 사용하는 busybox 포드를 만들어라
https://v1-16.docs.kubernetes.io/docs/concepts/workloads/pods/pod-overview/#pod-templates
busybox-cmd-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
labels:
app: myapp
spec:
containers:
- name: myapp-container
image: busybox
kubectl로 생성 및 확인
정상적으로 실행되지 않고 Crash 가 발생하는 것을 확인할 수 있음
$ kubectl create -f busybox-cmd-pod.yaml
pod/busybox created
$ kubectl get pod -w
NAME READY STATUS RESTARTS AGE
busybox 0/1 Completed 0 7s
busybox 0/1 Completed 1 7s
busybox 0/1 CrashLoopBackOff 1 9s
- busybox 포드가 유지되는가? 그렇지 않다면 그 이유는 무엇인가?
- 서버의 형태가 아니라 Application 일 뿐이라 유지되지 않고 종료됨
- sleep 하는 명령어와 아규먼트를 전달해서 busybox를 장시간 유지하게 할 수 있음
- busybox를 장시간 유지하기 위해 장시간 sleep하는 명령어와 아규먼트를 추가하여 실행하라
busybox-cmd-pod.yaml 파일에 command: ['sh', '-c', 'echo Hello Kubernetes! && sleep 3600']
을 추가하여 생성
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
labels:
app: myapp
spec:
containers:
- name: myapp-container
image: busybox
command: ['sh', '-c', 'echo Hello Kubernetes! && sleep 3600']
kubectl 생성 및 정상 동작 확인
$ kubectl delete pod busybox
pod "busybox" deleted
$ kubectl create -f busybox-cmd-pod.yaml
pod/busybox created
$ kubectl get pod -w
NAME READY STATUS RESTARTS AGE
busybox 1/1 Running 0 6s
- busybox가 계속 유지될 수 있는가? 셸을 접속하여 확인하자
$ kubectl exec -it busybox -- sh
/ #
728x90
'개발강의정리 > DevOps' 카테고리의 다른 글
[데브옵스를 위한 쿠버네티스 마스터] 애플리케이션 스케줄링과 라이프사이클 관리 - Init 컨테이너 (0) | 2021.01.19 |
---|---|
[데브옵스를 위한 쿠버네티스 마스터] 애플리케이션 스케줄링과 라이프사이클 관리 - 한 포드에 멀티 컨테이너 (0) | 2021.01.19 |
[데브옵스를 위한 쿠버네티스 마스터] 애플리케이션 스케줄링과 라이프사이클 관리 - 애플리케이션 변수 관리 (0) | 2021.01.19 |
[데브옵스를 위한 쿠버네티스 마스터] VisualStudio Code 설치와 활용 (0) | 2021.01.19 |
[Apache kafka 조금 아는 척하기] 카프카 컨슈머 (0) | 2021.01.05 |
댓글