antony@notes:~/rancher$ cat "Podman-Offline-Installation-of-Rancher.md"
Podman Offline Installation of Rancher
Preface
本篇文章會介紹如何在全離線的狀態下,透過 Podman 安裝 Rancher,並透過 Rancher 這個平台生成 Rancher Kubernetes Engine 2(RKE2)
:::warning
:::spoiler 目錄
[TOC]
:::
Prepare
將 Rancher Image 傳到 Podman-Host 主機
> scp rancher-image.tar bigred@192.168.61.66:/home/bigred/Load Rancher Image on Podman-Host Machine
$ sudo podman load < rancher-image.tarInstall Rancher with Default Rancher-generated Self-signed Certificate
$ sudo podman run -d -p 80:80 -p 443:443 --privileged docker.io/rancher/rancher:v2.7.3
-d, --detach,在背景運行 Container-p, --publish strings,Publish a container’s port, or a range of ports, to the host (default [])--privileged,Give extended privileges to container
螢幕輸出 :
b0d309fae9150ae0a637e415e9f531a83eb542f2be60278a0567ec1cd05d35c4檢查 Container 狀態
$ sudo podman ps -a螢幕輸出 :
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b0d309fae915 docker.io/rancher/rancher:v2.7.3 --no-cacerts 5 minutes ago Up 5 minutes ago 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp great_easley準備 Rancher Container 運作所需之 Image
$ sudo podman cp rancher-2.7.3.tar $(sudo podman ps -aq):/var/lib/rancher/
$ sudo podman exec -it $(sudo podman ps -aq) bash
# ctr -n k8s.io image import rancher-2.7.3.tar在 local 端測試 Rancher 網站
$ curl -k https://192.168.61.66/dashboard/螢幕輸出 :
<!doctype html>
<html>
<head>
<title>dashboard</title><meta data-n-head="1" charset="utf-8"><meta data-n-head="1" name="viewport" content="width=device-width,initial-scale=1"><meta data-n-head="1" data-hid="description" name="description" content="Rancher Dashboard"><link data-n-head="1" data-hid="icon" rel="icon" type="image/x-icon" href="/favicon.png"><base href="/dashboard/"><link rel="preload" href="/dashboard/_nuxt/bc5a9b9.js" as="script"><link rel="preload" href="/dashboard/_nuxt/d0c1200b7e55ba295a21.js" as="script"><link rel="preload" href="/dashboard/_nuxt/b9199dcf32fef6f15dc0.js" as="script"><link rel="preload" href="/dashboard/_nuxt/44bf45d45b48440e6fea.js" as="script">
</head>
<body>
<div id="__nuxt"><style>.initial-load-spinner-container{align-items:center;background-color:#f8f8f8;display:flex;justify-content:center;height:100vh;left:0;position:absolute;top:0;width:100vw}.initial-load-spinner{animation:initial-load-animate 1s infinite linear;background-color:transparent;box-sizing:border-box;border:5px solid #008acf;border-radius:50%;border-top-color:#00b2e2;display:inline-block;height:80px;margin:0 auto;width:80px}@keyframes initial-load-animate{0%{transform:rotate(0)}100%{transform:rotate(359deg)}}</style><div class="initial-load-spinner-container"> <i class="initial-load-spinner"></i></div></div><script>window.__NUXT__={config:{rancherEnv:"web",dashboardVersion:"v2.7.2",_app:{basePath:"/dashboard/",assetsPath:"/dashboard/_nuxt/",cdnURL:null}}}</script>
<script src="/dashboard/_nuxt/bc5a9b9.js"></script><script src="/dashboard/_nuxt/d0c1200b7e55ba295a21.js"></script><script src="/dashboard/_nuxt/b9199dcf32fef6f15dc0.js"></script><script src="/dashboard/_nuxt/44bf45d45b48440e6fea.js"></script></body>
</html>取得第一次登入密碼
$ sudo podman logs $(sudo podman ps -aq) 2>&1 | grep "Bootstrap Password:"全離線透過 Rancher 生成 RKE2
準備 rancher-agent 和 rke2 服務要用的 tar 檔
~> scp Downloads\d-rke2-image.tar Downloads\rke2-runtime-image.tar Downloads\system-agent-installer-rke2-image.tar bigred@192.168.61.11:/home/bigred/~> sudo mkdir -p /var/lib/rancher/agent/images/
~> sudo cp system-agent-installer-rke2-image.tar /var/lib/rancher/agent/images/
~> sudo mkdir -p /var/lib/rancher/rke2/agent/images/
~> sudo cp rke2-runtime-image.tar /var/lib/rancher/rke2/agent/images/安裝 containerd
~> sudo zypper in -y containerd編輯設定檔
~> sudo nano /etc/containerd/config.tomlversion = 2
# persistent data location
root = "/var/lib/rancher/rke2/agent/containerd/"啟動 containerd
~> sudo /usr/sbin/containerd &建立 k8s.io namespace
~> sudo ctr ns create k8s.ioImport Image
~> sudo ctr -n k8s.io image import d-rke2-image.tar檢查
~> sudo ctr -n k8s.io image ls
~> sudo ls -l /var/lib/rancher/rke2/agent/containerd/io.containerd.content.v1.content/blobs/sha256將 containerd 程序終止
~> ps -eaf | grep containerd
~> sudo kill -9 3755 3756檢查
~> ps -eaf | grep containerd
root 9363 3823 0 00:20 pts/0 00:00:00 grep --color=auto containerd執行註冊命令
~> curl --insecure -fL https://rancher.twlottery.com.internal/system-agent-install.sh | sudo sh -s - --server https://rancher.twlottery.com.internal --label 'cattle.io/os=linux' --token wd64wzwh9f8x4gz62fn6h72ghjpnz4jf4wdk2vfvxl22fx9sztmvvs --ca-checksum c317b93eaa455ae06169dcc86e2b49a77aacdde400b254ba6079dc9db6b50eaa --etcd --controlplane --worker檢查 K8S 狀態
~> watch -n 0.1 kubectl get po -A