第 11 章 访问 RADOS 对象网关 S3 端点

用户可以直接访问 RADOS 对象网关(RGW)端点。

先决条件

  • 正在运行的 OpenShift Container Storage Platform

流程

  1. 运行 oc get service 命令以获取 RGW 服务名称。

    $ oc get service
    
    NAME                                               TYPE
    rook-ceph-rgw-ocs-storagecluster-cephobjectstore   ClusterIP
    
    CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
    172.30.99.207    <none>        80/TCP     4d15h
  2. 运行 oc expose 命令,以公开 RGW 服务。

    $ oc expose svc/<RGW service name> --hostname=<route name>

    <RGW-service name> 替换为上一步中的 RGW 服务名称。

    <route name> 替换为您要为 RGW 服务创建的路由。

    例如:

    $ oc expose svc/rook-ceph-rgw-ocs-storagecluster-cephobjectstore --hostname=rook-ceph-rgw-ocs.ocp.host.example.com
  3. 运行 oc get route 命令,以确认 oc expose 成功并且存在 RGW 路由。

    $ oc get route
    
    NAME                                               HOST/PORT                                PATH
    rook-ceph-rgw-ocs-storagecluster-cephobjectstore   rook-ceph-rgw-ocsocp.host.example.com
    
    SERVICES                                           PORT         TERMINATION   WILDCARD
    rook-ceph-rgw-ocs-storagecluster-cephobjectstore   http         <none>

验证

  • 要验证 ENDPOINT,请运行以下命令:

    aws s3 --no-verify-ssl --endpoint <ENDPOINT> ls

    <ENDPOINT> 替换为您在上一步中从命令中获得的路由

    例如:

    $ aws s3 --no-verify-ssl --endpoint http://rook-ceph-rgw-ocs.ocp.host.example.com ls
注意

要获取默认用户 ocs-storagecluster-cephobjectstoreuser 的访问密钥和 secret,请运行以下命令:

  • 访问密钥:

    $ oc get secret rook-ceph-object-user-ocs-storagecluster-cephobjectstore-ocs-storagecluster-cephobjectstoreuser  -o yaml | grep -w "AccessKey:" | head -n1 | awk '{print $2}' | base64 --decode
  • secret 密钥:

    $ oc get secret rook-ceph-object-user-ocs-storagecluster-cephobjectstore-ocs-storagecluster-cephobjectstoreuser  -o yaml | grep -w "SecretKey:" | head -n1 | awk '{print $2}' | base64 --decode