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

Kubernetes Windows調(diào)試

2023-12-29 131

Windows 容器與傳統(tǒng)的 Linux 容器有著一些不同之處,因此需要采用特定的技巧和工具來進行調(diào)試。在本教程中,我們將探討一些 Kubernetes 上運行 Windows 容器的調(diào)試技巧,幫助大家更好地理解和解決與 Windows 容器相關(guān)的問題。

一、工作節(jié)點級別排障

1、我的 Pod 都卡在 “Container Creating” 或者不斷重啟。

請確保 pause 鏡像跟 Windows 版本兼容。

注意:如果在使用 containerd 作為容器運行時,那么 pause 鏡像在 config.toml 配置文件的 plugins.plugins.cri.sandbox_image 中指定。

2、我的 Pod 狀態(tài)顯示 ‘ErrImgPull’ 或者 ‘ImagePullBackOff’

保證 Pod 被調(diào)度到兼容的 Windows 節(jié)點上。

二、網(wǎng)絡(luò)排障

1、我的 Windows Pod 沒有網(wǎng)絡(luò)連接

如果使用的是虛擬機,請確保所有 VM 網(wǎng)卡上都已啟用 MAC spoofing。

2、我的 Windows Pod 不能 ping 通外界資源

Windows Pod 沒有為 ICMP 協(xié)議編寫出站規(guī)則,但 TCP/UDP 是支持的。當(dāng)試圖演示與集群外部資源的連接時, 可以把 ping <IP> 替換為 curl <IP> 命令。

如果仍然遇到問題,很可能需要額外關(guān)注 cni.conf 的配置??梢噪S時編輯這個靜態(tài)文件。更新配置將應(yīng)用于新的 Kubernetes 資源。

Kubernetes 的網(wǎng)絡(luò)需求之一是集群通信不需要內(nèi)部的 NAT。 為了遵守這一要求,對于不希望發(fā)生的出站 NAT 通信,這里有一個 ExceptionList。 然而,這也意味著需要從 ExceptionList 中去掉試圖查詢的外部 IP。 只有這樣,來自 Windows Pod 的流量才會被正確地 SNAT 轉(zhuǎn)換,以接收來自外部環(huán)境的響應(yīng)。 就此而言, cni.conf 中的 ExceptionList 應(yīng)該如下所示:

"ExceptionList": [
"10.244.0.0/16", # 集群子網(wǎng)
"10.96.0.0/12", # 服務(wù)子網(wǎng)
"10.127.130.0/24" # 管理(主機)子網(wǎng)
]

3、我的 Windows 節(jié)點無法訪問 NodePort 類型 Service

從節(jié)點本身訪問本地 NodePort 失敗,是一個已知的限制。 可以從其他節(jié)點或外部客戶端正常訪問 NodePort。

4、容器的 vNIC 和 HNS 端點正在被刪除

當(dāng) hostname-override 參數(shù)沒有傳遞給 kube-proxy 時可能引發(fā)這一問題。想要解決這個問題,用戶需要將主機名傳遞給 kube-proxy,如下所示:

C:\k\kube-proxy.exe --hostname-override=$(hostname)

5、我的 Windows 節(jié)點無法通過服務(wù) IP 訪問我的服務(wù)

這是 Windows 上網(wǎng)絡(luò)棧的一個已知限制。但是 Windows Pod 可以訪問 Service IP。

6、啟動 kubelet 時找不到網(wǎng)絡(luò)適配器

Windows 網(wǎng)絡(luò)棧需要一個虛擬適配器才能使 Kubernetes 網(wǎng)絡(luò)工作。 如果以下命令沒有返回結(jié)果(在管理員模式的 shell 中), 則意味著創(chuàng)建虛擬網(wǎng)絡(luò)失敗,而虛擬網(wǎng)絡(luò)的存在是 kubelet 正常工作的前提:

Get-HnsNetwork | ? Name -ieq "cbr0"
Get-NetAdapter | ? Name -Like "vEthernet (Ethernet*"

如果主機的網(wǎng)絡(luò)適配器不是 “Ethernet”,通常有必要修改 start.ps1 腳本的 InterfaceName 參數(shù)。否則,如果虛擬網(wǎng)絡(luò)創(chuàng)建過程出錯,請檢查 start-kubelet.ps1 腳本的輸出。

7、DNS 解析工作異常

查閱這一節(jié)了解 Windows 系統(tǒng)上的 DNS 限制。

8、kubectl port-forward 失敗,錯誤為 “unable to do port forwarding: wincat not found”

在 Kubernetes 1.15 中,pause 基礎(chǔ)架構(gòu)容器 mcr.microsoft.com/oss/kubernetes/pause:3.6 中包含 wincat.exe 來實現(xiàn)端口轉(zhuǎn)發(fā)。 請確保使用 Kubernetes 的受支持版本。如果想構(gòu)建自己的 pause 基礎(chǔ)架構(gòu)容器, 請確保其中包含 wincat。

9、我的 Kubernetes 安裝失敗,因為我的 Windows 服務(wù)器節(jié)點使用了代理服務(wù)

如果使用了代理服務(wù)器,必須定義下面的 PowerShell 環(huán)境變量:

[Environment]::SetEnvironmentVariable("HTTP_PROXY", "http://proxy.example.com:80/", [EnvironmentVariableTarget]::Machine)
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", "http://proxy.example.com:443/", [EnvironmentVariableTarget]::Machine)

三、Flannel故障排查

1、使用 Flannel 時,我的節(jié)點在重新加入集群后出現(xiàn)問題

當(dāng)先前刪除的節(jié)點重新加入集群時, flannelD 嘗試為節(jié)點分配一個新的 Pod 子網(wǎng)。 用戶應(yīng)該在以下路徑中刪除舊的 Pod 子網(wǎng)配置文件:

Remove-Item C:\k\SourceVip.json
Remove-Item C:\k\SourceVipRequest.json

2、Flanneld 卡在 “Waiting for the Network to be created”

關(guān)于這個問題有很多報告; 很可能是 Flannel 網(wǎng)絡(luò)管理 IP 的設(shè)置時機問題。 一個變通方法是重新啟動 start.ps1 或按如下方式手動重啟:

[Environment]::SetEnvironmentVariable("NODE_NAME", "<Windows 工作節(jié)點主機名>")
C:\flannel\flanneld.exe --kubeconfig-file=c:\k\config --iface=<Windows 工作節(jié)點 IP> --ip-masq=1 --kube-subnet-mgr=1

3、我的 Windows Pod 無法啟動,因為缺少 /run/flannel/subnet.env

這表明 Flannel 沒有正確啟動。可以嘗試重啟 flanneld.exe 或者可以將 Kubernetes 控制節(jié)點的 /run/flannel/subnet.env 文件手動拷貝到 Windows 工作節(jié)點上,放在 C:\run\flannel\subnet.env; 并且將 FLANNEL_SUBNET 行修改為不同取值。例如,如果期望節(jié)點子網(wǎng)為 10.244.4.1/24:

FLANNEL_NETWORK=10.244.0.0/16
FLANNEL_SUBNET=10.244.4.1/24
FLANNEL_MTU=1500
FLANNEL_IPMASQ=true
  • 廣告合作

  • 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)載請注明出處“站長百科”和原文地址。