4.7.3. Ceph Object Gateway の高可用性の設定
Ceph Object Gateway の高可用性 (HA) を設定するには、YAML 設定ファイルを作成します。また、Ceph オーケストレーターが Ingress サービスのインストール、設定、および管理を行います。Ingress サービスは haproxy および keepalived デーモンを使用して Ceph Object Gateway の高可用性を提供します。
前提条件
-
Ingressサービスをインストールするための、Red Hat Enterprise Linux 8 以降を実行する 2 つ以上のホスト。 - 正常かつ実行中の Red Hat Ceph Storage クラスター
- 異なるホストで実行されている 2 つ以上の Ceph Object Gateway デーモン。
-
Ingressサービスを実行しているホストへのルートレベルのアクセス。 - ファイアウォールを使用している場合は、HTTP 用にポート 80 を開き、HTTPS トラフィック用にポート 443 を開きます。
手順
新規
ingress.yamlファイルを作成します。例
[root@host01 ~] touch ingress.yamlingress.yamlファイルを開いて編集します。以下のオプションを追加し、環境に適した値を追加します。構文
service_type: ingress1 service_id: SERVICE_ID2 placement:3 hosts: - HOST1 - HOST2 - HOST3 spec: backend_service: SERVICE_ID virtual_ip: IP_ADDRESS/CIDR4 frontend_port: INTEGER5 monitor_port: INTEGER6 virtual_interface_networks:7 - IP_ADDRESS/CIDR ssl_cert: |8 - 1
ingressに設定される必要があります。- 2
- 既存の Ceph Object Gateway サービス名と一致する必要があります。
- 3
haproxyおよびkeepalivedコンテナーをデプロイする場所。- 4
ingressサービスを利用できる仮想 IP アドレス。- 5
ingressサービスにアクセスするためのポート。- 6
haproxyロードバランサーのステータスにアクセスするためのポート。- 7
- 利用可能なサブネットのオプションリスト。
- 8
- オプションの SSL 証明書および秘密鍵。
例
service_type: ingress service_id: rgw.foo placement: hosts: - host01.example.com - host02.example.com - host03.example.com spec: backend_service: rgw.foo virtual_ip: 192.168.1.2/24 frontend_port: 8080 monitor_port: 1967 virtual_interface_networks: - 10.10.0.0/16 ssl_cert: | -----BEGIN CERTIFICATE----- MIIEpAIBAAKCAQEA+Cf4l9OagD6x67HhdCy4Asqw89Zz9ZuGbH50/7ltIMQpJJU0 gu9ObNtIoC0zabJ7n1jujueYgIpOqGnhRSvsGJiEkgN81NLQ9rqAVaGpadjrNLcM bpgqJCZj0vzzmtFBCtenpb5l/EccMFcAydGtGeLP33SaWiZ4Rne56GBInk6SATI/ JSKweGD1y5GiAWipBR4C74HiAW9q6hCOuSdp/2WQxWT3T1j2sjlqxkHdtInUtwOm j5Ism276IndeQ9hR3reFR8PJnKIPx73oTBQ7p9CMR1J4ucq9Ny0J12wQYT00fmJp -----END CERTIFICATE----- -----BEGIN PRIVATE KEY----- MIIEBTCCAu2gAwIBAgIUGfYFsj8HyA9Zv2l600hxzT8+gG4wDQYJKoZIhvcNAQEL BQAwgYkxCzAJBgNVBAYTAklOMQwwCgYDVQQIDANLQVIxDDAKBgNVBAcMA0JMUjEM MAoGA1UECgwDUkhUMQswCQYDVQQLDAJCVTEkMCIGA1UEAwwbY2VwaC1zc2wtcmhj czUtOGRjeHY2LW5vZGU1MR0wGwYJKoZIhvcNAQkBFg5hYmNAcmVkaGF0LmNvbTAe -----END PRIVATE KEY-----
Cephadm シェルを起動します。
例
[root@host01 ~]# cephadm shell --mount ingress.yaml:/var/lib/ceph/radosgw/igress.yaml最新の
haproxyイメージおよびkeepalivedイメージを設定します。構文
ceph config set mgr mgr/cephadm/container_image_haproxy HAPROXY_IMAGE_ID ceph config set mgr mgr/cephadm/container_image_keepalived KEEPALIVED_IMAGE_ID例
[ceph: root@host01 /]# ceph config set mgr mgr/cephadm/container_image_haproxy registry.redhat.io/rhceph/rhceph-haproxy-rhel8:latest [ceph: root@host01 /]# ceph config set mgr mgr/cephadm/container_image_keepalived registry.redhat.io/rhceph/keepalived-rhel8:latestCeph オーケストレーターを使用して新規
Ingressサービスをインストールおよび設定します。[ceph: root@host01 /]# ceph orch apply -i ingress.yamlCeph オーケストレーターが完了したら、HA 設定を確認します。
Ingressサービスを実行しているホストで、仮想 IP アドレスが表示されることを確認します。例
[root@host01 ~]# ip addr showCeph クライアントから Ceph Object Gateway にアクセスしてみてください。
構文
wget HOST_NAME例
[root@client ~]# wget host01.example.com以下の例のような内容を含む
index.htmlが返される場合、Ceph Object Gateway の HA 設定は正常に機能しています。例
<?xml version="1.0" encoding="UTF-8"?> <ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Owner> <ID>anonymous</ID> <DisplayName></DisplayName> </Owner> <Buckets> </Buckets> </ListAllMyBucketsResult>