在深入 Kubernetes 的技术细节之前,首先需要解决一个基础但关键的问题:如何搭建并拥有属于自己的 Kubernetes 环境。 无论是本地开发、测试,还是面向生产的部署,Kubernetes 提供了多种灵活部署方式,以满足不同场景下的需求。

把 Kubernetes 安装想象成一场旅行,你可以根据你的目的——是轻松体验、认真办事,还是深度探险——来选择不同的交通方式。 基本上,你有三种主流的选择:在线沙盒环境,托管服务,和 自建集群。
对于初学者来说,最快、最省事的方式莫过于使用在线的“Kubernetes 沙盒环境”。这些平台就像是为你准备好的一个沙盒,里面有现成的玩具,让你无需自己动手搭建,就能立即开始玩耍。
你可以把它们看作是临时的试驾服务。比如 Magic Sandbox 或 Play with Kubernetes,你只需要注册一个账号,几分钟之内就能得到一个功能齐全的 Kubernetes 集群。 这种方式非常适合快速体验和学习,但因为有功能和时间限制,并不适合用来跑正式的应用。
当你想在自己的电脑上正经地敲代码和测试时,一个本地的开发集群是必不可少的。Docker Desktop 就是这个场景下的绝佳选择。它像一辆小巧的卡丁车,能让你的笔记本电脑(无论是 Mac 还是 Windows)上轻松跑起一个单节点的 Kubernetes 集群。
安装过程非常直观。首先,从 Docker 官网下载并安装 Docker Desktop。安装完成后,你会看到一个可爱的鲸鱼图标。点击它,进入“设置”(Settings),找到“Kubernetes”标签页,然后勾选“Enable Kubernetes”选项。
稍等片刻,Docker Desktop 就会在后台帮你配置好一切。要验证你的迷你集群是否已准备就绪,可以打开终端(命令行工具),输入以下命令:
|$ kubectl get nodes
如果一切顺利,你会看到类似这样的输出,告诉你有一个名为 docker-desktop 的节点已经准备好了(Ready):
|NAME STATUS ROLES AGE VERSION docker-desktop Ready master 1d v1.25.4
恭喜!你现在拥有了一个可以在自己电脑上随意折腾的 Kubernetes 环境了。
当你准备动真格,想要开发和部署实际的、需要被用户访问的应用时,“托管 Kubernetes 服务”就是你的最佳选择。这就像是雇佣了一个专业的司机和车队,他们会处理好所有关于车辆维护、路线规划的烦心事,你只需要专注于你的目的地就行。
以谷歌的 GKE (Google Kubernetes Engine) 为例,它能让你在几分钟内获得一个生产级别的集群。当然,你需要先有一个设置好支付方式的谷歌云(GCP)账号。
创建集群的过程通常在网页上完成。登录 GCP 控制台,找到“Kubernetes Engine”页面,然后点击“创建集群”。你会看到一个表单,让你填写集群的名字、选择区域等。对于初学者,大部分选项保持默认即可。点击“创建”,GKE 就会开始为你组建集群。
集群准备好后,最关键的一步来了:如何让你的电脑和这个远在云端的集群建立连接?GKE 会为你生成一条专用的 gcloud 命令。你只需要点击集群旁边的“连接”按钮,然后复制那条命令。它看起来会像这样:
|$ gcloud container clusters get-credentials your-cluster-name --zone your-zone
回到你电脑的终端,粘贴并运行这条命令。它会自动配置你的 kubectl,让它知道如何找到并认证你的 GKE 集群。这个配置信息,我们称之为“上下文”(Context)。
现在,你可以用同样的命令来验证你的云端集群了:
|$ kubectl get nodes
这次,你会看到 GKE 为你创建的一组节点。这意味着你的 kubectl 已经成功地从指挥本地的 docker-desktop 集群,切换到了指挥云端的 GKE 集群。
在决定自己从零开始搭建一个集群之前,问问自己:投入大量时间去维护一个复杂的系统,真的是我当前最有价值的工作吗?如果答案是否定的,那么 GKE 这样的托管服务绝对值得你优先考虑。
如果你是那种喜欢把所有东西都拆开来一探究竟的探索者,或者你的业务场景有非常特殊的需求,那么“亲力亲为(DIY)”的方式可能最适合你。
自己动手搭建 Kubernetes 集群,就像是亲自设计和组装一辆赛车。这个过程无疑是最复杂的,但也能让你对 Kubernetes 有着无比深刻的理解。
像 kubeadm 这样的工具,就是帮你完成这个复杂过程的得力助手。
你可能已经注意到了,无论是本地的 Docker Desktop,还是云端的 GKE,我们都用了同一个命令 kubectl 来与它们沟通。kubectl 就是 Kubernetes 的标准命令行客户端,是那根可以指挥所有类型集群的“魔法棒”。
它通过“上下文”(Context)来切换目标集群。你可以想象你的电视遥控器(kubectl)有一个按钮,可以让你在客厅的电视(Docker Desktop 集群)和卧室的电视(GKE 集群)之间自由切换。
现在,你已经了解了获取 Kubernetes 环境的几种主要途径和具体操作:
请根据你当前的需求,选择最适合你的那条路,然后开启你的 Kubernetes 探索之旅吧!