Kubernetes 入门:我该从哪里开始?
作为开发人员,在站会上当服务器管理员炫耀他们的容器编排技术时,我们往往会走神。现在轮到我们来大显身手了。
那么,Kubernetes 究竟是什么呢?
我们最近经常听到容器这个词,以及它们如何简化开发生命周期。本文不会深入探讨容器,您可以参考这篇文章了解更多信息。当我们的应用程序规模变大,或者我们需要将其模块化时,多个容器就派上了用场。而这正是问题所在。例如,如果我们运行一个电子商务应用程序,那么我们的身份验证/登录、支付服务、产品目录、库存管理等功能将作为独立的容器或服务运行——这就是微服务架构。假设我们使用 Docker 引擎运行应用程序,我们就无法预知容器何时宕机,也无法预知何时需要扩展容器。我们无法预知社交媒体营销活动何时获得成功,导致大量流量涌入我们的服务。想象一下,如果正值黑色星期五促销活动,而我的服务响应速度比平时慢——Docker 引擎就会发出警告😧。如果我的支付服务宕机了呢?😟——那将会是一场混乱。
Kubernetes 来了 😎!!!——开源容器编排平台。现在,一切都搞定了,Kubernetes 会为运行容器的 Pod 进行自动扩缩容。它能轻松应对各种情况,确保所有服务持续稳定运行,避免在黑色星期五大促期间出现混乱。
我什么时候需要使用 Kubernetes?
只要我们采用多容器应用,Kubernetes 就是个不错的选择。如果我们采用微服务架构,那就更必须选择 Kubernetes。
有些人可能会问:“等等……但我运行的大部分应用只是我用 React/Angular 做的副业,我需要容器化并使用 Kubernetes 吗?” 简而言之:完全不需要。如果我们不使用像AWS EKS这样的云托管 Kubernetes 服务,搭建 Kubernetes 集群将是一项非常繁琐的任务。
Kubernetes 术语表
Kubernetes集群
是一组节点,用于运行容器化应用程序。它使我们能够在多台机器和环境中运行应用程序,并帮助我们在单一界面下进行管理。
Pod
是 Kubernetes 中最小的单元。它们可以看作是我们运行的容器的包装器——一个包裹着我们应用程序的外壳。我们可以像调整已部署应用程序的实例数量一样,扩展或缩减 Pod 的数量。
节点
是指运行 Pod 的物理机或虚拟机。理想情况下,Kubernetes 会设置一个主节点和多个工作节点来运行 Pod。顾名思义,主节点拥有控制平面,它是集群中的决策者——它决定 Pod 应该运行在哪些节点上。
部署(Deployment)
对我们来说是个很熟悉的术语——没错,它们指的就是同一个东西。部署为需要管理的 Pod 和容器提供配置。我们有两种部署方式:使用 CLI(命令式方法)和使用 YAML 文件(声明式方法)。我更喜欢后一种方法,因为它能将配置信息记录下来。
接下来呢?
-
先从适合自己节奏的实用指南开始。如果你一开始就接触容器技术,Udemy 上的这门课程就是一个很好的入门选择。
-
开始尝试使用minikube,这是一个单节点集群设置,用于在本地环境中学习 Kubernetes 的概念。
-
这篇文章简直是冰山一角。没有什么比官方的 Kubernetes 文档更详尽的了,他们还提供了一个实践性的实验环境来帮助理解这些概念。
-
随着云计算让我们的生活变得更加轻松,启动集群和管理 Pod 编排已不再是难事。云托管的 Kubernetes 服务承担了这些繁琐的设置工作。现在是时候根据我们的偏好,了解一下AWS EKS、Azure Kubernetes Service和IBM Cloud Kubernetes Service 等热门的 Kubernetes 托管服务了。
-
最后但同样重要的是,要坚持学习 Kubernetes。它的学习曲线确实很陡峭,但只要稍微集中精力,就会容易得多。😃