![]()
从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"背后藏了多少事
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功能?
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.