![](/img/trans.png)
[英]Kubernetes Kube-Proxy Server: Can it run without iptables' nat module?
[英]kube-proxy issues - trying to add a windows worker node to a kubernetes cluster
我正在嘗試使用來自此處的mcr.microsoft.com/windows/servercore:1809
圖像在kubernetes 集群中運行基於 Windows(服務器 2019)的 docker 容器
該節點被集群識別並顯示為就緒。
當我嘗試將任何 pod 部署到集群時,它運行沒有問題,但無法訪問與服務關聯的公開端口。
在 Windows 工作節點上運行kube-proxy
似乎存在問題。 該節點的日志顯示:
Failed create pod sandbox: rpc error: code = Unknown desc = failed to start sandbox container for pod "kube-proxy-nwclf": Error response from daemon: network host not found
關於我在這里出錯的任何想法?
更新:剛剛注意到 Windows 機器上的 kube-proxy pod 有一個基於集群的 IP 地址( 10.244.5.2
),而不是來自我的本地網絡( 192.168.1.X
)。 這與找出問題所在有關嗎?
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
kube-system kube-proxy-9jq8w 1/1 Running 1 15d 192.168.1.9 k8s-mr <none> <none>
kube-system kube-proxy-h5gx7 0/1 ContainerCreating 0 13s 10.244.5.2 wins2019-worker <none> <none>
來自描述 pod 的詳細信息如下所示。
user@k8s-mr:~/kube_projects/testdemo-4.1/app$ kubectl -n kube-system describe pod kube-proxy-nwclf
Name: kube-proxy-nwclf
Namespace: kube-system
Priority: 2000001000
PriorityClassName: system-node-critical
Node: wins2019-worker/192.168.1.10
Start Time: Wed, 17 Apr 2019 13:35:30 +0100
Labels: controller-revision-hash=b7775b676
k8s-app=kube-proxy
pod-template-generation=1
Annotations: <none>
Status: Pending
IP: 192.168.1.10
Controlled By: DaemonSet/kube-proxy
Containers:
kube-proxy:
Container ID:
Image: k8s.gcr.io/kube-proxy:v1.14.0
Image ID:
Port: <none>
Host Port: <none>
Command:
/usr/local/bin/kube-proxy
--config=/var/lib/kube-proxy/config.conf
--hostname-override=$(NODE_NAME)
State: Waiting
Reason: ContainerCreating
Ready: False
Restart Count: 0
Environment:
NODE_NAME: (v1:spec.nodeName)
Mounts:
/lib/modules from lib-modules (ro)
/run/xtables.lock from xtables-lock (rw)
/var/lib/kube-proxy from kube-proxy (rw)
/var/run/secrets/kubernetes.io/serviceaccount from kube-proxy-token-f4tqx (ro)
Conditions:
Type Status
Initialized True
Ready False
ContainersReady False
PodScheduled True
Volumes:
kube-proxy:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: kube-proxy
Optional: false
xtables-lock:
Type: HostPath (bare host directory volume)
Path: /run/xtables.lock
HostPathType: FileOrCreate
lib-modules:
Type: HostPath (bare host directory volume)
Path: /lib/modules
HostPathType:
kube-proxy-token-f4tqx:
Type: Secret (a volume populated by a Secret)
SecretName: kube-proxy-token-f4tqx
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations:
CriticalAddonsOnly
node.kubernetes.io/disk-pressure:NoSchedule
node.kubernetes.io/memory-pressure:NoSchedule
node.kubernetes.io/network-unavailable:NoSchedule
node.kubernetes.io/not-ready:NoExecute
node.kubernetes.io/pid-pressure:NoSchedule
node.kubernetes.io/unreachable:NoExecute
node.kubernetes.io/unschedulable:NoSchedule
Events:
Type Reason Age From Message
------
Normal Scheduled 70s default-scheduler Successfully assigned kube-system/kube-proxy-nwclf to wins2019-worker
Normal SandboxChanged 2s (x12 over 61s) kubelet, wins2019-worker Pod sandbox changed, it will be killed and re-created.
Warning FailedCreatePodSandBox 0s (x13 over 62s) kubelet, wins2019-worker Failed create pod sandbox: rpc error: code = Unknown desc = failed to start sandbox container for pod "kube-proxy-nwclf": Error response from daemon: network host not found
現在修復了,我誤解了kube-proxy
根本不應該在 Windows 節點上運行。
我不得不修改 kubernetes master 並應用NodeSelector
以確保根據每個節點的操作系統為每個節點設置適當的 pod。
wget https://raw.githubusercontent.com/Microsoft/SDN/master/Kubernetes/flannel/l2bridge/manifests/node-selector-patch.yml
kubectl patch ds/kube-proxy --patch "$(cat node-selector-patch.yml)" -n=kube-system
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.