Rancher(rke2) Test
π€ Rancher & RKE2 Cluster κ΅¬μΆ κ°μ΄λ
Base OS: Ubuntu 22.04 LTS (OpenStack VMs)
1. RKE2 Master Node κ΅¬μ± (Node 01)
λμ: rancher-01 (172.16.16.238) μν : Control Plane + Etcd + Worker
# 1. RKE2 μ€μΉ μ€ν¬λ¦½νΈ μ€ν
curl -sfL <https://get.rke2.io> | sh -
# 2. μ€μ λλ ν 리 μμ±
mkdir -p /etc/rancher/rke2
# 3. μ€μ νμΌ μμ± (Etcd νμ±ν - Master)
cat <<EOF > /etc/rancher/rke2/config.yaml
token: PoCpassword
tls-san:
- rancher-01
- 172.16.16.238
node-ip: 172.16.16.238
node-external-ip: 172.16.16.238
EOF
# 4. μλΉμ€ μμ
systemctl enable rke2-server
systemctl start rke2-server
# 5. kubectl νκ²½ μ€μ
ln -s /var/lib/rancher/rke2/bin/kubectl /usr/local/bin/kubectl
echo "export KUBECONFIG=/etc/rancher/rke2/rke2.yaml" >> ~/.bashrc
source ~/.bashrc
# 6. λ
Έλ μν νμΈ
kubectl get nodes -o wide
# nodeκ° μ μμ μΌλ‘ μ¬λΌμ€μ§ μμ κ²½μ°, imageκ° μ μμ μΌλ‘ λ€μ΄λ‘λ λμ§ μμμ μ μμ.
# RKE2 λ°νμ μ΄λ―Έμ§ Pull
# Pulling image
sudo /var/lib/rancher/rke2/bin/ctr -a /run/k3s/containerd/containerd.sock -n k8s.io images pull docker.io/rancher/rke2-runtime:v1.33.6-rke2r1
sudo /var/lib/rancher/rke2/bin/ctr -a /run/k3s/containerd/containerd.sock -n k8s.io images ls | grep runtime
sudo systemctl restart rke2-server
kubectl get nodes -o wide
# 7. (μ€μ) Full Token νμΈ
# μ΄ ν ν°κ°(K10...)μ 볡μ¬ν΄μ 02, 03λ² λ
Έλ μ€μ μ λ£μ΄μΌ ν¨
sudo cat /var/lib/rancher/rke2/server/node-token
# μμ: K10ab36d6ffae95ccf7932f4267ec5a78b3ba678b921e115aeafb48544dc36ff6ef::server:PoCpassword
2. RKE2 Member Node κ΅¬μ± (Node 02, 03)
λμ: rancher-02, rancher-03μν : Control Plane + Worker (Etcd μ μΈ)
2-1. Rancher-02 ꡬμ±
# 1. μ€μΉ μ€ν¬λ¦½νΈ
curl -sfL <https://get.rke2.io> | sh -
mkdir -p /etc/rancher/rke2
# 2. μ€μ νμΌ μμ± (disable-etcd: true)
# tokenμλ 1λ² λ
Έλμμ νμΈν K10... μ 체 λ¬Έμμ΄ μ
λ ₯
cat <<EOF > /etc/rancher/rke2/config.yaml
server: <https://172.16.16.238:9345>
token: K10ab36d6ffae95ccf7932f4267ec5a78b3ba678b921e115aeafb48544dc36ff6ef::server:PoCpassword
disable-etcd: true
tls-san:
- rancher-02
- 172.16.16.239
node-ip: 172.16.16.239
node-external-ip: 172.16.16.239
EOF
# 3. μλΉμ€ μμ
systemctl enable rke2-server
systemctl start rke2-server
2-2. Rancher-03 ꡬμ±
# 1. μ€μΉ μ€ν¬λ¦½νΈ
curl -sfL <https://get.rke2.io> | sh -
mkdir -p /etc/rancher/rke2
# 2. μ€μ νμΌ μμ± (disable-etcd: true)
cat <<EOF > /etc/rancher/rke2/config.yaml
server: <https://172.16.16.238:9345>
token: K10ab36d6ffae95ccf7932f4267ec5a78b3ba678b921e115aeafb48544dc36ff6ef::server:PoCpassword
disable-etcd: true
tls-san:
- rancher-03
- 172.16.16.240
node-ip: 172.16.16.240
node-external-ip: 172.16.16.240
EOF
# 3. μλΉμ€ μμ
systemctl enable rke2-server
systemctl start rke2-server
3. μ΄λ―Έμ§ μλ λ€μ΄λ‘λ (νΉμ μ΄λ―Έμ§κ° λ€μ΄λ‘λ λμ§ μμμ κ²½μ°)
λμ: 02, 03 λ
Έλ μΈν°λ· μλκ° λλ € Podκ° NotReady μνμ λΉ μ§ κ²½μ° μλμΌλ‘ μ€ν
# Image λ²μ νμΈ(Node 01)
sudo /var/lib/rancher/rke2/bin/ctr -a /run/k3s/containerd/containerd.sock -n k8s.io images ls | grep -E "calico|flannel"
# CNI(λ€νΈμν¬) μ΄λ―Έμ§ Pull (λ²μ μ 1λ² λ
Έλμμ νμΈ νμ)
sudo /var/lib/rancher/rke2/bin/ctr -a /run/k3s/containerd/containerd.sock -n k8s.io images pull docker.io/rancher/hardened-calico:v3.27.3-build20240422
sudo /var/lib/rancher/rke2/bin/ctr -a /run/k3s/containerd/containerd.sock -n k8s.io images pull docker.io/rancher/hardened-flannel:v0.25.1-build20240422
# μλΉμ€ μ¬μμ
sudo systemctl restart rke2-server
4. Rancher μΉ UI μ€μΉ (Helm)
λμ: rancher-01
# 1. Helm μ€μΉ
curl <https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3> | bash
# helm version νμΈ(μ μ μ€μΉ λμλμ§ νμΈ κ²Έ)
helm version
# 2. Cert-Manager μ€μΉ (HTTPS μΈμ¦μ κ΄λ¦¬)
helm repo add jetstack <https://charts.jetstack.io>
helm repo update
helm install cert-manager jetstack/cert-manager \\
--namespace cert-manager \\
--create-namespace \\
--set crds.enabled=true
# 3. Hosts νμΌ μ€μ (μ¬μ€ λλ©μΈ λ§€ν)
cat << EOF >> /etc/hosts
211.239.112.38 dhp.rancher.com
EOF
# 4. Rancher μ€μΉ
helm repo add rancher-stable <https://releases.rancher.com/server-charts/stable>
helm repo update
helm install rancher rancher-stable/rancher \\
--namespace cattle-system \\
--create-namespace \\
--set hostname=dhp.rancher.com \\
--set bootstrapPassword=admin
5. π¨ νΈλ¬λΈμν (DNS & Timeout)
λμ: rancher-01μ¬μ€ λλ©μΈ(dhp.rancher.com)μ μ¬μ©νκ³ , μ΄κΈ° λΆν
μ΄ λ릴 κ²½μ° λ°μνλ 무ν μ¬μμ μ€λ₯ μμ
5-1. DNS ν΄κ²° (HostAliases μΆκ°) & λΆν μκ° μ°μ₯ (StartupProbe)
kubectl edit deployment rancher -n cattle-system λͺ
λ ΉμΌλ‘ μλ λ΄μ©μ μμ νκ±°λ, ν¨μΉ λͺ
λ Ήμ΄λ₯Ό μ¬μ©ν©λλ€.
μμ ν¬μΈνΈ:
hostAliases: νλ λ΄λΆμ/etc/hostsκ°μ μ£ΌμstartupProbe: μ΄κΈ° ꡬλ λκΈ° μκ°μ 600μ΄(10λΆ)λ‘ μ°μ₯
# (μ°Έκ³ μ©) μμ ν λ°μλμ΄μΌ ν YAML ꡬ쑰
spec:
template:
spec:
hostAliases:
- ip: "211.239.112.38"
hostnames:
- "dhp.rancher.com"
containers:
- name: rancher
startupProbe:
failureThreshold: 60 # (κΈ°μ‘΄ 12 -> 60)
periodSeconds: 10
initialDelaySeconds: 60 # (μΆκ°)