1. 为什么要在Win10上搭建单机k8s环境最近两年Kubernetes简称k8s已经成为云原生技术的标配但很多刚入门的朋友经常问我我只是个普通开发者没有多台服务器能不能在本地电脑上体验k8s 答案当然是肯定的。我在帮团队新人搭建环境时发现用Windows 10专业版配合Docker Desktop部署单机版k8s是最适合个人开发测试的方案。相比云服务器动辄几十块钱一个月的成本本地环境完全免费还能随时暂停不占资源。这里要特别说明的是v1.31.2这个版本是经过我实测最稳定的选择。之前尝试过更新的v1.32.x系列结果在Dashboard集成时频繁报证书错误。而太老的版本又缺少对Windows的优化支持。单机部署最大的优势是能快速验证业务逻辑比如我上周调试一个微服务链路就在本地k8s里完整复现了生产环境的Ingress配置。2. 环境准备阶段的三个关键点2.1 Windows功能组件检查很多人第一步就会踩坑。在安装Docker Desktop之前必须确保开启了Hyper-V和容器功能。我见过不下十个同事因为漏掉这步导致k8s启动失败。具体操作搜索并打开启用或关闭Windows功能勾选以下三项Hyper-V包括所有子选项容器Windows子系统LinuxWSL注意修改后需要重启电脑才能生效建议先把其他工作保存好。2.2 Docker Desktop的版本玄学官方最新版不一定最稳定经过反复测试4.39.x版本与k8s v1.31.2兼容性最好。安装完成后别急着启动先做这个关键设置# 修改daemon.json配置路径%programdata%\docker\config\daemon.json { registry-mirrors: [https://registry.docker-cn.com], insecure-registries: [], debug: false, experimental: false, features: { buildkit: true } }2.3 系统资源分配建议8GB内存的电脑建议这样分配Docker内存限制4GBCPU核心数2核以上Swap1GB在Docker设置 - Resources中可以调整这些参数。我曾经在低配笔记本上测试当内存分配不足时kube-apiserver会频繁崩溃。3. 安装k8s核心组件的避坑实践3.1 一键安装背后的细节点击Docker Dashboard的Kubernetes启用按钮后实际发生了这些事自动下载kubectl、kubelet等工具链创建单节点集群control-plane和worker合二为一部署CoreDNS、kube-proxy等基础组件常见问题排查# 查看组件状态重点看STATUS是否为Running kubectl get pods -n kube-system # 查看日志例如发现coredns不断重启时 kubectl logs -f coredns-xxxxxx -n kube-system3.2 国内镜像加速方案由于默认镜像仓库gcr.io在国内无法访问这里分享我的解决方案使用阿里云镜像仓库替换提前拉取关键镜像节省部署时间docker pull registry.aliyuncs.com/google_containers/pause:3.7 docker tag registry.aliyuncs.com/google_containers/pause:3.7 k8s.gcr.io/pause:3.73.3 网络插件选择Docker Desktop内置的k8s默认使用kindnet但有时会出现服务发现异常。可以改用Calicokubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml4. Dashboard可视化监控实战4.1 部署Dashboard的注意事项官方yaml需要做三处修改将image替换为阿里云镜像增加NodePort暴露端口调整RBAC权限原始配置过于严格这是我修改后的关键部分spec: template: spec: containers: - name: kubernetes-dashboard image: registry.aliyuncs.com/google_containers/dashboard:v2.5.1 ports: - containerPort: 8443 hostPort: 32443 # 新增这行4.2 两种登录方式对比Token方式适合临时访问# 创建临时token有效期8小时 kubectl -n kubernetes-dashboard create token admin-user配置文件方式适合长期使用生成admin-user的kubeconfig文件将证书数据base64解码后保存在Dashboard登录页上传配置文件实测发现配置文件方式更稳定不会出现token过期导致操作中断的情况。4.3 监控数据可视化技巧默认Dashboard只显示基础资源指标要启用完整监控需要部署metrics-server安装Prometheus插件配置Grafana数据源分享一个快速安装metrics-server的命令kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml5. 常见问题解决方案问题1kubectl命令无响应检查Docker是否运行执行kubectl cluster-info看能否正常返回问题2Dashboard无法访问确认端口转发是否生效检查防火墙是否放行32443端口问题3Pod一直处于Pending状态# 查看详细事件 kubectl describe pod pod-name # 常见原因是资源不足或镜像拉取失败最后提醒大家每次关机前建议执行kubectl drain安全移除工作负载避免下次启动时出现状态不一致的情况。这套环境我已经稳定使用半年多配合VS Code的Kubernetes插件本地开发效率提升非常明显。
【避坑指南】Win10单机快速搭建k8s v1.31.2与Dashboard可视化监控
1. 为什么要在Win10上搭建单机k8s环境最近两年Kubernetes简称k8s已经成为云原生技术的标配但很多刚入门的朋友经常问我我只是个普通开发者没有多台服务器能不能在本地电脑上体验k8s 答案当然是肯定的。我在帮团队新人搭建环境时发现用Windows 10专业版配合Docker Desktop部署单机版k8s是最适合个人开发测试的方案。相比云服务器动辄几十块钱一个月的成本本地环境完全免费还能随时暂停不占资源。这里要特别说明的是v1.31.2这个版本是经过我实测最稳定的选择。之前尝试过更新的v1.32.x系列结果在Dashboard集成时频繁报证书错误。而太老的版本又缺少对Windows的优化支持。单机部署最大的优势是能快速验证业务逻辑比如我上周调试一个微服务链路就在本地k8s里完整复现了生产环境的Ingress配置。2. 环境准备阶段的三个关键点2.1 Windows功能组件检查很多人第一步就会踩坑。在安装Docker Desktop之前必须确保开启了Hyper-V和容器功能。我见过不下十个同事因为漏掉这步导致k8s启动失败。具体操作搜索并打开启用或关闭Windows功能勾选以下三项Hyper-V包括所有子选项容器Windows子系统LinuxWSL注意修改后需要重启电脑才能生效建议先把其他工作保存好。2.2 Docker Desktop的版本玄学官方最新版不一定最稳定经过反复测试4.39.x版本与k8s v1.31.2兼容性最好。安装完成后别急着启动先做这个关键设置# 修改daemon.json配置路径%programdata%\docker\config\daemon.json { registry-mirrors: [https://registry.docker-cn.com], insecure-registries: [], debug: false, experimental: false, features: { buildkit: true } }2.3 系统资源分配建议8GB内存的电脑建议这样分配Docker内存限制4GBCPU核心数2核以上Swap1GB在Docker设置 - Resources中可以调整这些参数。我曾经在低配笔记本上测试当内存分配不足时kube-apiserver会频繁崩溃。3. 安装k8s核心组件的避坑实践3.1 一键安装背后的细节点击Docker Dashboard的Kubernetes启用按钮后实际发生了这些事自动下载kubectl、kubelet等工具链创建单节点集群control-plane和worker合二为一部署CoreDNS、kube-proxy等基础组件常见问题排查# 查看组件状态重点看STATUS是否为Running kubectl get pods -n kube-system # 查看日志例如发现coredns不断重启时 kubectl logs -f coredns-xxxxxx -n kube-system3.2 国内镜像加速方案由于默认镜像仓库gcr.io在国内无法访问这里分享我的解决方案使用阿里云镜像仓库替换提前拉取关键镜像节省部署时间docker pull registry.aliyuncs.com/google_containers/pause:3.7 docker tag registry.aliyuncs.com/google_containers/pause:3.7 k8s.gcr.io/pause:3.73.3 网络插件选择Docker Desktop内置的k8s默认使用kindnet但有时会出现服务发现异常。可以改用Calicokubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml4. Dashboard可视化监控实战4.1 部署Dashboard的注意事项官方yaml需要做三处修改将image替换为阿里云镜像增加NodePort暴露端口调整RBAC权限原始配置过于严格这是我修改后的关键部分spec: template: spec: containers: - name: kubernetes-dashboard image: registry.aliyuncs.com/google_containers/dashboard:v2.5.1 ports: - containerPort: 8443 hostPort: 32443 # 新增这行4.2 两种登录方式对比Token方式适合临时访问# 创建临时token有效期8小时 kubectl -n kubernetes-dashboard create token admin-user配置文件方式适合长期使用生成admin-user的kubeconfig文件将证书数据base64解码后保存在Dashboard登录页上传配置文件实测发现配置文件方式更稳定不会出现token过期导致操作中断的情况。4.3 监控数据可视化技巧默认Dashboard只显示基础资源指标要启用完整监控需要部署metrics-server安装Prometheus插件配置Grafana数据源分享一个快速安装metrics-server的命令kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml5. 常见问题解决方案问题1kubectl命令无响应检查Docker是否运行执行kubectl cluster-info看能否正常返回问题2Dashboard无法访问确认端口转发是否生效检查防火墙是否放行32443端口问题3Pod一直处于Pending状态# 查看详细事件 kubectl describe pod pod-name # 常见原因是资源不足或镜像拉取失败最后提醒大家每次关机前建议执行kubectl drain安全移除工作负载避免下次启动时出现状态不一致的情况。这套环境我已经稳定使用半年多配合VS Code的Kubernetes插件本地开发效率提升非常明显。