你可能已经在不同的资料中看到了k8s这个词,并想知道它是什么意思。好吧,它意味着Kubernetes。这个缩写由以下部分组成。
- "k"是Kubernetes的第一个字母。
- "8"是该词中第一个和最后一个之间的字母数,以及
- "s"是最后一个字母。
现在,让我们来看看Kubernetes的用途,以了解其核心优势和使用领域。
容器无处不在。使用像Docker这样的容器技术,你可以通过一个命令在一个完全隔离的环境中启动应用程序。Kubernetes用于容器编排,将多台机器组合成一个集群,并分发有状态的容器。
在这篇博文中,你会学到:
- 如何在你的本地设备上玩转Kubernetes
- 如何在Kubernetes集群中启动应用程序
- 最受欢迎的管理型Kubernetes提供商,以大规模运行你的应用程序
本教程将主要关注使用shell而不是UI,因为它允许你在本地和远程Kubernetes集群中使用所有的例子。
如何在你的本地设备上设置Kubernetes
开始的最简单方法是安装Docker。启动后,你可以打开Docker,进入Settings -> Kubernetes ,并在本地启用Kubernetes。确认后,你的Kubernetes集群就会启动了。
与Kubernetes集群通信的最简单方法是使用kubectl。因此,如果你还没有做,请安装kubectl。
此外,我建议你设置kubectx,它允许你在不同的集群之间切换。为了使Kubernetes的部署变得简单,你还应该安装Helm,它可以使你用一个命令来部署更复杂的应用程序,这些应用程序由多个部分组成。
现在,Docker显示Kubernetes集群在你的设置中已经准备好了,然后你可以启动一些应用程序。让我们看看所有可用的Kubernetes语境:
# Show all available contexts
kubectx
> development
> docker-desktop
# Select local docker desktop context
kubectx docker-desktop
如何在Kubernetes集群中启动应用程序
让我们建立一个JupyterHub,允许一个团队使用Jupyter笔记本,这是机器学习和Python的最流行的平台之一:
# add helm repository
helm repo add jupyterhub https://jupyterhub.github.io/helm-chart/
# start containers
helm install my-jupyterhub jupyterhub/jupyterhub --version 1.2.0
# after a few minutes, get information about the Kubernetes service
kubectl --namespace=default get svc proxy-public
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
proxy-public LoadBalancer 10.109.132.29 localhost 80:31480/TCP 31m
正如所印证的那样,外部IP是localhost,并在80端口暴露。容器启动后,你可以打开http://localhost,用用户名 "admin "和无密码登录。
正如你所看到的,用几个命令行就可以毫不费力地运行一个比较全面的应用程序。如果你想尝试更多的例子,请查看 我关于Helm的博文。
为了清理资源,你应该删除正在运行的应用程序:
helm uninstall my-jupyterhub
release "my-jupyterhub" uninstalled
最受欢迎的管理型Kubernetes集群
一旦你想运行一个应用程序,并将其提供给其他人,你必须运行一个公开可用的Kubernetes集群。如果你不是一个专家,你不应该从头开始运行你的集群。
相反,你可以使用Kubernetes集群的管理版本,这意味着集群本身的大部分维护是由外部供应商完成的。你可以简单地部署容器,而事情应该就是这样。
我的建议是使用谷歌Kubernetes集群(GKE),这是谷歌的管理集群。谷歌是Kubernetes的原始设计者,以提供坚实的Kubernetes体验而闻名。他们还提供了一个更极端的管理版本,叫做GKE自动驾驶,它允许你按容器小时和内存付费。
不过,在现实中,团队使用的是标准的Kubernetes集群,它带有更多的其他管理服务的集成,如果你使用Autopilot,这些服务还不能使用。例如,你可以通过使用配置连接器,利用Kubernetes资源创建服务账户、DNS记录或管理证书。
你可以按照谷歌的简单教程,在几分钟内建立一个GCP Kubernetes集群,并部署一个示例应用程序。
还有很多管理型的Kubernetes集群,如亚马逊的Elastic Kubernetes Service(EKS)和微软的Azure Kubernetes Service(AKS)。无论你喜欢什么云,通常使用你目前的云供应商的管理型Kubernetes集群是个好主意。
我通过使用谷歌趋势比较了三个流行供应商对Kubernetes的兴趣,结果显示Azure和AWS(亚马逊)是最受欢迎的。

这些数字并没有显示哪个供应商提供了最好的体验。但是,它们显示了人们对在Azure上运行的Kubernetes的巨大兴趣。有趣的是,Azure在过去几个月里占据了领先地位。
总结
在这篇博文中,你了解了k8s的含义--它只是Kubernetes的一个缩写。它是一个流行的容器编排系统,用于自动化应用程序的部署、扩展和管理。你可以在本地运行Kubernetes,也可以在不同的云中大规模运行。
我希望你喜欢这篇文章。