久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

Kubernetes Kubectl調(diào)試

2024-01-02 151

Kubectl是Kubernetes的命令行工具,可以用于與Kubernetes集群進行交互和操作。在開發(fā)和調(diào)試過程中,我們經(jīng)常需要使用Kubectl來診斷和解決節(jié)點的問題。本教程將介紹如何使用Kubectl來調(diào)試Kubernetes節(jié)點。

一、準(zhǔn)備

必須擁有一個 Kubernetes 的集群,同時必須配置 kubectl 命令行工具與集群通信。 建議在至少有兩個不作為控制平面主機的節(jié)點的集群上運行本教程。 如果還沒有集群,可以通過 Minikube 構(gòu)建一個自己的集群,或者可以使用下面的 Kubernetes 練習(xí)環(huán)境之一:

  • Killercoda
  • 玩轉(zhuǎn) Kubernetes

Kubernetes 服務(wù)器版本必須不低于版本 1.2. 要獲知版本信息,請輸入 kubectl version.
需要有權(quán)限創(chuàng)建 Pod 并將這些新 Pod 分配到任意節(jié)點。 還需要被授權(quán)創(chuàng)建能夠訪問主機上文件系統(tǒng)的 Pod。

二、調(diào)試節(jié)點

使用 kubectl debug node 命令將 Pod 部署到要排查故障的節(jié)點上,此命令在無法使用 SSH 連接節(jié)點時比較有用。 當(dāng) Pod 被創(chuàng)建時,Pod 會在節(jié)點上打開一個交互的 Shell。 要在名為 “mynode” 的節(jié)點上創(chuàng)建一個交互式 Shell,運行:

kubectl debug node/mynode -it --image=ubuntu
Creating debugging pod node-debugger-mynode-pdx84 with container debugger on node mynode.
If you don't see a command prompt, try pressing enter.
root@mynode:/#

調(diào)試命令有助于收集信息和排查問題。 可能使用的命令包括 ip、ifconfig、nc、ping 和 ps 等等。 還可以從各種包管理器安裝 mtr、tcpdump 和 curl 等其他工具。

這些調(diào)試命令會因調(diào)試 Pod 所使用的鏡像不同而有些差別,并且這些命令可能需要被安裝。

用于調(diào)試的 Pod 可以訪問節(jié)點的根文件系統(tǒng),該文件系統(tǒng)掛載在 Pod 中的 /host 路徑。 如果在 filesystem 名字空間中運行 kubelet, 則正調(diào)試的 Pod 將看到此名字空間的根,而不是整個節(jié)點的根。 對于典型的 Linux 節(jié)點,可以查看以下路徑找到一些重要的日志:

/host/var/log/kubelet.log:負責(zé)在節(jié)點上運行容器的 kubelet 所產(chǎn)生的日志。
/host/var/log/kube-proxy.log:負責(zé)將流量導(dǎo)向到 Service 端點的 kube-proxy 所產(chǎn)生的日志。
/host/var/log/containerd.log:在節(jié)點上運行的 containerd 進程所產(chǎn)生的日志。
/host/var/log/syslog:顯示常規(guī)消息以及系統(tǒng)相關(guān)信息。
/host/var/log/kern.log:顯示內(nèi)核日志。

當(dāng)在節(jié)點上創(chuàng)建一個調(diào)試會話時,需謹(jǐn)記:

  • kubectl debug 根據(jù)節(jié)點的名稱自動生成新 Pod 的名稱;
  • 節(jié)點的根文件系統(tǒng)將被掛載在 /host;
  • 盡管容器運行在主機 IPC、Network 和 PID 名字空間中,但 Pod 沒有特權(quán)。 這意味著讀取某些進程信息可能會失敗,這是因為訪問這些信息僅限于超級用戶 (superuser)。 例如,chroot /host 將失敗。如果需要一個有特權(quán)的 Pod,請手動創(chuàng)建。

三、清理

當(dāng)使用正調(diào)試的 Pod 完成時,將其刪除:

kubectl get pods
NAME READY STATUS RESTARTS AGE
node-debugger-mynode-pdx84 0/1 Completed 0 8m1s
# 相應(yīng)更改 Pod 名稱
kubectl delete pod node-debugger-mynode-pdx84 --now
pod "node-debugger-mynode-pdx84" deleted

注意:如果節(jié)點停機(網(wǎng)絡(luò)斷開或 kubelet 宕機且無法啟動等),則 kubectl debug node 命令將不起作用。 這種情況下請檢查調(diào)試關(guān)閉/無法訪問的節(jié)點。

  • 廣告合作

  • QQ群號:4114653

溫馨提示:
1、本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享網(wǎng)絡(luò)內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。郵箱:2942802716#qq.com(#改為@)。 2、本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)裁,轉(zhuǎn)載請注明出處“站長百科”和原文地址。
Kubernetes Kubectl調(diào)試
上一篇: Debian aptitude操作
Kubernetes Kubectl調(diào)試
下一篇: PHP枚舉方法