Kubernetes Windows Hyper-V Pod中没有网络

时间:2018-08-01 13:23:34

标签: windows docker kubernetes hyper-v

所以我的目标是使用Windows Server 1803版工作程序,以便它可以运行Windows 2016等旧版本的映像。

我的主节点和工作节点都处于离线环境。

为此,我遵循了tutorial的Host-gateway设置,并且我还将Ubuntu主节点和Windows节点上的Kubernetes二进制版本升级到v1.10.6,因为v1.9不支持hyperv隔离。

使用选项--isolation=hyperv,我可以运行此类图像并通过容器172 ...地址与其连接,但这直接是通过Kubernetes外部的docker。

我还能够将此工作程序节点添加到Ubuntu 16.04 master,并部署基于本机Windows 1803映像的pod和服务,并从master与它们连接。

但是当我在启用hyperv的Windows上启动kubelet时:

    c:\k\kubelet.exe --hostname-override=$(hostname) --v=6 `
    --pod-infra-container-image=kubeletwin/pause --resolv-conf="" `
    --allow-privileged=true --enable-debugging-handlers `
    --cluster-dns=$KubeDnsServiceIp --cluster-domain=cluster.local `
    --kubeconfig=c:\k\config --hairpin-mode=promiscuous-bridge `
    --image-pull-progress-deadline=20m --cgroups-per-qos=false `
    --feature-gates=HyperVContainer=true --enforce-node-allocatable="" `
    --network-plugin=cni --cni-bin-dir="c:\k\cni" --cni-conf-dir "c:\k\cni\config"

并应用此Yaml:https://pastebin.com/raw/bbibyb9s

然后,每个Pod,部署,服务都说明一切都成功,但是我没有从任何地方连接到此Pod,即使从Windows Worker节点上也没有连接。

当我通过以下方式检查其路线时:

kubectl exec -it win-webserver-d6b66d575-svc55 -c windowswebserver route print

我没有看到外部连接。

我使用host-gw的路由也有所不同,因为网关192.168.1.2对我不起作用,所以我对此进行了更改:

route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.2 dev ens160

为此:

route add -net 192.168.1.0 netmask 255.255.255.0 gw <WINDOWS_NODE_IP> dev ens160

我在Windows上也类似地更改了AddRoutes.ps1。这适用于非超级豆荚。

当我在HostConfig中检查此不起作用的Docker容器时

“ NetworkMode”的值为“ none”,

在没有Hyperv Pod容器的情况下工作

"NetworkMode": "container:0bbdc2d0c07c553edc755ecd24fab932ad26ca78d17f9d6ab4e377fb1fdef73d",

在非Kubernetes上,但在hyperv容器上有

"NetworkMode": "default".

0 个答案:

没有答案