Rancher Pod
이 문서는 Rancher와 그 기반이 되는 RKE2 클러스터를 설치했을 때 생성되는 주요 시스템 파드(Pod)들의 역할과 구조를 설명합니다.
클러스터 내부 Pod들이 어떤 일을 하는지 이해하면, 향후 운영 및 장애 대응 시 문제를 훨씬 빠르게 진단할 수 있습니다.
Pod 목록
Rancher, RKE2 설치 후 생성되는 파드 목록을 확인합니다.
rancher-rke2-m1w1-offline:/rke2-artifacts/helm # k get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
cattle-capi-system capi-controller-manager-5c545485d8-p6fbr 1/1 Running 1 (5d18h ago) 5d23h
cattle-fleet-local-system fleet-agent-69fff89d9d-6w8pd 1/1 Running 0 5d23h
cattle-fleet-system fleet-controller-84f995b97f-gchsg 3/3 Running 0 5d23h
cattle-fleet-system gitjob-594bf45bb5-5kblr 1/1 Running 0 5d23h
cattle-fleet-system helmops-7c7d9f47b5-8vxzv 1/1 Running 0 5d23h
cattle-system rancher-f8cffcc7b-9bclf 1/1 Running 1 (5d23h ago) 6d
cattle-system rancher-f8cffcc7b-9v6jx 1/1 Running 0 6d
cattle-system rancher-f8cffcc7b-k5hrj 1/1 Running 0 5d23h
cattle-system rancher-webhook-57b7dc7b6f-zxbfc 1/1 Running 0 5d23h
cattle-system system-upgrade-controller-f96f76c74-4jdqt 1/1 Running 0 5d23h
cattle-turtles-system rancher-turtles-controller-manager-867f6578d9-lgn8h 1/1 Running 0 5d23h
cert-manager cert-manager-c4fb79bf-6259g 1/1 Running 0 6d
cert-manager cert-manager-cainjector-5bdbbd4d9f-8xtbv 1/1 Running 0 5d23h
cert-manager cert-manager-webhook-84659c685d-5zk5m 1/1 Running 0 5d23h
fleet-default rke2-machineconfig-cleanup-cronjob-29419205-pf8xk 0/1 Completed 0 2d6h
fleet-default rke2-machineconfig-cleanup-cronjob-29420645-2k58p 0/1 Completed 0 30h
fleet-default rke2-machineconfig-cleanup-cronjob-29422085-52kg7 0/1 Completed 0 6h17m
kube-system cloud-controller-manager-rancher-rke2-m1w1-offline 1/1 Running 1 (6d2h ago) 7d1h
kube-system cloud-controller-manager-rancher-rke2-m2w2-offline 1/1 Running 4 (5d23h ago) 6d
kube-system cloud-controller-manager-rancher-rke2-m3w3-offline 1/1 Running 2 (6d5h ago) 6d5h
kube-system etcd-rancher-rke2-m1w1-offline 1/1 Running 0 7d1h
kube-system etcd-rancher-rke2-m2w2-offline 1/1 Running 5 6d22h
kube-system etcd-rancher-rke2-m3w3-offline 1/1 Running 2 6d5h
kube-system helm-install-rke2-canal-jcnpr 0/1 Completed 0 7d1h
kube-system helm-install-rke2-coredns-xxrkg 0/1 Completed 0 7d1h
kube-system helm-install-rke2-ingress-nginx-wtx5f 0/1 Completed 0 7d1h
kube-system helm-install-rke2-metrics-server-zscgx 0/1 Completed 0 7d1h
kube-system helm-install-rke2-runtimeclasses-nmzk4 0/1 Completed 0 7d1h
kube-system helm-install-rke2-snapshot-controller-5kv8p 0/1 Completed 2 7d1h
kube-system helm-install-rke2-snapshot-controller-crd-96jb8 0/1 Completed 0 7d1h
kube-system kube-apiserver-rancher-rke2-m1w1-offline 1/1 Running 1 (5d23h ago) 7d1h
kube-system kube-apiserver-rancher-rke2-m2w2-offline 1/1 Running 8 6d22h
kube-system kube-apiserver-rancher-rke2-m3w3-offline 1/1 Running 1 6d5h
kube-system kube-controller-manager-rancher-rke2-m1w1-offline 1/1 Running 1 (6d2h ago) 7d1h
kube-system kube-controller-manager-rancher-rke2-m2w2-offline 1/1 Running 4 (5d23h ago) 6d
kube-system kube-controller-manager-rancher-rke2-m3w3-offline 1/1 Running 2 (6d5h ago) 6d5h
kube-system kube-proxy-rancher-rke2-m1w1-offline 1/1 Running 0 5d23h
kube-system kube-proxy-rancher-rke2-m2w2-offline 1/1 Running 0 5d23h
kube-system kube-proxy-rancher-rke2-m3w3-offline 1/1 Running 0 6d5h
kube-system kube-scheduler-rancher-rke2-m1w1-offline 1/1 Running 1 (6d2h ago) 7d1h
kube-system kube-scheduler-rancher-rke2-m2w2-offline 1/1 Running 1 (5d23h ago) 6d
kube-system kube-scheduler-rancher-rke2-m3w3-offline 1/1 Running 1 (6d5h ago) 6d5h
kube-system kube-vip-ds-75qh7 1/1 Running 13 (5d9h ago) 6d6h
kube-system kube-vip-ds-hspxm 1/1 Running 6 (4d21h ago) 6d5h
kube-system kube-vip-ds-w984f 1/1 Running 10 (4d21h ago) 6d6h
kube-system rke2-canal-jfss2 2/2 Running 0 7d1h
kube-system rke2-canal-lv5px 2/2 Running 0 6d5h
kube-system rke2-canal-qhxwd 2/2 Running 2 (5d23h ago) 6d
kube-system rke2-coredns-rke2-coredns-7d6dfc49f9-bd6j2 1/1 Running 0 7d1h
kube-system rke2-coredns-rke2-coredns-7d6dfc49f9-vclk2 1/1 Running 0 6d22h
kube-system rke2-coredns-rke2-coredns-autoscaler-69ccfd666b-qr5jr 1/1 Running 0 7d1h
kube-system rke2-ingress-nginx-controller-4sqcj 1/1 Running 1 (5d23h ago) 6d22h
kube-system rke2-ingress-nginx-controller-dsh95 1/1 Running 0 7d1h
kube-system rke2-ingress-nginx-controller-fr6zs 1/1 Running 0 6d5h
kube-system rke2-metrics-server-69ffd96587-9fvpr 1/1 Running 0 7d1h
kube-system rke2-snapshot-controller-5c9f75668-r42xn 1/1 Running 5 (5d23h ago) 7d1h
각 Pod들을 namespace 별로 정리하면 다음과 같습니다.
Namespace : cattle-system / cattle-xxx
설명 : Rancher 핵심 관리 부문으로 Rancher의 UI와 멀티 클러스터 관리의 핵심입니다.
- cattle-system / rancher-xxx : rancher의 본체, UI 제공 및 API 서버 역할을 합니다.
- cattle-system / system-upgrade-controller-xxx : 클러스터 전체의 OS와 쿠버네티스 버전을 자동으로 업데이트/업그레이드를 실행해줍니다. 사용자가 쿠버버전을 올려달라고 명령하면 이 컨트롤러가 각 노드에 접속하여 순차적으로 업그레이드 작업을 수행합니다(Rolling Update).
- cattle-system / rancher-webhook-xxx : rancher를 통해 생성되는 리소스들의 유효성을 검사하고 보안 규칙을 적용합니다.
- cattle-capi-system / capi-controller-manager-xxx : 사용자가 요청한 사양대로 새로운 쿠버네티스 클러스터를 자동으로 만들어주는 클러스터 생산 관리자입니다. 만약 해당 파드가 죽으면 이미 돌아가고 있는 클러스터들은 멀쩡하지만 새로운 클러스터를 만들거나 기존 클러스터의 노드를 늘리는 작업은 불가능합니다.
- cattle-turtles-system / rancher-turtles-controller-manager-xxx : Cluster API(CAPI)를 Rancher와 통합해주는 어댑터 역할입니다. Capi-controller-manager가 클러스터를 만드는 엔진이라면, rancher-turtles는 그 엔진이 만든 클러스터를 rancher ui에 자동으로 등록하고 관리 대상에 포함시키는 작업을 자동화 / Rancher가 특정 제조사 방식에 갇히지 않고 업계 표준(CAPI)을 지원하게 해주는 핵심 POD
- cattle-fleet-local-system / fleet-agent-xxx : fleet controller가 중앙 서버(rancher)에 앱을 배포 하라고 결정하면, 실제 그 명령을 받아서 자신이 속한 클러스터 안에 앱을 설치하고 상태를 감시하는 역할. 랜처에 다른 클러스터를 추가하면 그 새로운 클러스터 안에도 똑같은 fleet-agent가 생성됨(클러스터당 1개씩 존재)
- cattle-fleet-system / gitjob-xxx : Git + Job의 합성어, 사용자가 연결해둔 Git 저장소를 계속 감시합니다. 변화가 감지되면 이제 배포를 시작해야겠구나 라고 판단하고 그 작업을 수행할 실제 프로세스를 생성합니다.
- Cattle-fleet-system / helmops-xxx : Helm + Operation의 합성어, 실제로 Helm 차트를 설치하거나 업데이트 하는 실무자입니다. Gitjob이 벨을 울리면, 배포해야 할 Helm 차트를 가져와서 쿠버네티스 클러스터에 실제로 설치하거나 업그레이드 명령을 내립니다. = 배포가 성공했는지, 에러가 났는지 상태를 추적합니다.
- Cattle-fleet-system / fleet-controller-xxx : gitjob이 Git 저장소의 변화를 감시하고 helmops가 실제로 설치 명령을 수행한다면, fleet-contoller는 그 중간에서 전체적인 전략을 짜고 명령을 내립니다.
– 매핑 : 어떤 앱을 어떤 클러스터에 보낼 것인가
– 상태 추적 : 여러 클러스터에 배포된 앱들이 정상적으로 떠 있는지, 아니면 에러가 났는지 파악할 수 있도록 상태를 수집
– 에이전트 관리 : 각 하위 클러스터에 심어놓은 ‘Fleet Agent’들과 통신하며 일을 시킵니다. - Cattle-system / Helm-operation-xxxx : Rancher가 UI를 통해 요청받은 helm 차트 설치, 업그레이드, 또는 삭제 작업을 실제로 수행하는 일꾼 Pod입니다. 평소에는 목록에 보이지 않다가, 사용자가 Rancher UI에서 앱(Helm Chart)을 설치하거나 설정을 변경하는 ‘이벤트’가 발생할 때만 즉시 생성됩니다.
*** fleet 워크 플로우(gitjob, helmops가 협업하는 과정) ***
Rancher의 배포 관리 시스템(fleet)은 다음과 같은 순서로 동작합니다.
- 사용자: Git 저장소에 앱 설정(Helm Chart 등)을 업로드합니다.
- Gitjob: Git의 변화를 감지하고, “배포가 필요함” 이라는 상태를 만듭니다.
- Fleet-controller: 이 변화를 보고 helmops에게 일을 시킵니다
- Helmops: 실제로 하위 클러스터들에 앱을 배포합니다.
Namespace : cert-manager
설명 : 쿠버네티스 클러스터 내에서 HTTPS 접속에 필요한 보안 인증서를 자동으로 발급하고, 만료되기 전에 알아서 갱신해 주는 자동 인증서 관리 비서
- cert-manager / cert-manager-xxx : 팀의 리더이자 인증서 발급/갱신 담당자입니다. 인증서가 만료 일자를 체크하여 자동으로 갱신하거나, 새로운 도메인이 추가되면 인증서 발급 기관(CA)에 요청해서 인증서를 받아옵니다.
- cert-manager / cert-manager-webhook-xxx : 보안 검문소 역할을 합니다. 사용자가 인증서 관련 설정을 쿠버네티스에 입력할 때, 그 설정이 올바른 양식인지, 보안상 문제가 없는지 검사합니다. 잘못된 설정이 들어오면 거절합니다.
- cert-manager / cert-manager-cainjector-xxx : 인증서 정보 주입기입니다. 발급받은 인증서 데이터를 쿠버네티스의 다른 부품들(webhook 등)이 읽을 수 있도록 필요한 곳에 넣어주는 역할을 합니다. 복잡한 설정 없이 보안 통신을 가능하게 해줍니다.
Namespace : fleet-default
- fleet-default / rke2-machineconfig-cleanup-cronjob-xxx : RKE2 클러스터의 노드 설정 변경 과정에서 발생한 불필요한 임시 데이터나 잔류 파일들을 정기적으로 자동 삭제하여 클러스터 상태를 깨끗하게 유지해 주는 관리 도구
– rke2-machineconfig : rke2 클러스터의 설정(노드 정보, 엔진 설정 등)과 관련된 작업임을 뜻합니다.
– Cleanup: 설정 변경 과정에서 생긴 임시 파일이나 오래 된 기록을 정리합니다.
– Crontab 처럼 정해진 시간마다 반복해서 실행됩니다.
Namespace : kube-system
설명 : 쿠버네티스 클러스터 핵심 운영 부문으로, 클러스터의 유지, 통신, 스케줄링을 담당하는 필수 엔진들이 모여 있습니다.
** Pod 이름 뒤에 서버 이름이 붙어 있는 것을 볼 수 있습니다. (m1w1,m2w2,m3w3) 이는 고가용성(HA)을 위해 마스터 노드에서 각각 Pod가 실행중이라는 뜻입니다.
- Kube-system / etcd-rancher-rke2-m1w1 : 쿠버네티스의 데이터베이스입니다. 모든 설정과 상태 정보가 여기에 저장됩니다.
- Kube-system / cloud-controller-manager-rancher-rke2-m1w1 : 인프라 통역사입니다. 설치 된 서버 환경과 노드의 상태(온라인/오프라인)를 체크하고 연동합니다.
- Kube-system / kube-apiserver-rancher-rke2-m1w1 : 쿠버네티스 입구입니다. 모든 명령(kubect, Rancher UI 등)은 이 서버를 통해 전달됩니다(모든 컴포넌트 간의 통신을 중재)
- Kube-system / kube-controller-manager-rancher-rke2-m1w1 : 클러스터의 상태를 감시하며, 원하는 상태를 유지합니다. (예: Pod가 죽으면 새로 띄움)
- Kube-system / kube-proxy-rancher-rke2-m1w1 : 노드마다 하나씩 있으며, 네트워크 규칙을 관리하여 서비스 통신을 가능하게 합니다.
- Kube-system / kube-scheduler-rancher-rke2-m1w1 : 새로 생성 된 Pod를 어떤 노드에 배치할 지 결정합니다.
네트워크 및 인프라 서비스
- Kube-system / kube-vip-ds-xxx : 오프라인 환경에서 특히 중요한 Pod로 여러 마스터 노드 중 하나가 죽어도 하나의 대표 IP(VIP)로 계속 접속할 수 있게 해줍니다. 각 노드 별 pod가 존재합니다.
- Kube-system / rke2-canal-xxx : 네트워크 플러그인(CNI), Pod와 Pod가 서로 통신할 수 있는 가상 도로를 만듭니다 (Flannel + Calico 조합). 각 노드 별 pod가 존재합니다. ** 노드 별 해당 pod가 2개씩 존재하는데 이는 Flannel + Calico 조합, 즉 두개의 컨테이너이기 때문입니다.
- Kube-system / rke2-coredns-rke2-coredns-xxx : 클러스터 안의 도메인 이름(DNS)서비스 입니다. Pod들이 IP 대신 이름으로 서로를 찾게 해줍니다.
- Kube-system / rke2-coredns-autoscaler-xxx : DNS 자동 확장기 입니다. 클러스터 규모가 커지면 DNS부하를 견딜 수 있도록 coredns Pod의 개수를 자동으로 늘려줍니다.
- Kube-system / rke2-ingress-nginx-controller-xxx : 외부에서 들어오는 웹 트래픽을 각 서비스로 전달하는 입구입니다. (L7 로드밸런서) 각 노드 별 Pod가 존재합니다.
- Kube-system / rke2-metrics-server-xxx : CPU와 메모리 사용량을 수집합니다. 해당 Pod를 통해 Rancher UI에서 리소스 그래프를 볼 수 있습니다.
- Kube-system / rke2-snapshot-controller-xxx : 데이터 백업을 위한 스냅샷 기능을 담당합니다.
- Kube-system / helm-install-rke2-*: 초기 공사 일꾼(Job)입니다. RKE2 설치 시 CoreDNS나 Nginx 같은 필수 요소를 설치한 뒤 임무를 마치고 ‘Completed(완료)’ 상태로 남은 흔적입니다. 지우지 않아도 되며, 정상적인 흔적입니다.

자유롭게 댓글을 달아주세요! 언제나 환영합니다.
기타 문의: info@neoclova.co.kr
네오클로바 기술블로그 홈 바로가기: https://neoclova.net
네오클로바 홈페이지: http://neoclova.co.kr
