wsl2.k8s.khs1994.com
解析到 WSL2 IPwindows.k8s.khs1994.com
解析到 Windows IP- k8s 入口为 域名
wsl2.k8s.khs1994.com:6443
windows.k8s.khs1994.com:16443(netsh 代理)
- 新建
wsl-k8s
WSL2 发行版用于 k8s 运行,wsl-k8s-data
(可选) WSL2 发行版用于存储数据 - 问题1: WSL2 暂时不能固定 IP,每次重启必须执行
$ kubectl certificate approve csr-XXXX
- WSL2 IP 变化时必须重新执行
./kube-wsl2windows k8s
- WSL2 不要 自定义 DNS 服务器(不要自行编辑 /etc/resolv.conf)
- 本项目与 Docker 桌面版 冲突,请先停止 Docker 桌面版 并执行
$ wsl --shutdown
后使用本项目
etcd
kube-apiserver
kube-controller-manager
kube-scheduler
以上软件部署请参考 kube-server
请查看 README.KERNEL.md
# Windows 中 ~/.wslconfig
[wsl2]
swap=0
$ wsl -d wsl-k8s -- bash -cx 'vim ~/.bashrc'
export PATH=/wsl/wsl-k8s-data/k8s/bin:$PATH
$ ./wsl2/bin/kube-check
$ $env:WSLENV="K8S_ROOT/u:KUBERNETES_VERSION"
$ $env:K8S_ROOT="/wsl/wsl-k8s-data/k8s"
# 请将 1.31.0 替换为实际的 k8s 版本号
$ $env:KUBERNETES_VERSION='1.31.0'
$ wsl -d wsl-k8s -- sh -xc 'mkdir -p ${K8S_ROOT:?err}/bin'
$ wsl -d wsl-k8s -- bash -xc 'cp -a kubernetes-release/release/v${KUBERNETES_VERSION}-linux-amd64/kubernetes/server/bin/{kube-proxy,kubectl,kubelet,kubeadm,mounter} ${K8S_ROOT:?err}/bin'
$ $items="kubelet.config.yaml","kube-proxy.config.yaml","csr-crb.yaml","kubectl.kubeconfig","kube-proxy.kubeconfig","etcd-client.pem","etcd-client-key.pem","ca.pem","ca-key.pem"
$ foreach($item in $items){cp \\wsl$\wsl-k8s\wsl\wsl-k8s-data\k8s\etc\kubernetes\pki\$item systemd/certs}
$ $items="kubectl.kubeconfig","etcd-client.pem","etcd-client-key.pem","ca.pem","ca-key.pem","admin.pem","admin-key.pem"
$ foreach($item in $items){cp \\wsl$\wsl-k8s\wsl\wsl-k8s-data\k8s\etc\kubernetes\pki\$item wsl2/certs}
$ wsl -d wsl-k8s -- sh -xc 'debug=1 ./lnmp-k8s join 127.0.0.1 --containerd --skip-cp-k8s-bin'
在 WSL2
中执行
$ wsl -d wsl-k8s
$ crictl
在 Windows
中执行
$ import-module ./wsl2/bin/WSL-K8S.psm1
$ invoke-crictl