打开网易新闻 查看精彩图片

从Docker到Kubernetes,Avinash Wagh用了10天。不是本地玩票,是真金白银开了AWS EC2实例,在云端搭了一套生产级容器编排环境。成本未知,但心态已经变了:从"跑起来就行"到"怎么管才不乱"。

Kind:把K8s塞进Docker里的"俄罗斯套娃"

新手学Kubernetes最大的门槛不是概念,是资源。买几台云服务器练手?钱包先疼。本地搭虚拟机?风扇起飞。

Kind(Kubernetes in Docker)的解法很刁钻:用Docker容器模拟K8s节点,一台机器就能跑完整集群。Avinash选的是v0.31.0稳定版,curl下载、chmod赋权、mv进系统路径,三步搞定。验证命令只有一行:kind --version,回车能看到版本号就算成功。

这个工具的设计初衷是给CI/CD流水线做测试,但意外成了开发者本机试错的利器。毕竟,谁想在裸机上折腾etcd和kube-apiserver的配置地狱呢。

打开网易新闻 查看精彩图片

安装完Kind和kubectl(版本号用curl动态拉取最新stable),真正的操作才开始。

一条命令起集群,但"Ready"背后藏了多少事

一条命令起集群,但"Ready"背后藏了多少事

Avinash执行kind create cluster后,等了"几分钟"。这几分钟里,Kind自动完成了:拉取kindest/node镜像、启动控制平面容器、配置kubeconfig、部署CoreDNS和kube-proxy。

kubectl get nodes 的输出很简洁:kind-control-plane,状态Ready,角色control-plane。但单节点集群意味着主节点也跑工作负载,生产环境绝不会这么干——这是Kind的局限,也是它的诚实。

接下来是验证环节。他部署了一个Nginx:kubectl create deployment nginx --image=nginx,再暴露为NodePort服务。 kubectl get pods 看到容器Running, kubectl get svc 拿到端口映射,才算打通任督二脉。

打开网易新闻 查看精彩图片

这里有个细节:EC2的安全组默认不开端口,所以用了kubectl port-forward service/nginx 8080:80,把云主机的8080映射到集群内部的80。访问地址是http://:8080,没配域名,没上HTTPS,纯IP裸奔——开发测试的标准姿势。

从"能跑"到"能管",心态切换比技术更难

从"能跑"到"能管",心态切换比技术更难

Avinash在文末总结了一句: mindset从"Running containers with Docker"变成"Orchestrating containers using Kubernetes"。

这个转变的代价是认知负荷陡增。Docker问你"这个容器怎么跑",K8s问的是"这些容器怎么调度、怎么自愈、怎么扩缩容、怎么服务发现"。Kind屏蔽了底层复杂度,但kubectl的每一个子命令都在提醒你:现在是在操作一个分布式系统,不是单机进程。

他目前的进度是:.NET开发背景,10天云原生转型,LinkedIn和GitHub全程公开记录。下一步是什么?他没说。但单节点Kind集群显然只是起点——多节点拓扑、持久化存储、Ingress控制器、Helm chart,随便哪个都能再烧掉几个周末。

以及那个悬而未决的问题:EC2实例跑了多久?账单金额有没有让他后悔没先用本地Docker Desktop的K8s功能?