本文档介绍如何检查在 Google Distributed Cloud (GDC) 气隙 Kubernetes 集群中运行的现有有状态工作负载。借助有状态工作负载,您可以使用永久性容器存储运行应用。您可以使用 GDC 控制台或 kubectl CLI 查看有状态工作负载,以监控资源使用情况和工作负载运行状况。
本文档适用于应用运维人员组内的开发者,他们负责管理组织的应用工作负载。如需了解详情,请参阅 GDC 气隙文档的受众。
准备工作
如需完成本文档中的任务,您必须请求必要的权限并准备环境。
请求 IAM 角色
您必须拥有特定角色,才能获得查看和检查有状态工作负载所需的权限。您需要的角色取决于您是在组织级共享集群还是项目级标准集群中工作。 如需了解详情,请参阅 Kubernetes 集群配置。
共享集群角色
请让您的项目 IAM 管理员根据要执行的任务,在您的项目命名空间中向您授予以下角色:
- 工作负载查看者 (
workload-viewer):查看部署到共享集群的所有工作负载。 - 命名空间管理员 (
namespace-admin):在共享集群项目命名空间中创建、删除、修改或查看工作负载。
这些角色绑定到您的项目命名空间。
标准集群角色
如需在标准集群中创建、删除、修改或查看工作负载,请让您的项目 IAM 管理员向您授予 Cluster Developer (cluster-developer) 角色。此角色绑定到您的项目命名空间。
准备环境
如需使用 API 针对 Kubernetes 集群 运行命令,请确保您拥有以下资源:
找到 Kubernetes 集群名称,或向平台管理员组的成员询问集群名称。
登录并生成 Kubernetes 集群的 kubeconfig 文件。
使用 Kubernetes 集群的 kubeconfig 路径替换这些说明中的
KUBERNETES_CLUSTER_KUBECONFIG。
查看项目的容器工作负载
如需查看项目的容器工作负载,请完成以下操作:
控制台
在导航菜单中,依次选择 Kubernetes Engine > 工作负载 。
您可以查看容器工作负载的详细信息,例如:
- 名称
- 类型
- Pod 数量
- Kubernetes 集群
- 上次修改日期
容器工作负载按其所属的 Kubernetes 集群进行整理。选择 Cluster 下拉列表可切换集群上下文。
kubectl
运行以下命令,列出项目中的所有 pod:
kubectl get pods -n PROJECT_NAMESPACE输出类似于以下内容:
NAME READY STATUS RESTARTS AGE nginx-workload-ah-aa-1228 1/1 Running 0 12h nginx-workload-ah-ab-6784 1/1 Running 0 11h nginx-workload-ah-ac-0045 1/1 Running 0 12h
检查 StatefulSet 资源
如需请求有关 StatefulSet 资源组件的更多详细信息,请运行直接针对您要检查的实体的命令。
获取 StatefulSet 对象信息
如需获取有关 StatefulSet 对象的详细信息,请运行以下命令:
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
describe statefulset STATEFULSET_NAME
替换以下内容:
KUBERNETES_CLUSTER_KUBECONFIG:运行StatefulSet对象的集群的 kubeconfig 文件。NAMESPACE:命名空间。对于共享集群,这必须是项目命名空间。对于标准集群,它可以是任何命名空间。STATEFULSET_NAME:StatefulSet对象的名称。
以 YAML 格式显示实时配置
如需以 YAML 格式显示 StatefulSet 资源的实时配置,请运行以下命令:
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
get statefulset STATEFULSET_NAME -o yaml
替换以下内容:
KUBERNETES_CLUSTER_KUBECONFIG:运行StatefulSet对象的集群的 kubeconfig 文件。NAMESPACE:命名空间。对于共享集群,这必须是项目命名空间。对于标准集群,它可以是任何命名空间。STATEFULSET_NAME:StatefulSet对象的名称。
列出 pod
如需列出由 StatefulSet 创建的 Pod 对象,请运行以下命令:
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
get pods -l app=APP_NAME
在此命令中,-l 标志会列出所有带有 APP_NAME 标签的 Pod 对象。
替换以下内容:
KUBERNETES_CLUSTER_KUBECONFIG:运行StatefulSet对象的集群的 kubeconfig 文件。NAMESPACE:命名空间。对于共享集群,这必须是项目命名空间。对于标准集群,它可以是任何命名空间。APP_NAME:由StatefulSet对象管理的有状态应用的名称。
获取特定 pod 信息
如需获取集群中特定 Pod 的相关信息,请运行以下命令:
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
describe pod POD_NAME
替换以下内容:
KUBERNETES_CLUSTER_KUBECONFIG:运行 pod 的集群的 kubeconfig 文件。NAMESPACE:命名空间。对于共享集群,这必须是项目命名空间。对于标准集群,它可以是任何命名空间。POD_NAME:由StatefulSet对象管理的 pod 的名称。
列出 PVC
如需列出集群中的 PersistentVolumeClaim (PVC) 对象,请运行以下命令:
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
get pvc
替换以下内容:
KUBERNETES_CLUSTER_KUBECONFIG:运行 PVC 的集群的 kubeconfig 文件。NAMESPACE:命名空间。对于共享集群,这必须是项目命名空间。对于标准集群,它可以是任何命名空间。
获取特定 PVC 信息
如需获取集群中特定 PersistentVolumeClaim (PVC) 的相关信息,请运行以下命令:
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
describe pvc PVC_NAME
替换以下内容:
KUBERNETES_CLUSTER_KUBECONFIG:运行 PVC 的集群的 kubeconfig 文件。NAMESPACE:命名空间。对于共享集群,这必须是项目命名空间。对于标准集群,它可以是任何命名空间。PVC_NAME:为StatefulSet对象配置的 PVC 的名称。
获取 PV 信息
如需获取集群中特定 PersistentVolume (PV) 的相关信息,请运行以下命令:
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
describe pv PV_NAME
替换以下内容:
KUBERNETES_CLUSTER_KUBECONFIG:运行 PV 的集群的 kubeconfig 文件。NAMESPACE:命名空间。对于共享集群,这必须是项目命名空间。对于标准集群,它可以是任何命名空间。PV_NAME:为StatefulSet对象配置的 PV 的名称。