Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

설치

Code Block
themeEmacs
$ sudo docker run --privileged -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher


설치후 버전확인

Code Block
docker exec 3dc2abeb2647 rancher --version

root@NucBox-01:/home/psmon# docker exec 3dc2abeb2647 rancher --version
rancher version v2.13.0 (f94ac947f75e312f1ab9217d21b2770b48b734c8)
  • 2.13.0 버전으로 설명이 진행됩니다.


설치되는버전

Code Block
themeEmacs
2025/12/12 05:42:05 [INFO] Watching metadata for rke-machine.cattle.io/v1, Kind=HarvesterMachine
2025/12/12 05:42:05 [INFO] Watching metadata for rke-machine.cattle.io/v1, Kind=AzureMachine
2025/12/12 05:42:05 [INFO] Watching metadata for rke-machine.cattle.io/v1, Kind=LinodeMachine
2025/12/12 05:42:05 [INFO] Watching metadata for rke-machine.cattle.io/v1, Kind=VmwarevsphereMachineTemplate
2025/12/12 05:42:05 [INFO] Watching metadata for rke-machine-config.cattle.io/v1, Kind=HarvesterConfig
2025/12/12 05:42:05 [INFO] Watching metadata for rke-machine-config.cattle.io/v1, Kind=VmwarevsphereConfig
2025/12/12 05:42:05 [INFO] Watching metadata for rke-machine.cattle.io/v1, Kind=AzureMachineTemplate
2025/12/12 05:42:05 [INFO] Watching metadata for rke-machine-config.cattle.io/v1, Kind=AzureConfig
2025/12/12 05:42:05 [INFO] Watching metadata for rke-machine.cattle.io/v1, Kind=DigitaloceanMachineTemplate
2025/12/12 05:42:05 [INFO] Watching metadata for rke-machine.cattle.io/v1, Kind=HarvesterMachineTemplate
2025/12/12 05:42:05 [INFO] Watching metadata for rke-machine-config.cattle.io/v1, Kind=LinodeConfig
2025/12/12 05:42:05 [INFO] Watching metadata for rke-machine.cattle.io/v1, Kind=DigitaloceanMachine
2025/12/12 05:42:05 [INFO] Loaded configuration from https://releases.rancher.com/kontainer-driver-metadata/release-v2.13/data.json in [0x1162f980]
2025/12/12 05:42:05 [ERROR] Failed to read API for groups map[ext.cattle.io/v1:stale GroupVersion discovery: ext.cattle.io/v1]
2025/12/12 05:42:05 [INFO] Loaded configuration from https://releases.rancher.com/kontainer-driver-metadata/release-v2.13/data.json in [0x1162f980]
2025/12/12 05:42:06 [INFO] [mgmt-auth-gr-controller] Creating clusterRole cattle-globalrole- for corresponding GlobalRole
I1212 05:42:06.642461      48 warnings.go:110] "Warning: v1 ComponentStatus is deprecated in v1.19+"
I1212 05:42:06.645770      48 warnings.go:110] "Warning: v1 Endpoints is deprecated in v1.33+; use discovery.k8s.io/v1 EndpointSlice"
2025/12/12 05:42:06 [INFO] Watching metadata for rke-machine-config.cattle.io/v1, Kind=Amazonec2Config
2025/12/12 05:42:06 [INFO] Watching metadata for rke-machine.cattle.io/v1, Kind=Amazonec2Machine
2025/12/12 05:42:06 [INFO] Watching metadata for rke-machine.cattle.io/v1, Kind=LinodeMachineTemplate
2025/12/12 05:42:06 [INFO] Watching metadata for rke-machine.cattle.io/v1, Kind=Amazonec2MachineTemplate
2025/12/12 05:42:06 [INFO] [mgmt-auth-gr-controller] Creating clusterRole cattle-globalrole- for corresponding GlobalRole
2025/12/12 05:42:06 [INFO] [mgmt-auth-gr-controller] Creating clusterRole cattle-globalrole- for corresponding GlobalRole
2025/12/12 05:42:07 [INFO] [mgmt-auth-gr-controller] Creating clusterRole cattle-globalrole- for corresponding GlobalRole
2025/12/12 05:42:08 [INFO] RDPClient: Checking if dialer is built...

  • 관리툴이 설치되며 관리툴 자체가 k3s 내장쿠버를 설치합니다.
    • StandAlne으로 쿠버를 개발목적으로 운영할시 이것만으로도 충분합니다.



구동후 관리자 페이지접근을 위한 초기 패스워드 

Code Block
docker logs  container-id  2>&1 | grep "Bootstrap Password:"


초기 설치화면

  • 내부에만 사용할것이기때문에 SSL및 별도의 도메인없이 디폴트로 진행


접속후 최초화면

  • 경량화된 K3s 쿠버를 기본으로 제공합니다.
    • 네임스페의(local)의 쿠버는 Rancher그자체로 N개의 쿠버클러스터를 관리하는 Master역할을 합니다.
    • 운영에서는 이 영역을 안건드는게 좋지만, 쿠버학습용이라고하면 그냥 이 클러스터를 이용해도 됩니다.


클러스터추가

홈화면 CREATE를 통해 새로운 쿠버 클러스터를 생성가능합니다.

  • 여기서는 추가 실험으로 설치형으로 클러스터 노드 2개를 추가할것이기때문에 Custom을 진행


Rancher 쿠버 2PC 구성 설계

draw.io Board Diagram
bordertrue
diagramNamerancher-kuber
simpleViewerfalse
width
linksauto
tbstyletop
lboxtrue
diagramWidth507
revision1

  • 다중 쿠버클러스터를 관리하는 RancherServer는 Docker로 설치
  • 새로운 독립 커스텀 쿠버클러스터는 Agent로 설치
    • 클라우드에 Provision된 쿠버도 이러한 형태로 조인해 하이브리드 쿠버관리가 가능한게 Rancher의 장점입니다.


클러스터생성

  • K3s가 경량쿠버이기때문에 저성능 PC에 더많은 POD를 구동할수 있습니다.
    • Traefik Ingress : RancherServer로 Ingress가 이미 있는 장치에 중복설치 예정이기때문에 충돌방지를 위해 Ingeress는 Off합니다.
      • 쿠버클러스터를 모두구성한후 Ingress를 추가해 이용하면 되며 , Server(Master)와 분리되 운영되는경우는 상관없습니다. 


클러스터 노드 추가

  • 최초 Role은 ALL(etcd,Control Plane,Worker) 로 Step1에서 Role을 지정하고 Ste2의 설치명령을 복붙해 원하는 PC에 설치하면 Node가 추가됩니다. - 2개,3개 추가할때도 동일합니다.
    • 쿠버클러스터 에 별도의 공식인증서를 입히지 않을것이기에 Insecure체크
    • 두번째 노드는 첫번째 클러스터노드가 완성되는것을 지켜본후 추가하는것이 권장됩니다.


Agent설치

Code Block
themeEmacs
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 33663    0 33663    0     0  3794k      0 --:--:-- --:--:-- --:--:-- 4109k
[INFO]  Label: cattle.io/os=linux
[INFO]  Role requested: etcd
[INFO]  Role requested: controlplane
[INFO]  Role requested: worker
[INFO]  CA strict verification is set to true
[INFO]  Using default agent configuration directory /etc/rancher/agent
[INFO]  Using default agent var directory /var/lib/rancher/agent
[INFO]  Successfully downloaded CA certificate
[INFO]  Value from https://192.168.0.58/cacerts is an x509 certificate
[INFO]  Successfully tested Rancher connection
[INFO]  Downloading rancher-system-agent binary from https://192.168.0.58/assets/rancher-system-agent-amd64
[INFO]  Successfully downloaded the rancher-system-agent binary.
[INFO]  Downloading rancher-system-agent-uninstall.sh script from https://192.168.0.58/assets/system-agent-uninstall.sh
[INFO]  Successfully downloaded the rancher-system-agent-uninstall.sh script.
[INFO]  Generating Cattle ID
[INFO]  Successfully downloaded Rancher connection information
[INFO]  systemd: Creating service file
[INFO]  Creating environment file /etc/systemd/system/rancher-system-agent.env
[INFO]  Enabling rancher-system-agent.service
[INFO]  Starting/restarting rancher-system-agent.service
root@NucBox-01:/home/psmon# 

  • 복붙해서 설치를 진행하면 새로운 쿠버 클러스터를 자동으로 구성해줍니다.
    • 네이티브 모드로 쿠버를 설치하는것보다 간소화된절차

  • Agent구성이 시작되면 클러스터 관리 Machines 에 1이 추가되며 Running 가 될때까지 기다립니다.


단독 클러스터 완성


두번째 노드추가

  • Control/Etcd등이 리소스를 어느정도 잡아먹기때문에 첫번째에 StandAlone으로 All배치했으며 두번째 노드는 순수하게 Pod가용공간을 최대한 끌어쓰기위해 두번째 노드의 Role은 Worker로만 지정합니다.
  • 노드추가방법은 이와같은 패턴으로 동일합니다. - 다른PC(VM)에 설치
  • 첫노드는 쿠버 클러스터 처음구성하느라 시간이 조금걸리지만 이후 추가는 빠르게 진행됩니다.


2개노드를 가진 쿠버클러스터

  • 두개의 노드를 가진 쿠버클러스터가 뚝딱 완성되었습니다.


Rancher 클러스터 전체 요약

  • local : Rancher Server를 최초 구성시 기본내장 쿠버클러스터로 단독 연습 1대만 운영시 이것만으로 충분합니다.
    • 경량화된 k3s 쿠버를 기본 채택합니다.
  • webnori : 추가로 두노드 구성한 커스텀 클러스터이며, 클러스터된 환경에서 쿠버를 연습한다고 하면 , 클러스터 구성을 쉽게할수 있습니다.
    • 홈서버 또는 개발환경에서는 K3s를 권장합니다.(라이트웨이한 쿠버)



클린언인스톨

설치중 삑싸리가나 클린인스톨할시 아래와같은 스크립트를 수행해 클린 언인스톨할수 있습니다.

기존 설정된 쿠버의 설정과 꼬일수 있음으로 재설치시 쿠버관련 클린하는 스크립트입니다.

Code Block
languagebash
themeEmacs
# Rancher / K3s / Kubernetes 클린 초기화 가이드
# (순수 명령어 + 주석만, 스타일 없음)

# 1) K3s 종료 및 uninstall
sudo /usr/local/bin/k3s-killall.sh 2>/dev/null
sudo /usr/local/bin/k3s-uninstall.sh 2>/dev/null
sudo /usr/local/bin/k3s-agent-uninstall.sh 2>/dev/null

# 2) Kubernetes / Rancher / CNI 잔재 삭제
sudo rm -rf /etc/rancher
sudo rm -rf /var/lib/rancher
sudo rm -rf /var/lib/kubelet
sudo rm -rf /var/lib/cni
sudo rm -rf /etc/cni
sudo rm -rf /run/k3s
sudo rm -rf /run/flannel

# 3) CNI 네트워크 인터페이스 삭제
sudo ip link delete flannel.1 2>/dev/null
sudo ip link delete cni0 2>/dev/null

# veth 계열 인터페이스 삭제
for dev in $(ip link | grep veth | awk -F: '{print $2}' | tr -d ' '); do
  sudo ip link delete "$dev" 2>/dev/null
done

# 4) Docker / containerd 중지
sudo systemctl stop docker 2>/dev/null
sudo systemctl stop containerd 2>/dev/null

# 5) Docker / containerd 데이터 삭제
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

# 6) Docker / containerd 재시작
sudo systemctl start containerd 2>/dev/null
sudo systemctl start docker 2>/dev/null

# 7) iptables 초기화
sudo iptables -F
sudo iptables -t nat -F
sudo iptables -t mangle -F

# 8) 클린 상태 확인 (선택)
systemctl status k3s
systemctl status k3s-agent
ip link | grep -E "cni|flannel"
sudo ctr -n k8s.io containers ls
sudo ctr -n k8s.io images ls
ls -l /var/lib/kubelet
ls -l /var/lib/rancher
ls -l /etc/cni

# 이후 Rancher Server 재설치
# docker run -d --privileged --restart=unless-stopped -p 80:80 -p 443:443 --name rancher rancher/rancher:v2.13.0