登录

本页介绍了如何在 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 进行主账号的身份验证。gcloud CLI 会使用该主账号进行身份验证和授权,以管理 Google Cloud 资源和服务。

在登录之前,请确保您已完成以下操作:

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

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

  • 管理 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. 按照终端上的说明操作。成功登录后,终端会显示消息:You are now logged in

  • 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/admin-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 全球配置,以确定您打算将地区级资源部署到哪些地区,或者将全球资源部署到哪个全球 API 服务器。如需了解详情,请参阅全球和可用区级 API 服务器

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

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

可用区级管理 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. 为目标可用区生成管理 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 会将您退出登录。 分布式云会将会话不活跃视为开放会话期间您未进行任何主动互动(例如未移动光标或使用键盘)的时间段。在用户活跃的情况下,有效会话最多可持续 12 小时。

控制台

对于会话闲置,GDC 控制台会将您退出登录。在 GDC 控制台因您未做任何操作而将您退出登录前两分钟,您会收到一个对话框,其中会提醒您即将退出登录:

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

在因闲置而将您退出账号后,您会看到以下界面:

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

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

gdcloud

如果会话处于不活跃状态,gcloud 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 文件。

监控登录和新用户活动

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