开始了解 Kubernetes


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

主要概念

以下是 GKE 文档中常用的几个关键概念。这并不是 Kubernetes 概念的完整列表;您可以在 Kubernetes 文档中提供的主题和我们的推荐阅读中找到更多内容来阅读和探索。

节点和集群

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

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

命名空间

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

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

pod

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

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

控制器

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

  • DeploymentDeployment 是表示一个或多个相同 Pod(称为“副本”)的 Kubernetes 对象。Deployment 会运行分布在集群节点中的 Pod 的多个副本。Deployment 会自动替换失败或无响应的任何 Pod。
  • StatefulSetStatefulSet 类似于部署,但会为其每个 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 类型,包括公开外部 IP 地址的 LoadBalancer Service,以便您从集群外部访问应用。

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

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

存储

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

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

Kubernetes 控制平面

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

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

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

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

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

本部分提供了指向推荐资源的链接,以便您详细了解 Kubernetes。特别是,Kubernetes 官方网站 Kubernetes.io 提供了大量有关 Kubernetes 的最新可靠资料。

指南和教程

参考文档

  • Kubernetes 术语表:Kubernetes 术语的全面标准化列表。如果您对某个 Kubernetes 术语不确定,请点击此处查询!

视频

漫画

  • Kubernetes 漫画:了解 Kubernetes 的历史,以及如何使用 Kubernetes 实现持续集成和交付,并在智慧女神(以及容器化应用)的帮助下,完成一些意想不到的任务。