iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 17
1
DevOps

從開源雲到邊緣運算系列 第 17

[Day 17]K3s 叢集重建與基礎指令簡介

  • 分享至 

  • xImage
  •  

古人說(從哪裡跌倒,從哪裡站起來),啊!跑題了QAQ,有成功當然就有失敗(有建立叢集當然就有重建叢集拉),有鑒於我們可愛的小夥伴(我懶惰我驕傲),用官方的快速組建方式,在叢集建構時,把整個叢集弄壞掉了,又因為官方在 k3s service 進行自我修復的功能,在 kill k3s service 的 PID 之後,k3s 主服務 (Server/Agent) 會重新進行啟動(母湯的 service kill 不掉啊),於是今天就教學一下怎麼用官方的方式解除這個問題吧,之後再來介紹 k3s 上,kubernetes / container 的相關指令如何使用,如:Pod 查詢、Pod 刪除、kubernetes 派送指令等,為後續的差異性測試的指令鋪路。

叢集重建

Server 端

  • 用於 k3s Server 服務異常,重建 k3s 服務角色使用。

恢復一下快速安裝 k3s 的記憶

curl -sfL https://get.k3s.io | sh -

https://ithelp.ithome.com.tw/upload/images/20191003/20121071D1MBjCx2sW.png

無限重啟刪不掉的服務

  • 查詢目前的 k3s service 在 OS 中的 Process Id
pidof k3s
  • 刪除目前 k3s 服務的 OS pid 行程
kill ${k3s-pid}
  • 看一下重新啟動的服務
pidof k3s
  • 執行結果 (示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191003/20121071xAynCxyJZY.png

清除所有資料

  • k3s Server 應用程式內容清除指令
curl -sfL https://get.k3s.io | k3s-killall.sh
  • 執行結果 (示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191003/20121071WWZBbi4OyR.png
  • 確認 k3s 執行狀態
pidof k3s
  • 執行結果 (示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191003/201210716J9exwmm2M.png
  • k3s 應用程式檢查
k3s
  • 執行結果 (示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191003/20121071OdJCqFuZJX.png
  • 這邊後面可以使用 github release 版的執行方式執行叢集。

解除安裝

  • k3s Server 應用程式解除安裝指令
curl -sfL https://get.k3s.io | k3s-uninstall.sh
  • 執行結果 (示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191003/20121071pT6Ij5TEmY.png
  • 檢測一下 k3s 還是否健在
k3s
  • 執行結果 (示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191003/20121071ac4z7lgvzS.png

這邊 k3s Server 就完成清除動作了~,重新安裝請去看一下上一篇文章。


Agent 端

  • 用於 Agent 節點加入之後,在 Server 端無法看到添加的 Agent 節點重建功能。

來個 Agent 節點測試

  • 從 Server 拿個 Token
cat /var/lib/rancher/k3s/server/node-token
  • 執行結果 (示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191003/20121071v1Nm3jgwPf.png
  • 註冊 Agent 節點的服務
curl -sfL https://get.k3s.io | K3S_URL=https://myserver:6443 K3S_TOKEN=XXX sh -
  • 執行結果 (示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191003/20121071PFNo3ycR3b.png
  • Server 端驗證 Agent 節點添加
k3s kubectl get node
  • 執行結果 (示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191003/20121071ZeXAspm6mT.png

無限重啟刪不掉的服務

  • 查詢目前的 k3s service 在 OS 中的 Process Id
pidof k3s
  • 刪除目前 k3s 服務的 OS pid 行程
kill ${k3s-pid}
  • 看一下重新啟動的服務
pidof k3s
  • 執行結果 (示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191003/20121071GyHj3nh4iY.png

k3s agent 服務 Bug

  • 不會比對 Token 是否正確,都會直接進入 OS 背景執行。
    https://ithelp.ithome.com.tw/upload/images/20191003/20121071I1n18cowHc.png
  • Server 抓不到 Agent 註冊的狀態
    https://ithelp.ithome.com.tw/upload/images/20191003/20121071YrUsaXb3Uw.png

清除所有資料

  • k3s Agent 應用程式解除安裝指令
curl -sfL https://get.k3s.io | k3s-killall.sh
  • 執行結果 (示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191003/20121071r7DyKVkyw6.png
  • 檢測一下 k3s 還是否健在
k3s
  • 執行結果 (示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191003/20121071pFIRrE40jV.png

Agent 重新註冊失敗

  • 參考圖
    https://ithelp.ithome.com.tw/upload/images/20191003/20121071nA9v3ZV5T1.png

  • Server 端刪除 Agent 端先前的密碼,否則 Agent 將永遠無法註冊(除非Server重建)

nano /var/lib/rancher/k3s/server/cred/node-passwd
  • 測試結果(示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191003/20121071XkWiWjFIWY.png

解除安裝

  • k3s Agent 應用程式解除安裝指令
curl -sfL https://get.k3s.io | k3s-agent-uninstall.sh
  • 執行結果 (示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191003/20121071iXmKHx78LA.png

k3s 基礎指令簡介

  • 先講解一下參數的概略用途吧~,先知道一下之後的指令怎麼來吧

k3s 應用程式

  • 呼叫支援模式
k3s -h
  • 執行結果 (示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191003/20121071BQLnUz4vNw.png

k3s Server

  • Server 啟動的參數訂定功能,類似 kubernetes 的 kubadm init 的功能。
k3s server
  • 參數選項
    https://ithelp.ithome.com.tw/upload/images/20191003/20121071NJZ5BmRI70.png

k3s Agent

  • Agent 註冊到 Server 的參數訂定功能,類似 kubernetes 的 kubadm join 的功能。
k3s agent
  • 參數選項
    https://ithelp.ithome.com.tw/upload/images/20191003/20121071HuXbC4ZZwl.png

k3s kubectl

  • 功能上等同 kubernetes 上的 kubectl。
k3s kubectl [function_command] [resource_name]
  • 參數選項
    https://ithelp.ithome.com.tw/upload/images/20191003/20121071UexZfN4947.pnghttps://ithelp.ithome.com.tw/upload/images/20191003/20121071VNJTaBW97h.png

k3s crictl

  • container runtime interface 控制 container 生命的指令
  • 有玩過 Docker 的捧油們應該對這些指令很熟悉吧wwww
k3s crictl [function_command] [resource_name]
  • 參數選項
    https://ithelp.ithome.com.tw/upload/images/20191003/20121071zQrb6XFKOM.png

k3s ctr

  • containerd 的內部功能設定指令
ctr [global options] command [command options]
  • 參數選項
    https://ithelp.ithome.com.tw/upload/images/20191003/201210712148T0BrMj.png

今天測試與功能拆解先到這邊~,相信 k3s 重建與清除安裝是一個有點煩(神煩)的過程,為了確保小夥伴們能讓叢集連線正常,我們就折騰了一個下午,之後後續再來測試一下 k3s kubectlk3s crictl 的功能測試吧。


上一篇
[Day 16]K3s 叢集搭建
下一篇
[Day 18]K3s 部署 - 基礎指令與派送測試
系列文
從開源雲到邊緣運算30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言