登录

本页面介绍了如何访问和管理 Google Distributed Cloud (GDC) 气隙环境中的工作负载和资源。它介绍了如何进行身份验证、为可用区级资源和全局资源生成 kubeconfig 文件,以及管理会话闲置状态。 了解这些流程有助于确保安全可靠地访问您的项目和工作负载。

本页面面向平台管理员组(例如 IT 管理员)或应用运维者组(例如应用开发者)中想要使用 GDC 资源的用户。如需了解详情,请参阅 GDC 气隙环境文档的受众群体

您可以使用 GDC 控制台、gdcloud CLI 或 kubectl CLI 访问工作负载。

对您的账号进行身份验证以获取访问权限

如需登录 GDC 控制台或集群,请完成以下步骤:

控制台

在新的浏览器标签页中打开以下网址,以访问 Distributed Cloud 界面 (UI):

https://GDC_URL

GDC_URL 替换为基础架构运维者 (IO) 提供的用于访问 Distributed Cloud 的域名。首次打开任何网址时,如果基础架构运维者 (IO) 配置了该页面,Distributed Cloud 会将您重定向到您的身份提供方登录页面。

例如,下图显示了登录名为 org-1 的组织的控制台界面的过程:

控制台界面,显示了组织 1 项目的欢迎界面。

CLI

登录 gdcloud CLI 时,您可以使用 gdcloud auth login 命令 向 gdcloud CLI 进行主账号的身份验证。gdcloud CLI 会使用该主账号进行身份验证和 授权,以管理 Google Cloud 资源和服务。

登录之前,请确保执行以下操作:

  • 下载 gdcloud CLI 二进制文件并将其安装到您的系统中。 如需了解详情,请参阅 下载 gdcloud CLI
  • 设置并初始化 gdcloud CLI 默认配置。请务必设置正确的组织网址,该网址用于提取登录配置端点。如需了解详情,请参阅 gdcloud CLI 安装
  • 安装身份验证插件 gdcloud-k8s-auth-plugin。如需了解详情,请参阅 gdcloud CLI 身份验证

如需登录 Management API 服务器或 Kubernetes 集群,请完成以下步骤:

  • Management API 服务器
  1. 导出您要存储 Management API 服务器 kubeconfig 文件的路径:

    export KUBECONFIG=MANAGEMENT_API_SERVER
    

    MANAGEMENT_API_SERVER 替换为要存储 kubeconfig 文件的目录的路径 。

  2. 对您的 gdcloud CLI 实例进行身份验证以登录。您可以通过以下两种方式进行身份验证:

    • 标准浏览器登录: 从浏览器登录时,请使用此身份验证流程。

      gdcloud auth login
      
    • 辅助设备登录: 如果您的主设备没有可用的浏览器,请使用此身份验证流程。此流程会在没有浏览器访问权限的主设备上启动登录,并使用具有浏览器访问权限的辅助设备继续登录。

      在没有浏览器的主设备上启动登录:

      gdcloud auth login --no-browser
      

      KUBECONFIG 环境变量会使用组织中所有 API 服务器和集群的 kubeconfig 文件进行更新。如果未设置 KUBECONFIG 变量,kubectl CLI 会使用存储在 $HOME/.kube/config 中的默认 kubeconfig 文件。

      如需跳过修改 kubeconfig 文件,请将 --skip-kubeconfig-update 标志添加到您的命令中。例如:

      gdcloud auth login --no-browser --skip-kubeconfig-update
      

      复制输出的 gdcloud CLI 命令,并在具有浏览器访问权限的机器上运行该命令。

  3. 按照网页上的说明完成登录流程。

    成功完成登录后,浏览器会显示消息身份验证成功。请关闭此窗口

  4. 按照终端上的说明操作。成功登录后,终端会显示消息:您现在已登录

  • Kubernetes 集群
  1. 对您的 gdcloud CLI 实例进行身份验证以登录。您可以通过以下两种方式进行身份验证:

    • 标准浏览器登录: 从浏览器登录时,请使用此身份验证流程。

      gdcloud auth login
      
    • 辅助设备登录: 如果您的主设备没有可用的浏览器,请使用此身份验证流程。此流程会在没有浏览器访问权限的主设备上启动登录,并使用具有浏览器访问权限的辅助设备继续登录。

      1. 在没有浏览器的主设备上启动登录:

        gdcloud auth login --no-browser
        

        主设备中的命令会输出另一个 gdcloud 命令,您必须在步骤 c 中在辅助设备上运行该命令。

      2. 重复第 1 步,在辅助设备上下载证书。

      3. 在辅助设备上输入在步骤 a 中在主设备上输出的命令,以完成登录。

    此操作会打开一个浏览器,以登录到配置的身份提供方 (IdP)。提供您在初始 gdcloud CLI 设置期间设置的用户和密码以登录。

  2. 将您的用户身份 kubeconfig 文件导出为变量:

    export KUBECONFIG=/tmp/CLUSTER_NAME-ZONE-kubeconfig-with-user-identity.yaml
    
  3. 使用您的用户身份为可用区级集群生成 kubeconfig 文件:

    gdcloud clusters get-credentials CLUSTER_NAME --zone ZONE
    

    ZONE 替换为可用区名称。

    系统会使用您的用户身份生成 kubeconfig 文件。 以下 YAML 文件显示了一个示例:

    apiVersion: v1
    clusters:
    - cluster:
      certificate-authority-data: <REDACTED>
      server: https://10.200.0.32:443
    name: cluster-name
    contexts:
    - context:
      cluster: cluster-name
      user: cluster-name-anthos-default-user
    name: cluster-name-cluster-name-anthos-default-user
    current-context: cluster-name-cluster-name-anthos-default-user
    kind: Config
    preferences: {}
    users:
    - name: cluster-name-anthos-default-user
    user:
      exec:
        apiVersion: client.authentication.k8s.io/v1
        args:
        - --audience=root-admin
        command: gdcloud-k8s-auth-plugin
        env: null
        installHint: Run 'gdcloud components install gdcloud-k8s-auth-plugin' to use plugin
        interactiveMode: Never
        provideClusterInfo: false
    
  4. 如需验证您是否可以访问集群,请使用生成的用户身份 kubeconfig 文件登录:

    kubectl --kubeconfig /tmp/admin-kubeconfig-with-user-identity.yaml version
    

退出账号

如需退出 GDC 控制台,请执行以下操作:

控制台

点击菜单栏中的 退出

CLI

从 CLI 退出:

gdcloud auth revoke

手动生成 kubeconfig 文件

如果您通过直接调用 KRM API 使用 kubectl CLI 管理资源,则必须为托管资源的集群或 API 服务器生成 kubeconfig 文件,具体取决于您要管理的资源类型。

您还必须了解 GDC universe 配置,以确定您打算将可用区级资源部署到的可用区,或全局资源的全局 API 服务器。如需了解详情, 请参阅 全局和可用区级 API 服务器

确定您要操作的资源是全局资源还是可用区级资源。如果您不确定,请访问资源的专用文档以获取帮助。

根据您的资源类型完成适用的设置。

可用区级 Management API 服务器资源

如需为可用区级 Management API 服务器生成 kubeconfig 文件,请完成以下步骤:

  1. 查看所有可用的可用区:

    gdcloud zones list
    

    记下托管自定义资源的可用区的名称。

  2. ZONE 环境变量设置为托管可用区级资源的可用区:

    export ZONE="ZONE"
    

    ZONE 替换为可用区名称。

  3. 设置 MANAGEMENT_API_SERVER 环境变量:

    export MANAGEMENT_API_SERVER="ORG_NAME-admin"
    

    ORG_NAME 替换为您的组织名称,例如 org-1

  4. 为目标可用区生成 Management API 服务器 kubeconfig 文件,并验证凭据:

    export KUBECONFIG=${HOME}/${MANAGEMENT_API_SERVER:?}-kubeconfig.yaml
    rm ${KUBECONFIG:?}
    gdcloud clusters get-credentials ${MANAGEMENT_API_SERVER:?} --zone ${ZONE:?}
    [[ $(kubectl config current-context) == *${MANAGEMENT_API_SERVER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
    

    rm ${KUBECONFIG:?} 命令会移除主目录中的现有 kubeconfig 文件。生成新的 kubeconfig 文件时,它会覆盖现有文件。如果您不想覆盖或移除现有文件,请将其备份到其他安全位置。

可用区级 Kubernetes 集群资源

如需为可用区级 Kubernetes 集群生成 kubeconfig 文件,请完成以下步骤:

  1. 查看所有可用的可用区:

    gdcloud zones list
    

    记下托管自定义资源的可用区的名称。

  2. ZONE 环境变量设置为托管 Kubernetes 集群的可用区:

    export ZONE="ZONE"
    

    ZONE 替换为可用区名称。

  3. 设置 KUBERNETES_CLUSTER 环境变量:

    export KUBERNETES_CLUSTER="KUBERNETES_CLUSTER_NAME"
    

    KUBERNETES_CLUSTER_NAME 替换为 Kubernetes 集群的名称。

  4. 为目标可用区变量生成 Kubernetes 集群 kubeconfig 文件,并验证凭据:

    export KUBECONFIG=${HOME}/${KUBERNETES_CLUSTER:?}-kubeconfig.yaml
    rm ${KUBECONFIG:?}
    gdcloud clusters get-credentials ${KUBERNETES_CLUSTER:?} --zone ${ZONE:?}
    [[ $(kubectl config current-context) == *${KUBERNETES_CLUSTER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
    

    rm ${KUBECONFIG:?} 命令会移除主目录中的现有 kubeconfig 文件。生成新的 kubeconfig 文件时,它会覆盖现有文件。如果您不想覆盖或移除现有文件,请将其备份到其他安全位置。

全局 API 服务器资源

如需为全局 API 服务器生成 kubeconfig 文件,请完成以下步骤:

  1. 设置 GLOBAL_API_SERVER 环境变量:

    export GLOBAL_API_SERVER="global-api"
    
  2. 生成全局 API 服务器 kubeconfig 文件,并验证凭据:

    export KUBECONFIG=${HOME}/${GLOBAL_API_SERVER:?}-kubeconfig.yaml
    rm ${KUBECONFIG:?}
    gdcloud clusters get-credentials ${GLOBAL_API_SERVER:?}
    [[ $(kubectl config current-context) == *${GLOBAL_API_SERVER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
    

    rm ${KUBECONFIG:?} 命令会移除主目录中的现有 kubeconfig 文件。生成新的 kubeconfig 文件时,它会覆盖现有文件。如果您不想覆盖或移除现有文件,请将其备份到其他安全位置。

会话闲置时退出

如果会话闲置 15 分钟或更长时间,GDC 控制台和 gdcloud CLI 会将您退出。 Distributed Cloud 将会话闲置视为在打开的会话期间您没有任何活跃互动(例如没有光标或键盘移动)的时间段。在用户活跃的情况下,活跃会话最多可持续 12 小时。

控制台

如果会话闲置,GDC 控制台会将您退出。在 GDC 控制台因闲置而将您退出前两分钟,您会收到一个对话框,提醒您即将退出:

控制台界面显示了一个对话框,其中包含一个计时器,显示在因用户无活动而将用户退出登录之前还剩 99 秒。

因闲置而将您退出后,您会看到以下屏幕:

控制台界面显示登录界面,其中包含一个横幅,横幅上显示会话退出文本:“您已退出系统,因为您的会话处于不活动状态的时间过长。请重新登录,或与您的管理员联系以寻求帮助。

如需重新登录 GDC 控制台,请选择您的身份提供方并添加您的登录凭据。如果您使用监控信息中心等服务,并且 GDC 控制台因闲置而将您退出,请重新登录以获取访问权限。

gdcloud

如果会话闲置,gdcloud CLI 会将您退出。在 gdcloud CLI 将您退出后,如果您尝试运行命令,则会收到授权错误:

Error: error when creating kube client: unable to create k8sclient: Unauthorized

如需重新登录 GDC,请按照 登录中的 CLI 步骤操作。

如果您通过 Management API 服务器重新登录 GDC,则 kubeconfig 文件会自动更新。如需避免 kubeconfig 文件更新,请在 gdcloud auth login 命令中使用 --skip-kubeconfig-update 标志。

kubectl

gdcloud CLI 会在会话闲置后使您的 kubeconfig 文件过期。如果您在闲置后尝试运行 kubectl 命令,则会收到授权错误:

error: You must be logged in to the server (Unauthorized)

如需重新登录并使用 kubeconfig 文件,请按照 登录中的 CLI 步骤操作。对于每次会话超时,您都必须重新生成 kubeconfig 文件。

监控登录和新用户活动

登录等活动会导出为审核日志。如需详细了解如何查看审核日志,请参阅 审核日志