-
PODMAN: POD공부합시다!/Container 2022. 12. 14. 00:12728x90
pod란 개념은 K8S에서 유래 되었다.
pod란 Container를 실행하는 최소 단위이며 하나, 또는 그 이상의 Container가 실행되는 환경이다.
PODMAN의 pod 역시 이와 유사하게 정의되어 있다.
1. 구조 및 Infra Container
1.1. 모든 Podman pod에는 infra container가 포함되어 있음.
1.2. Infra container는 아무 작업도 수행하지 않지만 sleep mode로 전환되지는 않는다.
1.2.1. 중요 정보 저장 및 Pod 유지
1.3. Infra Container는 팟(Pod)과 연관된 NameSpace를 보유
1.4. Podman이 pod내의 다른 Container에 연결할 수 있도록 함.
1.4.1. 이렇게 함으로서 pod 내의 Container 시작 및 중지가 가능
1.4.2. 단 infra Container의 시작과 중지는 불가능
1.5. Infra Contaier는 k8s.gcr.io/pause 이미지를 기반
1.5.1. 별도로 명시하지 않는 한 모든 pod는 기본 이미지를 기반으로 하는 컨테이너를 갖게 됨.
2. 제약 사항
2.1. Pod를 구성하는 대부분의 속성은 실제로 Infra Container에 할당
2.1.1. port binding, cgroup-parent 값 및 kernel namespace는 모두 infra Container에 할당
2.2 Pod가 생성되면 이러한 속성이 Infra Container에 할당되고 변경할 수 없음. - pod에 port 생성 반드시 필요이유
2.2.1. 예를 들어 Pod를 생성한 다음 나중에 새 포트를 바인딩하는 컨테이너를 추가하기로 결정한 경우 Podman은 이를 수행할 수 없음. 새 컨테이너를 추가하기 전에 추가 포트 바인딩을 사용하여 포드를 다시 생성해야 함.
3. 아키텍처 이해
3.1. 각 컨테이너 위에 있는 Box.
3.1.1. Container mornitorr.
3.1.2. runc: 컨테이너의 기본 프로세스를 감시하고 컨테이너가 죽으면 종료 코드를 저장. 또한 나중에 연결할 수 있도록 컨테이너의 tty를 Open 중.
3.1.4. 이것은 podman이 분리 모드(백그라운드)에서 실행되도록 허용하므로 podman은 종료할 수 있지만 conmon은 계속 실행.
3.1.5. 각 컨테이너에는 고유한 conmon 인스턴스가 있습니다.
4. Pod 생성 및 삭제
4.1. pod를 생성하면 Infra Container는 자동 생성됨.
4.1.1. noportpod란 이름의 pod 생성
# podman pod create --name noportpod
4.1.2. pod 확인
# podman pod list
4.1.3. pod내 infra Container 확인
# podman ps -a --pod
4.2. Infra Container만 삭제 할 수 없음.
4.2.1. infra container 삭제 시도
# podman rm -f INFRACONTAINERNAME
4.3. Pod를 삭제 해야만 Infra Container가 삭제됨.
4.3.1. pod 삭제
# podman pod rm PODNAME
4.3.2. pod내 Container 확인
# podman ps -a --pod
4.3.3. pod 확인
$ podman pod list
결론 : Infra Container의 생명주기는 POD와 같다. POD가 삭제되면 Infra Container로 삭제된다.
단 Infra Container는 그 이외의 방법으로는 삭제되지 않는다.
조금 힘든 개념이지요!
잘 이해하시면 나중에 K8S 공부에 많은 도움이 됩니다.Have a nice day!
728x90'공부합시다! > Container' 카테고리의 다른 글
Docker : Network (0) 2022.12.15 PODMAN: POD 구성 및 wordpress + mysql (0) 2022.12.15 PODMAN 일반적인 사용법 (0) 2022.12.13 PODMAN과 DOCKER (0) 2022.12.12 HA Proxy 멀티 포트를 활용한 다중 LoadBalancing (0) 2022.12.08