반응형
이번에는 하나의 파드 안에 있는 여러개의 컨테이너들이 서로 볼륨(데이터) 공간을 공유하는 실습을 수행한다.
상세 조건은 다음과 같다.
- Name : test-multi-container
- Namespace : test-namespace
- 파드 내부 개별 Container 별 조건
- Container 1
- Name : c1
- image : nginx:1.19.3
- 수행 : 구동 시 파드 내 환경 변수 MY_NODE_NAME 에 파드가 구동되는 노드 이름을 저장
- Container 2
- Name : c2
- image : busybox:1.3
- 수행 : 매 1초마다 date 명령의 결과를 /공유볼륨경로/date.log 에 쓰기 수행
- Container 3
- Name : c3
- image : busybox:1.3
- 수행 : tail 명령어로 /공유볼륨경로/date.log 파일을 추적유지(tail -f)
- Container 1
상단 내용을 수행하는 파드 yaml 을 준비한다.
apiVersion: v1
kind: Pod
metadata:
name: test-multi-container
namespace: test-namespace
spec:
containers:
- image: nginx:1.13.6
name: c1
env:
- name: MY_NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
volumeMounts:
- name: vol
mountPath: /vol
- image: busybox:latest
name: c2
command: ["sh", "-c", "while true; do date >> /vol/date.log; sleep 1; done"]
volumeMounts:
- name: vol
mountPath: /vol
- image: busybox:latest
name: c3
command: ["sh", "-c", "tail -f /vol/date.log"]
volumeMounts:
- name: vol
mountPath: /vol
volumes:
- name: vol
emptyDir: {}
이제 해당 pod를 생성하고 c1과 c3 컨테이너를 조회하여 각각 결과를 확인한다.
### pod 생성
kubectl apply -f pod.yaml
### pod 생성 확인
kubectl get po -n test-namespace test-multi-container
NAME READY STATUS RESTARTS AGE
test-multi-container 3/3 Running 0 19s
### c1 컨테이너의 환경 변수 확인
kubectl exec -n test-namespace test-multi-container -c c1 -- env | grep MY
MY_NODE_NAME=worker2
### c3 컨테이너의 로그 확인
kubectl logs -n test-namespace test-multi-container -c c3
Fri May 6 02:59:11 UTC 2022
Fri May 6 02:59:12 UTC 2022
Fri May 6 02:59:13 UTC 2022
Fri May 6 02:59:14 UTC 2022
Fri May 6 02:59:15 UTC 2022
...
'소프트웨어 아키텍처 > Kubernetes' 카테고리의 다른 글
[Kubernetes] 1-15. 클러스터 이벤트 확인하기 (0) | 2022.05.06 |
---|---|
[Kubernetes] 1-14. 클러스터 정보 확인하기 (0) | 2022.05.06 |
[Kubernetes] 1-12. Deployment 구동해보기 (0) | 2022.05.06 |
[Kubernetes] 1-11. Daemonset 구동해보기 (0) | 2022.05.03 |
[Kubernetes] 1-10. RBAC 적용해보기 (0) | 2022.05.03 |
댓글