当前位置:   article > 正文

kubernetes 1.18.20 加入windows server 2019节点_windows 2019 kubernate

windows 2019 kubernate

准备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
  • 1

输入’Y’,进行安装。

安装 docker

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

输入’A’,进行安装。

重启

Restart-Computer -Force
  • 1

控制节点操作

在全部控制节点执行

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

下载 Linux 版本的 Flannel

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

配置 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
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

指定flannel 网卡

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

安装 Linux 版本的 Flannel

kubectl create -f kube-flannel.yml
  • 1

安装 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 -
  • 1

安装 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 -
  • 1

注意:若 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"
  • 1
  • 2

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
  • 1
  • 2

windows节点加入到集群

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

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

  • 把c:/etc目录拷贝到 c:/var/lib/kubelet之下
cp -r C:\etc C:\var\lib\kubelet
  • 1
  • 重新把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
  • 1

测试

测试 yaml

vim hello-win.yml
  • 1

输入如下内容

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 }']
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

创建pod

kubectl create -f hello-win.yml
  • 1

参考

添加 Windows 节点

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/601262
推荐阅读
相关标签
  

闽ICP备14008679号