728x90
한 포드에 멀티 컨테이너
하나의 포드에 다수의 컨테이너를 사용
- 하나의 포드를 사용하는 경우 같은 네트워크 인터페이스와 IPC, 볼륨 등을 공유
- 이 포드는 효율적으로 통신하여 데이터의 지역성을 보장하고 여러 개의 응용프로그램이 결합된 형태로 하나의 포드를 구성할 수 있음
$ kubectl exec -it two-containers -- cat /usr/share/nginx/html/index.html
Defaulting container name to nginx- container.
Use 'kubectl describe pod/two-containers - n default' to see all of the containers in this pod.
Hello from the debian container
pod-multi-container.yaml
apiVersion: v1
kind: Pod
metadata:
name: two-containers
spec:
restartPolicy: Never
volumes:
- name: shared-data
emptyDir: {}
containers:
- name: nginx-container
image: nginx
volumeMounts:
- name: shared-data
mountPath: /usr/share/nginx/html
- name: debian-container
image: debian
volumeMounts:
- name: shared-data
mountPath: /pod-data
command: ["/bin/sh"]
args: ["-c", "echo Hello from the debian container > /pod-data/index.html"]
연습문제
- 하나의 포드에서 nginx와 redis 이미지를 모두 실행하는 yaml을 만들고 실행하라
nginx-redis-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx-redis-pod
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
- name: redis
image: redis
포트가 겹치면 에러가 나므로 각각 다른 포트로 구동되도록 설정
kubectl로 생성 및 확인
$ kubectl create -f nginx-redis-pod.yaml
pod/nginx-redis-pod created
$ kubectl get pod -w
NAME READY STATUS RESTARTS AGE
nginx-redis-pod 0/2 ContainerCreating 0 6s
nginx-redis-pod 2/2 Running 0 15s
$ kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-redis-pod 2/2 Running 0 5m3s 10.46.0.1 work2 <none> <none>
work2에서 구동중이므로 work2에서 프로세스 확인
redis와 nginx 가 인터페이스를 공유하는 형태로 돌아가고 있는 것을 확인
# 젼체 명령어 보기
$ docker ps -a --no-trunc
$ docker ps | grep "nginx"
34d8be4e4fcc redis "docker-entrypoint.s…" 7 minutes ago Up 7 minutes k8s_redis_nginx-redis-pod_default_97205021-23d9-474e-a75b-4102042f33c6_0
d4343ded0883 nginx "/docker-entrypoint.…" 7 minutes ago Up 7 minutes k8s_nginx_nginx-redis-pod_default_97205021-23d9-474e-a75b-4102042f33c6_0
110dae479c60 k8s.gcr.io/pause:3.2 "/pause" 7 minutes ago Up 7 minutes k8s_POD_nginx-redis-pod_default_97205021-23d9-474e-a75b-4102042f33c6_0
728x90
'개발강의정리 > DevOps' 카테고리의 다른 글
[데브옵스를 위한 쿠버네티스 마스터] 애플리케이션 스케줄링과 라이프사이클 관리 - 시스템 리소스 요구사항과 제한 설정 (0) | 2021.01.19 |
---|---|
[데브옵스를 위한 쿠버네티스 마스터] 애플리케이션 스케줄링과 라이프사이클 관리 - Init 컨테이너 (0) | 2021.01.19 |
[데브옵스를 위한 쿠버네티스 마스터] 애플리케이션 스케줄링과 라이프사이클 관리 - 초기 명령어 및 아규먼트 전달과 실행 (0) | 2021.01.19 |
[데브옵스를 위한 쿠버네티스 마스터] 애플리케이션 스케줄링과 라이프사이클 관리 - 애플리케이션 변수 관리 (0) | 2021.01.19 |
[데브옵스를 위한 쿠버네티스 마스터] VisualStudio Code 설치와 활용 (0) | 2021.01.19 |
댓글