共計 3234 個字符,預計需要花費 9 分鐘才能閱讀完成。
本文丸趣 TV 小編為大家詳細介紹“k3s 的快速部署和使用方法是什么”,內容詳細,步驟清晰,細節處理妥當,希望這篇“k3s 的快速部署和使用方法是什么”文章能幫助大家解決疑惑,下面跟著丸趣 TV 小編的思路慢慢深入,一起來學習新知識吧。
1、安裝 k3s1.1 自動安裝
主控節點安裝
或者,直接安裝,如下:
curl -sfL https://get.k3s.io | sh -
下載 k3s 的 install.sh 提供了安裝到 systemd 或 openrc 的工具,將安裝 k3s 為系統服務。
配置文件 kubeconfig 被寫入到 /etc/rancher/k3s/k3s.yaml ,服務將會自動啟動。 安裝腳本還將安裝 k3s 和其它工具,如 kubectl, crictl, k3s-killall.sh, 和 k3s-uninstall.sh, 可以運行下面命令來獲取節點狀態:
sudo kubectl get nodes
K3S_TOKEN 被創建在主服務器 /var/lib/rancher/k3s/server/node-token 。
??部署完了,但是服務不可用。如下:
我的試驗環境是 Ubuntu 19.10,下次用 raspbian 試一下看。
ubuntu@ubuntu:~$ sudo kubectl cluster-info
To further debug and diagnose cluster problems, use kubectl cluster-info dump .
The connection to the server 127.0.0.1:6443 was refused - did you specify the right host or port?
工作節點安裝
如果在節點上安裝 k3s,需要傳遞 K3S_URL 和 K3S_TOKEN 或者 K3S_CLUSTER_SECRET 作為環境變量。例如:
curl -sfL https://get.k3s.io | K3S_URL=https://myserver:6443 K3S_TOKEN=XXX sh -
1.2 手動安裝
下載 k3s – 最新版本, x86_64, ARMv7 和 ARM64 都可以支持。
運行服務器:
sudo k3s server
# Kubeconfig is written to /etc/rancher/k3s/k3s.yaml
sudo k3s kubectl get node
# On a different node run the below. NODE_TOKEN comes from /var/lib/rancher/k3s/server/node-token
# on your server
sudo k3s agent --server https://myserver:6443 --token ${NODE_TOKEN}
1.3 高可用模式
從 v1.0.0 開始,K3s 預覽性支持高可用 control plane,不需要外部的數據庫。這意味著不需要管理外部的 etcd 或者 SQL datastore 來提供高可靠的生產級安裝。該特征還是體驗狀態,我們希望將來能夠作為 HA K3s clusters 的主要架構。
該架構通過嵌入 dqlite database 到 K3s server 進程內實現。DQLite 即 “distributed SQLite.”按照 https://dqlite.io 的說法,是 “a fast, embedded, persistent SQL database with Raft consensus that is perfect for fault-tolerant IoT and Edge devices.”這非常適合 K3s。
讓 K3s 運行在該模式,需要服務器節點為奇數,建議從三個節點開始。
為了開始,首先啟動 server node,采用 cluster-init 參數來啟用 clustering 和 token,將被用于共享 secret 使其它服務器節點能夠加入集群。
K3S_TOKEN=SECRET k3s server --cluster-init
啟動第一個服務器后,添加第 2 / 3 個服務器進來,需要 shared secret:
K3S_TOKEN=SECRET k3s server --server https:// ip or hostname of server1 :6443
現在有了一個高可用 control plane 服務,添加其它 worker nodes 到集群,跟添加單個服務器集群一樣。
參考:https://rancher.com/docs/k3s/latest/en/installation/ha-embedded/
2、使用 k3s
該 kubeconfig file 用于配制對 Kubernetes cluster 集群的訪問,需要正確滴設置,能夠訪問 Kubernetes API,如 kubectl 來安裝應用以及支持 Helm。可以設置 kubeconfig 的方法包括環境變量 KUBECONFIG 來對 kubectl 和 helm 進行支持。例如:
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
kubectl get pods --all-namespaces
helm ls --all-namespaces
或者在每個命令中指示 kubeconfig 文件的位置。
kubectl --kubeconfig /etc/rancher/k3s/k3s.yaml get pods --all-namespaces
helm --kubeconfig /etc/rancher/k3s/k3s.yaml ls --all-namespaces
集群外通過 kubectl 訪問
復制 /etc/rancher/k3s/k3s.yaml 到你的機器到 ~/.kube/config. 然后替換“localhost”為 IP 或者 K3s server 的名稱。kubectl 現在能夠管理所制定的 K3s cluster。
3、k3s 升級
可以通過安裝腳本來升級 K3s 或者手動安裝新的二進制版本。
??注意:升級時首先升級 server nodes,然后升級其它工作節點。
通過安裝腳本升級 K3s
從老的版本升級到新的 K3s,重新運行安裝腳本即可,例如:
curl -sfL https://get.k3s.io | sh -
升級到制定版本,使用下面的命令(其中 vX.Y.Z 為指定的版本號):
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=vX.Y.Z-rc1 sh -
手動升級 K3s(Using the Binary)
手動升級 K3s:
下載想要的 K3s 版本,從這里:releases
安裝到合適的位置 (一般是 /usr/local/bin/k3s)
停止老版本。
啟動新版本。
重啟 K3s
重啟 K3s 支持 systemd 和 openrc。
手動重啟 systemd 使用:
sudo systemctl restart k3s
手動重啟 openrc 使用:
sudo service k3s restart
4、構建 arm 版鏡像
arm 版鏡像的 CPU 指令集與 x86 不同,因此容器不能交叉運行到異構硬件環境(與虛擬機不太一樣,虛擬機可以提供指令集模擬)。
但是,因為容器引擎提供了統一的存儲系統,arm 鏡像和 x86 鏡像可以使用同一個容器鏡像倉庫,可以通過內置的 tag 來標識即可。使用時必須選擇相應的鏡像版本,也可以使用同一個 Dockerfile 打包出多種架構可用的容器鏡像版本。
參考:
Docker Desktop 構建 Multi-Arch 的 arm 容器鏡像
讀到這里,這篇“k3s 的快速部署和使用方法是什么”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注丸趣 TV 行業資訊頻道。