iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 18
0
DevOps

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

[Day 18]K3s 部署 - 基礎指令與派送測試

  • 分享至 

  • xImage
  •  

上篇重建叢集服務(自殘行為)與 k3s基礎功能指令介紹,讓各位先準備一下玩壞之後怎麼修復的維修想法,從今天開始我們正式來處理一下叢集基本指令的使用,並將一些基礎的 Pod 派送功能帶上,讓各位對於切入 k3s叢集有點概念與架構,基本上本篇的東西會跟 kubernetes / Docker 操作指令類似,有基本觀念的基本上 view 過即可,功能上是完全參造 kubernetes 的架構執行方案的。

Node 狀態

檢查指令

  • 基礎與快速檢視 Node

簡易檢查

  • 操作指令
k3s kubectl get node
  • 指令結果(示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191004/20121071L8fM5TPKju.png

進階檢查

  • 操作指令
k3s kubectl get node -o wide
  • 指令結果(示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191004/20121071e31HPLQ0Mo.png

詳細檢視指令

檢視全部 Node

  • 操作指令
k3s kubectl describe node

檢視指定 Node

  • 操作指令
k3s kubectl describe node ${Node-Name}
  • 指令結果(示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191004/20121071d2sPX3M9Di.png

Pod 派送/刪除

  • 基礎與快速檢視 Pod

Pod 設計

  • yaml 檔案設計
apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  namespace: default
  labels:
    app: nginx
spec:
  containers:
  - image: nginx:latest
    name: nginx

派送指令

  • 操作指令
k3s kubectl create -f ${pod-file}
  • 指令結果(示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191004/20121071ib4Q0scEhd.png

檢查指令

簡易檢查

  • 操作指令
k3s kubectl get pod
  • 指令結果(示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191004/20121071B3MWZtIWLI.png

進階檢查

  • 操作指令
k3s kubectl get pod -o wide
  • 指令結果(示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191004/20121071ce4R2jjHYm.png

這邊可以看到 Pod 具有 Pod Network (CNI -> Flannel)

詳細檢視指令

檢視全部 Pod

  • 操作指令
k3s kubectl describe pod

檢視指定 Pod

  • 操作指令
k3s kubectl describe pod ${Pod-Name}
  • 指令結果(示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191004/20121071Gqpl8f4A9D.png

進入 Pod Backend 設定

  • 操作指令
k3s kubectl exec -ti ${pod-name} bash
  • 指令結果(示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191004/20121071UQcUGqNUj6.png

刪除指令

基礎刪除指令

  • 操作指令
k3s kubectl delete pod ${pod-name}
  • 指令結果(示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191004/20121071qistLv5jNB.png

強制刪除指令

  • 操作指令
k3s kubectl delete pod ${pod-name} --grace-period=0 --force
  • 指令結果(示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191004/20121071NHqnzAUaEl.png

Container / Pod 狀態指令 (crictl)

  • 這邊是獨立在 Agent 端自身的 Containerd 使用,所有的 刪除停止 Pod / Container 皆會因為 k3s 叢集監控而重新啟動。

檢視 Image

  • 操作指令
k3s crictl images
  • 指令結果(示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191004/20121071D9mTh6NApy.png

下載 Image

  • 操作指令
k3s crictl pull ${Image-Name}
  • 指令結果(示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191004/20121071j0jkeJ5Y6f.png

刪除 Image

  • 操作指令
k3s crictl rmi ${Image-Id}
  • 指令結果(示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191004/20121071S3r4TO4whk.png

檢視 Container

所有執行中的 Pod

  • 操作指令
k3s crictl ps
  • 指令結果(示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191004/20121071pjcO3ZRxQX.png

特定 Pod 的配置訊息

k3s crictl inspect ${container-id}
  • 指令結果(示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191004/20121071Sjf0Vy4MO8.png

Container 消耗系統資源狀態

全部 Container

  • 操作指令
k3s crictl stats
  • 指令結果(示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191004/20121071WG1cNdPOJR.png

指定 Container

  • 操作指令
k3s crictl stats -id ${pod-id}
  • 指令結果(示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191004/201210719dipVKhLyR.png

停止 Container

  • 操作指令
k3s crictl stop ${container-id} 
  • 指令結果(示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191004/20121071hpdcV7e3RL.png

檢視 Pod

所有執行中的 Pod

  • 操作指令
k3s crictl pods
  • 指令結果(示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191004/201210716wnze7KDNs.png

特定 Pod 的配置訊息

  • 操作指令
k3s crictl inspectp ${pod-id}
  • 指令結果(示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191004/201210714M2GwfcEtS.png

Pod 消耗系統資源狀態

  • 操作指令
k3s crictl stats -p ${pod-id}
  • 指令結果(示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191004/20121071e5uWwCZHvU.png

停止 Pod

  • 操作指令
k3s crictl stopp ${pod-id}
  • 指令結果(示意圖)
    https://ithelp.ithome.com.tw/upload/images/20191004/20121071iHDiVMgrm9.png

刪除 Pod

  • Pod 刪除前,需是在 停止狀態,不然就用 ** -f ** 強制刪除 Pod。
k3s crictl rmp ${pod-id}
  • 刪除異常
    https://ithelp.ithome.com.tw/upload/images/20191004/20121071cuGhP8jWmV.png
  • 正常刪除
    https://ithelp.ithome.com.tw/upload/images/20191004/20121071pzloBhNi5s.png
  • 強制刪除
    https://ithelp.ithome.com.tw/upload/images/20191004/20121071buZLYRhCcy.png

今天介紹完 node 檢視 / pod 派送與調度等功能,並實際使用了一下 k3s crictl 與 docker 指令 之間的差異性, 發現對於 kubernetes 的 kubectl 熟練的人 k3s 操作只要前面加一個 k3s 即可(基本上就是無痛移轉),而對於 Docker 指令足夠了解的 k3s crictl 基本上就是你的 docker ooxx的指令再多包一層Pod的監視功能,後續文章將再深入 kubernetes 的 Deployment、Service、RollingUpdate、Affinity等功能前進,實際驗證 k3s 與 kubernetes 的差異性。


上一篇
[Day 17]K3s 叢集重建與基礎指令簡介
下一篇
[Day 19]K3s 部署 - Pod 與 Service 功能校驗
系列文
從開源雲到邊緣運算30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言