control plane 을 여러 대로 두어 한 노드가 죽어도 API 와 etcd 가 살아 있게 하는 구성이다. etcd 는 과반이 살아야 하므로 서버 노드는 홀수(보통 3) 로 두고, 클라이언트와 에이전트가 붙을 고정 주소(L4 로드밸런서 · 라운드로빈 DNS · VIP)를 앞에 둔다.
RKE 1.x 는 v1.8 이 마지막 계열로 지원이 끝났다[1]. 새로 구성하는 HA 는 RKE2 로 한다. 아래에 RKE2 HA 절차를 두고, RKE1 방식은 지난 방식으로 남긴다.
현행 RKE2 는 v1.37.0+rke2r1 이다[2].
/etc/rancher/rke2/config.yaml 에 공유 토큰과 고정 주소를 적는다. tls-san 에 넣은 이름이 API 서버 인증서에 들어간다.
token: my-shared-secret
tls-san:
- my-kubernetes-domain.com
- another-kubernetes-domain.com
curl -sfL https://get.rke2.io | sh -
systemctl enable --now rke2-server.service
journalctl -u rke2-server -f
같은 토큰에 server 로 첫 서버 또는 고정 주소를 가리킨다. 한 대씩 순서대로 올린다.
server: https://my-kubernetes-domain.com:9345
token: my-shared-secret
tls-san:
- my-kubernetes-domain.com
- another-kubernetes-domain.com
curl -sfL https://get.rke2.io | sh -
systemctl enable --now rke2-server.service
server: https://my-kubernetes-domain.com:9345
token: my-shared-secret
curl -sfL https://get.rke2.io | INSTALL_RKE2_TYPE="agent" sh -
systemctl enable --now rke2-agent.service
export PATH=$PATH:/var/lib/rancher/rke2/bin
export KUBECONFIG=/etc/rancher/rke2/rke2.yaml
kubectl get nodes
kubectl -n kube-system get pods
위 버전과 저장소는 오래된 것이라 저장소가 존재하지 않을 수 있다.
RKE1 은 작업용 호스트에서 rke up 으로 노드에 SSH 로 들어가 Docker 컨테이너로 Kubernetes 를 깔았다. HA 는 cluster.yml 의 nodes 에 controlplane · etcd 역할을 가진 노드를 3 대 적고, authentication.sans 에 로드밸런서 주소를 넣는 식이었다.
nodes:
- address: 192.168.1.11
user: rke
role: [controlplane, etcd]
- address: 192.168.1.12
user: rke
role: [controlplane, etcd]
- address: 192.168.1.13
user: rke
role: [controlplane, etcd]
- address: 192.168.1.21
user: rke
role: [worker]
authentication:
sans:
- "rke-lb.example.com"
rke up --config cluster.yml
RKE 1.x 최종 v1.8.14 — 2026-09-20 확인. https://github.com/rancher/rke/releases ↩︎
최신 버전 v1.37.0+rke2r1 — 2026-09-20 확인. https://github.com/rancher/rke2/releases/latest · HA 절차 https://docs.rke2.io/install/ha ↩︎