ms 官方文件
kubernetes 原本環境的調整
- CNI 限定 flannel (其實有三種,只是裡面最常見的是 flannel,官網範例也是用 flannel)
flannel 的設定要照官網上的建議修改 net-conf.json 及 cni-conf.json 的內容 - 修改 DaemonSet 的 yaml ,包含 kube-proxy、kube-flannel-ds-amd64、metallb 等
spec.template.spec.nodeSelector 加上 beta.kubernetes.io/os=linux
既有的 DaemonSet / Deployment / StatefulSet 等等,全都要做類似的修改。
之後新增的也都要加上 nodeSelector。
windows server 2019 上的設定 (後面的操作全都是透過 PowerShell )
- 安裝 docker
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
Install-Package -Name Docker -ProviderName DockerMsftProvider Restart-Computer -Force
Start-Service docker
- 取得 kubernetes 的 certificate file
mkdir c:\k
cd c:\k
scp root@[master ip]:/root/.kube/config c:\k\config
- 取得 windows node 上需要的 binary file,例如 kubelet、kube-proxy 等
這邊兩個官網給的說明都有點不太清楚,不知道為什麼不直接提供連結
找 node binaries 裡的 kubernetes-node-windows-amd64.tar.gz
wget -O c:\k\node.tar.gz https://dl.k8s.io/v1.13.6/kubernetes-node-windows-amd64.tar.gz為什麼不一次 cp 三個檔案? 因為 powershell 裡就是沒辦法一次 cp 多個檔案,可能要加參數,不過我懶得查....
tar zxvf node.tar.gz
cd kubernetes\node\bin\
cp kube-proxy.exe c:\k\
cp kubelet.exe c:\k\
cp kubectl.exe c:\k\
- 這邊有一段是 kubernetes 官網上沒有但是 MS 官網有的環境變數設定
$env:Path += ";C:\k"
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\k",[EnvironmentVariableTarget]::Machine)
$env:KUBECONFIG="C:\k\config"
[Environment]::SetEnvironmentVariable("KUBECONFIG", "C:\k\config", [EnvironmentVariableTarget]::User)
- 下載 windows 上的 flannel binary file
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
wget https://raw.githubusercontent.com/Microsoft/SDN/master/Kubernetes/flannel/start.ps1 -o c:\k\start.ps1
- 用 start.ps1 script 啟動 flannel 並帶起 kubelet 及 kube-proxy
.\start.ps1 -ManagementIP
- 如果 flannel 設定都是預設值的話,指令大約如下
-NetworkMode overlay -ClusterCIDR 10.244.0.0/16 -ServiceCIDR 10.96.0.0/12 -KubeDnsServiceIP 10.96.0.10 -LogDir c:\k
剩下是測試驗證了,照 MS 官網的文章,和一般 kubernetes deploy 的方式一樣
不過測試用的 image 感覺下載很慢,可以先用 docker pull 下來後,再跑測試會比較方便一些。
沒有留言:
張貼留言