验证登录

验证您是否可以使用 GDC 控制台或 gdcloud CLI 登录。

登录

如需登录 Distributed Cloud,请完成以下步骤:

控制台

在新浏览器标签页中打开以下网址,以访问分布式云界面:

https://GDC_URL

GDC_URL 替换为配置了域名系统 (DNS) 服务的 Infrastructure Operator (IO) 提供的网域名称。

首次打开任何网址时,系统会将您重定向到身份提供方登录页面。如需登录,请使用您之前创建的用户名和密码。

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 身份验证

如需登录集群,请完成以下步骤:

  1. 导出您要存储集群 kubeconfig 文件的路径:

      export KUBECONFIG=CLUSTER_KUBECONFIG
    

    CLUSTER_KUBECONFIG 替换为用于存储 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

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

      export KUBECONFIG=/tmp/admin-kubeconfig-with-user-identity.yaml
    
  6. 使用您的用户身份生成 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
    
  7. 如需验证您是否可以访问集群,请使用生成的 kubeconfig 文件以用户身份登录:

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

退出

如需验证退出,请执行以下操作:

控制台

如需从网页界面中退出,请点击菜单栏中的 Logout

CLI

从 CLI 退出:

gdcloud auth revoke

手动生成 kubeconfig 文件

如果您通过直接调用 KRM API 来使用 kubectl CLI 管理资源,则必须根据您管理的资源类型,为托管资源的集群生成 kubeconfig 文件。可用的集群和服务器如下:

集群 名称
根管理员集群 root-admin
根全局 API 服务器 global-api
组织管理员集群(v1 版组织) ORG_NAME-admin
系统集群(v1 组织) ORG_NAME-系统
组织基础架构集群(第 2 版组织) ORG_NAME-infra
Management API 服务器(v2 组织) ORG_NAME-admin
组织管理员全局 API 服务器 global-api
用户集群 CLUSTER_NAME

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

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

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

可用区级资源

完成以下步骤,为区域集群生成 kubeconfig 文件:

  1. 查看所有可用区:

    gdcloud zones list
    

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

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

    export ZONE="ZONE"
    

    ZONE 替换为可用区名称。

  3. 设置 CLUSTER 环境变量:

    export CLUSTER="CLUSTER_NAME"
    

    CLUSTER_NAME 替换为托管资源的集群的名称。

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

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

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

全球性资源

完成以下步骤,为全局 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 文件,新生成的 kubeconfig 文件也会覆盖该文件。如果您不想覆盖或移除现有文件,请将其备份到其他安全位置。

会话无活动状态下的退出

如果会话处于非活动状态的时间超过 15 分钟,GDC 控制台和 gdcloud CLI 会将您退出登录。 GDC 将会话不活动视为开放会话期间您没有任何主动互动的时间段,例如没有光标或键盘移动。在用户活跃的情况下,有效会话最多可持续 12 小时。

控制台

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

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

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

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

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

CLI

如果会话处于不活跃状态,gcloud CLI 会将您退出。在 gdcloud CLI 将您退出登录后,如果您尝试运行命令,则会收到授权错误:

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

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

kubectl

gdcloud CLI 会在会话处于不活动状态一段时间后使您的 kubeconfig 文件过期。如果您在不活动一段时间后尝试运行 kubectl 命令,则会收到授权错误:

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

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