为项目安装并配置存储 CLI

本页面将指导您如何安装和配置 gdcloud CLI,以便在处理 Google Distributed Cloud (GDC) 网闸隔离项目时管理对象存储区。其中涵盖了如何下载、安装和配置必要的组件和设置,以便在此隔离环境中有效使用存储桶和对象。

本页面适用于基础设施运维人员群组中的 IT 管理员或应用运维人员群组中的开发者等受众群体,他们希望在 GDC 网闸隔离配置环境中为项目预配和管理对象存储区存储桶。如需了解详情,请参阅适用于 GDC 网闸隔离配置文档的受众群体。

准备工作

如需安装和配置存储 CLI,请与您的 IAM 组织管理员联系,请求获取组织网络政策管理员 (org-network-policy-admin) 角色,以便创建、修改和删除组织网络政策。

下载 gdcloud CLI

按照说明下载 gdcloud CLI。

安装 gdcloud CLI

如需使用存储命令树,必须安装存储依赖项组件。

  1. 按照安装 gdcloud CLI 中的说明操作。

  2. 如需安装存储依赖项组件,请运行以下命令:

    gdcloud components install storage-cli-dependencies
    

    如需详细了解 components install 命令,请参阅安装 gdcloud CLI。

为对象存储配置 gdcloud CLI

必须设置以下配置,才能使用 gdcloud CLI 进行对象存储。

  1. 将 ACCESS_KEY_ID 替换为从获取访问凭证中的 Secret 获取的访问密钥 ID:

    gdcloud config set storage/s3_access_key_id ACCESS_KEY_ID
    
  2. 将 SECRET_ACCESS_KEY 替换为从获取访问凭证中的 Secret 获取的密钥:

    gdcloud config set storage/s3_secret_access_key SECRET_ACCESS_KEY
    
  3. 将 CA_BUNDLE_FILE 替换为 CA 证书的路径。这是属于证书授权机构 (CA) 的数字证书,CA 是负责验证身份的受信任组织。您可以向基础架构运维人员 (IO) 群组的成员请求 GDC CA 信任包。如需详细了解如何获取 GDC CA 证书,请参阅提取 GDC 信任包。

    gdcloud config set storage/s3_custom_ca_certs_file CA_BUNDLE_FILE
    
  4. 将 ENDPOINT 替换为您的基础设施运营商 (IO) 提供的端点:

    gdcloud config set storage/s3_endpoint ENDPOINT
    

    对于双区域存储桶,此步骤略有不同。每个双区域存储桶都提供三个端点,您可以选择其中一个来访问存储桶。在大多数情况下,全球端点是合适的,因为它可以利用自动故障切换功能:

    • Zone1 端点:此端点始终由 zone1 接收。如果使用此端点,则对于写入 zone1 的任何对象,您都具有写后读一致性。但是,如果 zone1 发生故障,客户端需要改用 zone2 或全球端点,才能继续对此存储桶执行读写操作。如果客户端来自用户集群,则只能从 zone1 内部访问此端点。
    • Zone2 端点:此端点始终由 zone2 接收。如果使用此端点,则对于写入 zone2 的任何对象,您都具有写后读一致性。但是,如果 zone2 发生故障,客户端需要改用 zone1 或全球端点,才能继续对此存储桶执行读写操作。如果客户端来自用户集群,则只能从 zone2 内部访问此端点。
    • 全球端点:此端点会将您的请求路由到 zone1 或 zone2。此选项不提供会话亲和性,这意味着使用同一会话发出的请求可能会到达 zone1 或 zone2。这意味着,对于向全球端点发出的请求,无法保证“写后读”一致性。全球端点可在可用区发生故障时提供自动故障切换,因此用户无需像使用可用区级端点那样更改其工作负载中的端点。此外,您可以从所有可用区中的用户集群访问此端点。

    针对管理 API 服务器运行以下命令,以查看存储桶的全球和可用区级端点,并选择要使用的端点:

    kubectl get buckets BUCKET_NAME -n PROJECT_NAME -o jsonpath="{.status.globalEndpoint}" --kubeconfig MANAGEMENT_API_SERVER
    
    kubectl get buckets BUCKET_NAME -n PROJECT_NAME -o jsonpath="{.status.zonalEndpoints}" --kubeconfig MANAGEMENT_API_SERVER