kubernetes 1.18.20 加入windows server 2019节点

准备windows server 2019主机

安装windows server 2019 虚拟机。
如果使用 VXLAN/覆盖(Overlay)联网设施,必须安装 KB4489899,见官方文档
可下载、安装最新独立程序包,若安装时提示“此更新不适用于此系统”,没有关系,点击“开始菜单”->“设置”->”更新和安全”,立即更新、重启操作系统。

建议使用 datacenter版本,不能使用 essential及以下版本。
建议更新到最新状态。

windows server 2019安装docker

参考微软官方文档windows server安装docker
官方文档未指定版本,建议确定版本

安装模块 DockerMsftProvider

Install-Module -Name DockerMsftProvider -Repository PSGallery -Force

输入’Y’,进行安装。

安装 docker

Install-Package -Name docker -RequiredVersion 19.03 -ProviderName DockerMsftProvider 

输入’A’,进行安装。

重启

Restart-Computer -Force

控制节点操作

在全部控制节点执行

sudo sysctl net.bridge.bridge-nf-call-iptables=1

下载 Linux 版本的 Flannel

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

配置 Linux 版本的 Flannel

修改 kube-flannel.yml 清单中的 net-conf.json 部分,将 VNI 设置为 4096,并将 Port 设置为 4789。 结果看起来像下面这样:


net-conf.json: |
    {
      "Network": "10.244.0.0/16",
      "Backend": {
         "Type": "vxlan",
         "VNI": 4096,
         "Port": 4789
    }
}

指定flannel 网卡

如果有多个网卡,注意指定。
在这里插入图片描述

安装 Linux 版本的 Flannel

kubectl create -f kube-flannel.yml

安装 windows 节点需要的kube-proxy

注意版本,这里使用版本v1.18.20。

curl -L https://github.com/kubernetes-sigs/sig-windows-tools/releases/download/v0.1.5/kube-proxy.yml | sed 's/VERSION/v1.18.20/g' | kubectl apply -f -

安装 windows 节点需要的flannel

注意flannel网卡,这里使用网卡Ethernet0

curl -L https://github.com/kubernetes-sigs/sig-windows-tools/releases/download/v0.1.5/flannel-overlay.yml | sed 's/Ethernet/Ethernet0/g' | kubectl apply -f -

注意:若 windows节点上容器不能ping node_ip,可修改flannel-overlay.yml 中配置,增加节点网段:

#$cniJson.delegate.policies[0].Value.ExceptionList = $serviceSubnet, $podSubnet
$cniJson.delegate.policies[0].Value.ExceptionList = $serviceSubnet, $podSubnet, "192.168.3.0/24"

windows 节点操作

windows安装 wins、kubelet 和 kubeadm

curl.exe -LO https://github.com/kubernetes-sigs/sig-windows-tools/releases/download/v0.1.5/PrepareNode.ps1
.\PrepareNode.ps1 -KubernetesVersion v1.18.20

windows节点加入到集群

 kubeadm  join 192.168.146.131:6443 --token h1czvj.pksgum8s9yw3a683 --discovery-token-ca-cert-hash sha256:33bec7e235a7c621c83ec24ff3992df60754d90828c754192c1ab67d54050e3a 

如果加入集群有bug,证书文件路径不对。
第一次加入失败后,执行下面2步:

  • 把c:/etc目录拷贝到 c:/var/lib/kubelet之下
cp -r C:\etc C:\var\lib\kubelet
  • 重新把windows节点加入到集群,需跳过preflight,control-plane-prepare
 kubeadm  join 192.168.146.131:6443 --token h1czvj.pksgum8s9yw3a683 --discovery-token-ca-cert-hash sha256:33bec7e235a7c621c83ec24ff3992df60754d90828c754192c1ab67d54050e3a --skip-phases=preflight,control-plane-prepare

测试

测试 yaml

vim hello-win.yml

输入如下内容

apiVersion: v1
kind: Pod
metadata:
  name: hello
spec:
  containers:
  - name: hello-c
    image: mcr.microsoft.com/windows/servercore:1809
    resources:
      limits:
        memory: "2000Mi"
      requests:
        memory: "100Mi"
    command: ['powershell.exe','-command','while(1 -le 2)  {  echo hello; Get-Date; Start-Sleep  -s 3 }']

创建pod

kubectl create -f hello-win.yml

参考

添加 Windows 节点

Kubernetes 对 Windows 的支持
Kubernetes 中 Windows 容器的调度指南

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值