开始了解 Kubernetes

GKE 基于开源容器编排平台 Kubernetes,本网站上的许多文档假定您已经熟悉基本的 Kubernetes 概念和术语。如果您不熟悉,本页面简要介绍了 Kubernetes 基础知识,并提供推荐阅读内容的链接,以便您入门。

主要概念

以下是我们在整个 GKE 文档中用到的一些关键概念。这并非 Kubernetes 概念的详尽列表;您可以在 Kubernetes 文档和我们的推荐读物中找到更多相关主题,以便阅读和探索。

节点和集群

所有 Kubernetes 工作负载都在节点上运行。在 GKE 中,节点是 Compute Engine 虚拟机 (VM)。在其他 Kubernetes 平台上,节点可以是物理机或虚拟机。每个节点都由 Kubernetes 控制平面管理,并包含运行 Pod 所需的所有组件。集群是一组可以被视为单个实体的节点,您可以在其中部署容器化应用。

如需了解详情,请参阅 Kubernetes 文档:

命名空间

Kubernetes 命名空间提供了一种机制,用于进一步对集群内的 Pod 和 Service 等资源进行分组和选择,例如,如果您有多个应用团队在单个集群上运行工作负载。

如需了解详情,请参阅 Kubernetes 文档:

pod

在 Kubernetes 中,容器化应用在 Pod 中运行。Pod 是您可以在 Kubernetes 中创建和管理的最小可部署计算单元。一个 Pod 包含一个或多个容器。当 Pod 运行多个容器(例如,应用服务器和代理服务器)时,这些容器将作为一个实体进行管理并共享 Pod 资源。

如需了解详情,请参阅 Kubernetes 文档:

控制器

Kubernetes 控制器会根据您指定的所需状态(例如,“我希望在此集群上运行 3 个此 Pod,每个 Pod 中都有此容器”)跟踪和管理集群和工作负载的状态。不同的控制器会跟踪不同的 Kubernetes 资源类型,包括:

  • DeploymentDeployment 是一个 Kubernetes 对象,表示一个或多个相同的 Pod(称为副本)。Deployment 会运行分布在集群节点中的 Pod 的多个副本。Deployment 会自动替换失败或无响应的任何 Pod。
  • StatefulSetStatefulSet 类似于 Deployment,但可为其每个 Pod 保留一个永久的唯一身份。StatefulSet 可用于具有持久状态的应用(有状态应用)。
  • DaemonSets:借助 Kubernetes DaemonSet,您可以向部分或所有节点添加默认 Pod。这些通常是工作负载的“辅助”服务,例如日志收集守护程序或监控守护程序。
  • ReplicaSetsReplicaSet 是一组相同的 Pod。ReplicaSet 通常作为 Deployment 的一部分进行管理。

如需了解详情,请参阅 Kubernetes 文档:

Kubernetes Service

默认情况下,您无法控制 Pod 在哪个集群节点上运行,因此 Pod 没有稳定的 IP 地址。如需为在 Kubernetes 中运行的应用获取 IP 地址,您必须在其 Pod 上定义网络抽象(称为 Kubernetes Service)。Kubernetes Service 为一组 Pod 提供稳定的网络端点。有多种类型的 Service,包括 LoadBalancer Service,它们会公开外部 IP 地址,以便您从集群外部访问应用。

Kubernetes 还具有用于内部地址解析的内置 DNS 系统,该系统可将 DNS 名称(例如 helloserver.default.cluster.local)分配给服务。这允许集群内的 Pod 使用稳定地址访问集群中的其他 Pod。您无法在集群外部(例如通过 Cloud Shell)使用此 DNS 名称。

如需了解详情,请参阅 Kubernetes 文档:

存储

如果您的应用需要保存超出其 Pod 生命周期的数据(有状态应用),您可以使用 Kubernetes PersistentVolume 对象来预配此存储空间。在 GKE 中,PersistentVolume 存储由 Compute Engine 磁盘提供支持。您也可以选择使用临时存储,该存储会在相应 Pod 终止时销毁。

如需了解详情,请参阅 Kubernetes 文档:

Kubernetes 控制平面

Kubernetes 控制平面是一组管理集群整体状态的系统组件,包括 Kubernetes API 服务器(可让您使用 kubectl 和其他工具与集群和应用互动)、调度器(用于在可用节点上调度 Pod)以及控制器(用于跟踪和管理集群状态)。在 GKE 中,控制平面由 Google Cloud提供和管理。

如需了解详情,请参阅 Kubernetes 文档:

基于角色的访问权限控制 (RBAC)

Kubernetes 包含一种基于角色的访问权限控制 (RBAC) 机制,可让您创建授权政策来控制对集群及其资源的访问权限。使用 GKE 时,您通常会结合使用 Kubernetes RBAC 和 Google Cloud的 Identity and Access Management 来保护应用。

如需了解详情,请参阅 Kubernetes 文档:

本部分提供了一些链接,指向可帮助您详细了解 Kubernetes 的推荐资源。尤其是 Kubernetes.io(Kubernetes 官方网站),其中包含大量有关 Kubernetes 各个方面的最新可靠资料。

指南和教程

参考文档

  • Kubernetes 术语表:一份全面的标准化 Kubernetes 术语列表。如果您不确定某个 Kubernetes 术语的含义,可以前往以下位置查找!

视频

  • 跟 Google 一起学习 Kubernetes:Google 提供的视频指南播放列表,其中介绍了不同的 Kubernetes 功能和特性,包含面向开发者和运维人员的材料。

漫画

  • Kubernetes 漫画:在智慧女神(以及容器化应用)的帮助下,了解 Kubernetes 的历史以及如何使用它实现持续集成和交付。