哈哈哈,我是不是把时间都用到了刀把上😎
遇到问题可以直接复制问题给AI
照着解决就行
我记录一下我遇到的坑
1.子系统就选Ubuntu,别选archLIinux,🥲
2.别用docker Desktop来部署k8s,一堆坑
3.直接在WSL子系统中执行
docker pull kindest/node:v1.31.04.k8s部署文件中的的name和app镜像路径等项目名称相关的都小写
5.镜像推到github之后,可见级别是private的,改成public//也有可能不是坑,总之private的要部署会需要配置复杂
6.WSL2 下的 port-forward 默认不能被 Windows 浏览器直接访问,需要用 WSL2 的 IP 访问。
准备工作
环境:
Windows11 +
WSL2-Ubuntu 24.04 +
k8s(kind) +
docker +
github action
1.安装WSL2-Ubuntu 24.04
直接在软件商店里安装
安装docker
官网
docker官网下载
或者
商店
构建Dockerfile
我用的是VSCode的docker插件生成的
按住快捷键ctrl+shift+p
粘贴或者输入Container images: Build Image
点击
生成成功
安装k8s
docker pull kindest/node:v1.31.0生成k8s部署文件
文件位置:
我用chatGPT生成的
避坑点: name和app和image名称都小写
apiVersion:apps/v1kind:Deploymentmetadata:name:mygospec:replicas:1selector:matchLabels:app:mygotemplate:metadata:labels:app:mygospec:containers:-name:mygoimage:ghcr.io/fenghaoyun-monster/mygo:latestports:-containerPort:8080---apiVersion:v1kind:Servicemetadata:name:mygospec:type:NodePortselector:app:mygoports:-port:8080targetPort:8080在WSL环境创建集群
kind create cluster --name mygo在WSL环境构建项目镜像
docker pull kindest/node:v1.31.0Push 到 GHCR
docker push ghcr.io/fenghaoyun-monster/mygo:latest坑点:
镜像推到github之后,可见级别是private的,改成public
GitHub → Profile → Packages
进入 mygo package → settings → Visibility → set public。
查看节点部署状态
kubectl get pods需要是mygo-xxxx 1/1 Running
访问服务
因为我们的集群是运行在WSL子系统中的,子系统用的是NAT网络,宿主机的代理啥的是用不了的,
浏览器中访问我们的服务我们需要
端口映射
kubectl port-forward svc/mygo 8080:8080让这个命令保持运行
新开一个WSL命令行
运行
ip addr show eth0得到类似
inet 172.24.5.10/20
我们就可以在apifox或者浏览器中访问
http://172.24.5.10:8080/demo就能访问啦