背景介紹
部分公司無法連接外網,需要離線安裝,官方安裝教程英文,在此記錄一下搬運的安裝方法。
1、下載需要版本的K3S二進制文件
首先去Github獲取下載地址,也可去碼雲鏡像倉庫加速下載。
Github官方地址
Gitee鏡像倉庫地址
獲取圖中所示文件的鏈接
以下命令行以v1.18.4+k3s1版本爲例
wget https://github.com/rancher/k3s/releases/download/v1.18.4%2Bk3s1/k3s
2、設置可執行權限
chmod 755 k3s
3、移動至/usr/local/bin目錄下
也可利用Xftp直接上傳,但是要記得修改執行權限。
cp k3s /usr/local/bin/k3s
4、執行命令驗證
[root@iz2zeh0l1z8k2z5qifxbknz ~]# which k3s
/usr/local/bin/k3s
[root@iz2zeh0l1z8k2z5qifxbknz ~]# k3s --version
k3s version v1.18.4+k3s1 (97b7a0e9)
5、下載官方腳本
官方腳本地址
將官方腳本地址打開後得到一串代碼,複製到自己創建的文件中去,命名爲install.sh
,但是要注意由於Linux與Windows系統編碼格式不同,若在Windows系統下複製粘貼則會報錯invalid option 2: set: -
,原因是,文件爲dos格式,應該修改爲 unix格式。
解決方法爲:在vim 編輯欄 可以使用set ff 查看文件格式
: set ff
顯示如下
fileformat=unix
修改爲
: set ff=unix
推薦直接在Linux系統中直接生成文件複製粘貼
或使用下載命令
curl https://raw.githubusercontent.com/rancher/k3s/master/install.sh -o install.sh
6、設置環境變量
設定K3S離線安裝環境變量
export INSTALL_K3S_SKIP_DOWNLOAD=true
7、執行安裝腳本
在install.sh
腳本目錄下執行
sh install.sh
輸出日誌
[root@iz2zeh0l1z8k2z5qifxbknz ~]# sh install.sh
[INFO] Skipping k3s download and verify
[INFO] Creating /usr/local/bin/kubectl symlink to k3s
[INFO] Creating /usr/local/bin/crictl symlink to k3s
[INFO] Skipping /usr/local/bin/ctr symlink to k3s, command exists in PATH at /usr/bin/ctr
[INFO] Creating killall script /usr/local/bin/k3s-killall.sh
[INFO] Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO] env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO] systemd: Creating service file /etc/systemd/system/k3s.service
[INFO] systemd: Enabling k3s unit
Created symlink from /etc/systemd/system/multi-user.target.wants/k3s.service to /etc/systemd/system/k3s.service.
[INFO] systemd: Starting k3s
8、確認版本信息
[root@iz2zeh0l1z8k2z5qifxbknz ~]# kubectl version
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.4+k3s1", GitCommit:"97b7a0e9df2883f08028fb7171c1e62fc1899a0c", GitTreeState:"clean", BuildDate:"2020-06-18T01:30:45Z", GoVersion:"go1.13.11", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.4+k3s1", GitCommit:"97b7a0e9df2883f08028fb7171c1e62fc1899a0c", GitTreeState:"clean", BuildDate:"2020-06-18T01:30:45Z", GoVersion:"go1.13.11", Compiler:"gc", Platform:"linux/amd64"}
9、確認節點信息
[root@iz2zeh0l1z8k2z5qifxbknz ~]# kubectl get node -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
iz2zeh0l1z8k2z5qifxbknz Ready master 69s v1.18.4+k3s1 172.17.106.133 <none> CentOS Linux 7 (Core) 3.10.0-514.26.2.el7.x86_64 containerd://1.3.3-k3s2