查看工作负载 - Amazon EKS

查看工作负载

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

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

Prerequisites

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

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

  • 映射到 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 用户或角色映射到该组。要下载该文件,请选择集群所在区域的相应链接。

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

使用 AWS Management Console 查看工作负载

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

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

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

    重要

    如果您看不到任何工作负载,或看到内容为“您的当前用户或角色无权访问此 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 中的容器。选择容器的名称将会显示在启动 Pod 时提供的 Image(镜像)Ports(端口)Mounts(挂载)Arguments(参数)。Pod 可以定义两种类型的容器。第一种是应用程序容器,只要 Pod 运行,这些容器就运行。第二种是 init 容器,这些容器作为在 Pod 启动期间运行的进程。您可以在 Pod 详细信息页面上看到这两种类型的容器。

    • 分配给 Pod 的 Kubernetes 标签注释