查看工作负载 - Amazon EKS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

查看工作负载

工作负载对在 Kubernetes 集群上运行的应用程序进行定义。每个工作负载都控制着 Pod。Pod 是 Kubernetes 集群中的基本计算单元,表示一个或多个共同运行的容器。

您可以使用 Amazon EKS 控制台查看有关在集群上运行的 Kubernetes 工作负载和 Pod 的信息。

先决条件

您登录 Amazon Web Services Management Console 所用的 IAM 用户或 IAM 角色必须满足以下要求。

  • 具有查看附加到它的工作负载所需的 eks:AccessKubernetesApi 和其他必要的 IAM 权限。有关 IAM 策略示例,请参阅 在 Amazon Web Services Management Console 中查看所有集群的节点和工作负载

  • 对于在已连接集群中的节点,Amazon EKS Connector Service 账户应能够模拟集群中的 IAM 或角色。这让 eks-connector 将 IAM 用户或角色映射到 Kubernetes 用户。

  • 映射到 aws-auth configmap 中的 Kubernetes 用户或组。有关更多信息,请参阅 让 IAM 用户和角色有权访问您的集群

  • IAM 用户或角色在 configmap 中映射到的 Kubernetes 用户或组必须绑定到 Kubernetes roleclusterrole,且该角色拥有查看您要查看的命名空间中的资源的权限。有关更多信息,请参阅 Kubernetes 文档中的使用 RBAC 授权。您可以下载以下示例清单,这些清单创建 clusterroleclusterrolebindingrolerolebinding

    • 查看所有命名空间中的 Kubernetes 资源 – 文件中的组名为 eks-console-dashboard-full-access-group,这是您的 IAM 用户或角色需要在 aws-auth configmap 中映射到的组。如果需要,您可以在将组应用到集群之前更改该组的名称,然后在 configmap 中将您的 IAM 用户或角色映射到该组。要下载文件,请选择集群所在 Amazon Web Services 区域 的相应链接。

    • 查看特定命名空间中的 Kubernetes 资源 – 此文件中的命名空间是 default,因此,如果要指定不同的命名空间,请编辑该文件,然后将其应用到集群。文件中的组名称为 eks-console-dashboard-restricted-access-group,这是您的 IAM 用户或角色需要在 aws-auth configmap 中映射到的组。如果需要,您可以在将组应用到集群之前更改该组的名称,然后在 configmap 中将您的 IAM 用户或角色映射到该组。要下载文件,请选择集群所在 Amazon Web Services 区域 的相应链接。

使用 Amazon Web Services Management Console 查看工作负载

  1. 从以下位置打开 Amazon EKS 控制台:https://console.aws.amazon.com/eks/home#/clusters

  2. Clusters(集群)列表中,选择您要查看其工作负载的集群。

  3. Workloads(工作负载)选项卡上,您将看到当前部署到您的集群的所有 Kubernetes 工作负载的 Names(名称),以及每个工作负载的 Pod count(容器计数)和 Status(状态)。

    重要

    如果您看不到任何工作负载,或看到内容为“Your current user or role does not have access to Kubernetes objects on this EKS cluster”(您的当前用户或角色无权访问此 EKS 集群上的 Kubernetes 对象)的消息,则您可能需要从 All Namespaces(所有命名空间)下拉列表中选择不同的命名空间。如果您仍遇到问题,请参阅本主题的先决条件。如果您不解决此问题,您仍然可以在配置选项卡上查看和管理您的 Amazon EKS 集群,但您将无法查看有关工作负载的信息。

    您可以在集群上部署以下类型的工作负载。

    • 部署 – 确保运行特定数量的 Pod 并包含用于部署更改的逻辑。

    • ReplicaSet – 确保运行特定数量的 Pod。可以通过部署进行控制。

    • StatefulSet – 管理有状态应用程序的部署。

    • DaemonSet – 确保在集群的所有(或部分)节点上运行 Pod 的副本。

    • 任务 – 创建一个或多个 Pod,并确保指定数量的 Pod 完成运行。

    有关更多信息,请参阅 Kubernetes 文档中的工作负载

    预设情况下,所有 Amazon EKS 集群都具有以下工作负载:

    • coredns – 一个部署两个 coredns Pod 副本的 Deployment。这些 Pod 为集群中的所有 Pod 提供名称解析。预设情况下,无论集群中部署的节点数是多少,都将部署两个 Pod 以确保高可用性。有关更多信息,请参阅 管理 CoreDNS 附加组件。这些 Pod 可以部署到任何节点类型。但是,仅当您的集群包含具有与工作负载命名空间匹配的命名空间的 Fargate 配置文件时,它们才能部署到 Fargate 节点。

    • aws-node – 一个 DaemonSet,它为集群中的每个 Amazon EC2 节点部署一个 Pod。该 Pod 运行 Amazon Virtual Private Cloud (Amazon VPC) CNI 控制器,该控制器为集群中的 Pod 和节点提供 VPC 联网功能。有关更多信息,请参阅 Pod 联网 (CNI)。此工作负载未部署到 Fargate 节点,因为 Fargate 已包含 Amazon VPC CNI 控制器。

    • kube-proxy – 一个 DaemonSet,它为集群中的每个 Amazon EC2 节点部署一个 Pod。这些 Pod 在节点上维护实现与 Pod 进行网络通信的网络规则。有关更多信息,请参阅 Kubernetes 文档中的 kube-proxy。此工作负载不会部署到 Fargate 节点。

    查看工作负载详细信息

    选择某个 Workloads(工作负载)Name(名称)列中的链接将为您显示以下信息:

    • 分配给工作负载的 Status(状态)Namespace(命名空间)Selectors(选择器)(如果有)。

    • 由工作负载管理的 Pod 的列表、它们的 Status(状态)Created(创建)日期和时间。

    • 分配给工作负载的 Kubernetes 标签注释。这些信息可能在创建工作负载时由您、Kubernetes 或 Amazon EKS API 分配。

    您在检查工作负载时看到的某些详细信息可能因工作负载类型而异。要了解有关每种工作负载类型的唯一属性的详细信息,请参阅 Kubernetes 文档中的工作负载

    查看 Pod 详细信息

    Pod 是 Kubernetes 集群中的基本计算单元,表示一个或多个共同运行的容器。每个工作负载控制着集群上运行的一个或多个 Pod。Pod 被设计为相对短暂和不可改变的对象。随着时间的推移,在集群运行期间启动和停止 Pod 是正常的。Pod 的启动或停止反映了工作负载的变化以及集群规模的变化。有关更多信息,请参阅 Kubernetes 文档中的 Pod

    查看工作负载时,请在某个 PodName(名称)列中选择一个链接,以查看有关 Pod 的以下信息:

    • Pod 所在的 Kubernetes 命名空间以及该 Pod 的状态

    • 运行 Pod 的节点。该节点可能是 Amazon EC2 实例或 Fargate Pod。有关查看节点的更多信息,请参阅 查看节点

    • Pod 中的容器。选择容器的名称将会显示在启动容器时提供的 Image(镜像)、Ports(端口)、Mounts(挂载)和 Arguments(参数)。Pod 可以定义两种类型的容器。第一种是应用程序容器,只要 Pod 运行,这些容器就运行。第二种是 init 容器,这些容器作为在 Pod 启动期间运行的进程。您可以在 Pod 详细信息页面上看到这两种类型的容器。

    • 分配给 Pod 的 Kubernetes 标签注释