openshift

openshift 使用S3作为registry 存储

2018-11-23  本文已影响0人  一个很久没写代码的人

S3 是AWS提供的存储服务,可以通过RestAPI进行访问,CEPH提供了一个GateWay API 来支持通过S3API来访问ceph
在OpenShift中支持S3,因此可以在openshift中通过S3接口访问ceph,本文目标是,通过S3 API 将openshift default registry数据保存在Ceph中

步骤

  1. 创建config.yaml 文件
version: 0.1
log:
  level: debug
http:
  addr: :5000
storage:
  cache:
    blobdescriptor: inmemory
  s3:
    accesskey: awsaccesskey 
    secretkey: awssecretkey 
    region: us-west-1
    regionendpoint: http://myobjects.local
    bucket: bucketname
    encrypt: true
    keyid: mykeyid
    secure: true
    v4auth: false
    chunksize: 5242880
    rootdirectory: /s3/object/name/prefix
auth:
  openshift:
    realm: openshift
middleware:
  registry:
    - name: openshift
  repository:
    - name: openshift
  1. 创建一个名为registry-config 的secret
oc secrets new registry-config config.yml=./config.yaml
  1. registry-config 作为一个volume添加到registry 的DC中
    此时会将config.yaml 文件挂载在 /etc/docker/registry 目录下
oc volume dc/docker-registry --add --type=secret \
    --secret-name=registry-config -m /etc/docker/registry/
  1. 在dc中添加参数 REGISTRY_CONFIGURATION_PATH,使其使用新加的配置文件创建registry pod
oc set env dc/docker-registry \
    REGISTRY_CONFIGURATION_PATH=/etc/docker/registry/config.yml

等registry 重启后即可正常使用

排查方案

  1. 要确保Ceph可以正常访问,可以通过浏览器访问Ceph bucket 验证

Reference:
https://docs.openshift.com/container-platform/3.3/install_config/registry/extended_registry_configuration.html#advanced-overriding-the-registry-configuration
https://docs.docker.com/registry/storage-drivers/s3/#parameters

上一篇下一篇

猜你喜欢

热点阅读