카테고리 없음

KANS 3기 - Pod & Pause 컨테이너

시스템 엔지니어 2024. 9. 8. 02:12

Pause 컨테이너 실습

pause 컨테이너가 lo eth0 를 만들고, NET/MNT/UTS 네임스페이스를 공유한다.

 

Pod 생성

cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
  name: myweb
spec:
  containers:
  - image: nginx:alpine
    name: myweb-container
    ports:
    - containerPort: 80
      protocol: TCP
  terminationGracePeriodSeconds: 0
EOF
`crictl ps`
명령어에는 pause 컨테이너가 없다.

 

pstree 명령어로 확인 할 수 있다.

 

 

 

 

 

 

 

한개의 pod에 두개의 컨테이너 생성 후 확인

apiVersion: v1
kind: Pod
metadata:
  name: myweb2
spec:
  containers:
  - name: myweb2-nginx
    image: nginx
    ports:
    - containerPort: 80
      protocol: TCP

  - name: myweb2-netshoot
    image: nicolaka/netshoot
    command: ["/bin/bash"]
    args: ["-c", "while true; do sleep 5; curl localhost; done"] # 포드가 종료되지 않도록 유지합니다

  terminationGracePeriodSeconds: 0

 

kubectl describe pod myweb2

Containers:
  myweb2-nginx:
    Container ID:
    Image:          nginx
    Image ID:
    Port:           80/TCP
    Host Port:      0/TCP
    State:          Waiting
      Reason:       ContainerCreating
    Ready:          False
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-qbfh8 (ro)
  myweb2-netshoot:
    Container ID:
    Image:         nicolaka/netshoot
    Image ID:
    Port:          <none>
    Host Port:     <none>
    Command:
      /bin/bash
    Args:
      -c
      while true; do sleep 5; curl localhost; done
    State:          Waiting
      Reason:       ContainerCreating
    Ready:          False
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-qbfh8 (ro)

 

pod내 두 개의 컨테이너 ip 확인시 같은 것을 알 수 있다.

 

 

 

 

 

net, uts, ipc 네임스페이스를 공유하는 것을 알 수 있다.

 

 

 

pause 컨테이너가 네임스페이스 공유 역할을 하는 것을 알아보았다.
pause 컨테이너가 많이 중요한 것을 깨달았습니다.