维护 Kubernetes 集群

Google Distributed Cloud (GDC) 网闸隔离配置可让您在创建 Kubernetes 集群后,使用 GKE on GDC 管理这些集群。借助此服务,您可以通过以下工作流来适应不断变化的容器工作负载要求,并维护现有集群节点:

本文档适用于平台管理员组中的 IT 管理员(负责管理托管在跨多个项目的集群中的容器工作负载),以及应用运维人员组中的开发者(负责在单个项目中创建应用工作负载)。如需了解详情,请参阅 GDC 气隙环境文档的受众群体

准备工作

如需完成本文档中的任务,您必须拥有以下资源和角色:

  • 如需查看和管理共享 Kubernetes 集群中的节点池,请让组织 IAM 管理员为您授予以下角色:

    • User Cluster Admin (user-cluster-admin)
    • 用户集群节点查看器 (user-cluster-node-viewer)

    这些角色未绑定到项目命名空间。

  • 如需查看和管理标准 Kubernetes 集群中的节点池,请让组织 IAM 管理员为您授予 Standard Cluster Admin (standard-cluster-admin) 角色。此角色与您的项目命名空间绑定。

  • 如需针对 Kubernetes 集群运行命令,请确保您拥有以下资源:

    • 找到 Kubernetes 集群名称,或向平台管理员群组的成员询问集群名称。

    • 登录并生成 Kubernetes 集群的 kubeconfig 文件(如果您还没有)。

    • 使用 Kubernetes 集群的 kubeconfig 路径替换这些说明中的 KUBERNETES_CLUSTER_KUBECONFIG

在项目层次结构中移动集群

项目提供服务实例的逻辑分组。您可以从 GDC 项目层次结构中添加和移除共享 Kubernetes 集群,以便对服务进行适当的分组。您无法在项目层次结构中移动标准集群,因为它们仅限定于单个项目。

将项目附加到共享集群

从 GDC 控制台创建共享集群时,您必须先附加至少一个项目,然后才能成功向该集群部署容器工作负载。如果您必须向现有集群添加其他项目,请完成以下步骤:

  1. 在导航菜单中,依次选择 Kubernetes Engine > 集群
  2. 点击集群列表中的集群,以打开集群详情页面。
  3. 选择附加项目
  4. 从项目列表中选择要添加的可用项目。点击保存

从共享集群分离项目

如需将项目从现有共享集群中分离,请完成以下步骤:

  1. 在导航菜单中,依次选择 Kubernetes Engine > 集群
  2. 点击集群列表中的集群,以打开集群详情页面。
  3. 点击要从集群中分离的项目的 分离

查看组织中的所有集群

您可以查看组织中的所有可用 Kubernetes 集群,包括其状态、Kubernetes 版本和其他详细信息。

由于 Kubernetes 集群是可用区级资源,因此您只能按区域列出集群。

控制台

  • 在导航菜单中,依次选择 Kubernetes Engine > 集群

    系统会显示组织中的所有可用共享集群及其状态和其他信息:

    集群详情页面,其中包含组织中每个共享集群的状态和其他信息。

gdcloud

  • 列出组织中可用区可用的共享集群:

    gdcloud clusters list
    

    输出类似于以下内容:

    CLUSTERREF.NAME   READINESS.STATE   TYPE   CURRENTVERSION.USERCLUSTERVERSION     CURRENTVERSION.SUPPORT.STATUS
    user-vm-1         Ready             user   1.15.0-gdch.394225-1.28.15-gke.1200   In Support
    user-vm-2         Ready             user   1.15.0-gdch.394225-1.29.12-gke.800    In Support
    

API

  • 列出组织中相应可用区的可用 Kubernetes 集群:

    kubectl get clusters.cluster.gdc.goog -n KUBERNETES_CLUSTER_NAMESPACE \
        --kubeconfig MANAGEMENT_API_SERVER
    

    替换以下内容:

    • MANAGEMENT_API_SERVER:区域 API 服务器的 kubeconfig 路径。如果您尚未为目标地区中的 API 服务器生成 kubeconfig 文件,请参阅登录了解详情。
    • KUBERNETES_CLUSTER_NAMESPACE:集群的命名空间。对于共享集群,请使用 platform 命名空间。对于标准集群,请使用集群的项目命名空间。

    输出类似于以下内容:

    NAME        STATE     K8S VERSION
    user-vm-1   Running   1.25.10-gke.2100
    user-test   Running   1.26.5-gke.2100
    

列出集群可用的 Kubernetes 版本

您可以列出 GDC 区域中的可用 Kubernetes 版本,以验证您可以在集群中访问的 Kubernetes 功能。

  • 列出您所在可用区中的可用 Kubernetes 版本:

    kubectl get userclustermetadata.upgrade.private.gdc.goog \
        -o=custom-columns=K8S-VERSION:.spec.kubernetesVersion \
        --kubeconfig MANAGEMENT_API_SERVER
    

    MANAGEMENT_API_SERVER 替换为集群的区域 API 服务器的 kubeconfig 文件。

    输出类似于以下内容:

    K8S-VERSION
    1.25.10-gke.2100
    1.26.5-gke.2100
    1.27.4-gke.500
    

查看可更新的属性

对于每个 Kubernetes 集群,创建后都可以更改一组属性。您只能更改 Cluster 自定义资源的 spec 中的可变属性。在集群完成配置后,spec 中的并非所有属性都可更新。如需查看这些可更新的属性,请完成以下步骤:

控制台

  1. 在导航菜单中,依次选择 Kubernetes Engine > 集群

  2. 在 Kubernetes 集群列表中,点击集群名称以查看其属性。

  3. 可修改的属性带有 修改图标。

kubectl

  • 查看 Cluster 规范的属性列表以及与每个属性对应的有效值:

    kubectl explain clusters.cluster.gdc.goog.spec \
        --kubeconfig MANAGEMENT_API_SERVER
    

    MANAGEMENT_API_SERVER 替换为区域 API 服务器的 kubeconfig 路径。如果您尚未为目标地区中的 API 服务器生成 kubeconfig 文件,请参阅登录了解详情。

    输出类似于以下内容:

    KIND:     Cluster
    VERSION:  cluster.gdc.goog/v1
    
    RESOURCE: spec <Object>
    
    DESCRIPTION:
        <empty>
    
    FIELDS:
      clusterNetwork    <Object>
        The cluster network configuration. If unset, the default configurations
        with pod and service CIDR sizes are used. Optional. Mutable.
    
      initialVersion    <Object>
        The GDC air-gapped version information of the user cluster during cluster creation.
        Optional. Default to use the latest applicable version. Immutable.
    
      loadBalancer  <Object>
        The load balancer configuration. If unset, the default configuration with
        the ingress service IP address size is used. Optional. Mutable.
    
      nodePools <[]Object>
        The list of node pools for the cluster worker nodes. Optional. Mutable.
    
      releaseChannel    <Object>
        The release channel a cluster is subscribed to. When a cluster is
        subscribed to a release channel, GDC maintains the cluster versions for
        users. Optional. Mutable.
    

    您可以使用 GDC 控制台或 kubectl CLI 更新这些设置。 例如,您可以调整节点池的大小

后续步骤