4.7. Ceph Object Gateway の高可用性
ストレージ管理者は、Ceph Object Gateway のインスタンス数を単一のゾーンに割り当てることができます。これにより、負荷の増加 (つまり同じゾーングループおよびゾーン) としてスケールアウトすることができます。ただし、高可用性プロキシーを使用するためにフェデレーションされたアーキテクチャーは必要ありません。各 Ceph Object Gateway デーモンには独自の IP アドレスがあるため、Ingress
サービスを使用して、多数の Ceph Object Gateway デーモンまたはノードで負荷を分散できます。Ingress
サービスは、Ceph Object Gateway 環境の HAProxy および keepalived
デーモンを管理します。HAProxy サーバーで HTTPS トラフィックを終了し、HAProxy サーバーと Ceph Object Gateway の Beast フロントエンド Web サーバーインスタンスの間に HTTP を使用することもできます。
4.7.1. 前提条件
- 異なるホストで実行している 2 つ以上の Ceph Object Gateway デーモン。
-
異なるホストで実行されている
Ingress
サービスの 2 つ以上のインスタンスの容量。
4.7.2. 高可用性サービス
Ingress
サービスは、Ceph Object Gateway に可用性の高いエンドポイントを提供します。Ingress
サービスは、必要に応じて任意の数のホストにデプロイできます。Red Hat では、それぞれが ingress
サービスで設定されている Red Hat Enterprise Linux 8 サーバーを少なくとも 2 つ用意することを推奨しています。最小限の設定オプションを使用して、高可用性 (HA) サービスを実行できます。Ceph オーケストレーターは、フローティング仮想 IP アドレスで負荷分散を提供することで haproxy
および keepalived
デーモンを管理する ingress
サービスをデプロイします。アクティブな haproxy
は、利用可能なすべての Ceph Object Gateway デーモンに、すべての Ceph Object Gateway 要求を配布します。
仮想 IP アドレスは、いずれかの Ingress
ホスト (プライマリーホスト) でまとめて自動的に設定されます。Ceph オーケストレーターは、同じサブネットの一部として設定された既存の IP アドレスに基づいて最初のネットワークインターフェイスを選択します。仮想 IP アドレスが同じサブネットに属さない場合、既存の IP アドレスに一致するように Ceph オーケストレーターのサブネットリストを定義することができます。keepalived
デーモンとアクティブな haproxy
がプライマリーホストで応答しない場合、仮想 IP アドレスはバックアップホストに移動します。このバックアップホストが新しいプライマリーホストになります。
現在、IP アドレスが設定されていないネットワークインターフェイスに仮想 IP アドレスを設定することはできません。
セキュアソケットレイヤー (SSL) を使用するには、Ceph Object Gateway ではなく Ingress
サービスによって SSL を終了する必要があります。

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
ファイルを作成します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [root@host01 ~] touch ingress.yaml
[root@host01 ~] touch ingress.yaml
ingress.yaml
ファイルを開いて編集します。以下のオプションを追加し、環境に適した値を追加します。構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow service_type: ingress service_id: SERVICE_ID placement: hosts: - HOST1 - HOST2 - HOST3 spec: backend_service: SERVICE_ID virtual_ip: IP_ADDRESS/CIDR frontend_port: INTEGER monitor_port: INTEGER virtual_interface_networks: - IP_ADDRESS/CIDR ssl_cert: |
service_type: ingress
1 service_id: SERVICE_ID
2 placement:
3 hosts: - HOST1 - HOST2 - HOST3 spec: backend_service: SERVICE_ID virtual_ip: IP_ADDRESS/CIDR
4 frontend_port: INTEGER
5 monitor_port: INTEGER
6 virtual_interface_networks:
7 - IP_ADDRESS/CIDR ssl_cert: |
8 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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-----
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 シェルを起動します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cephadm shell --mount ingress.yaml:/var/lib/ceph/radosgw/igress.yaml
[root@host01 ~]# cephadm shell --mount ingress.yaml:/var/lib/ceph/radosgw/igress.yaml
最新の
haproxy
イメージおよびkeepalived
イメージを設定します。構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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 config set mgr mgr/cephadm/container_image_haproxy HAPROXY_IMAGE_ID ceph config set mgr mgr/cephadm/container_image_keepalived KEEPALIVED_IMAGE_ID
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [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:latest
[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:latest
Ceph オーケストレーターを使用して新規
Ingress
サービスをインストールおよび設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow [ceph: root@host01 /]# ceph orch apply -i ingress.yaml
[ceph: root@host01 /]# ceph orch apply -i ingress.yaml
Ceph オーケストレーターが完了したら、HA 設定を確認します。
Ingress
サービスを実行しているホストで、仮想 IP アドレスが表示されることを確認します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ip addr show
[root@host01 ~]# ip addr show
Ceph クライアントから Ceph Object Gateway にアクセスしてみてください。
構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow wget HOST_NAME
wget HOST_NAME
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow wget host01.example.com
[root@client ~]# wget host01.example.com
以下の例のような内容を含む
index.html
が返される場合、Ceph Object Gateway の HA 設定は正常に機能しています。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <?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>
<?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>
関連情報
- 詳細は、Performing a Standard RHEL Installation Guide を参照してください。
- 詳細は、Red Hat Ceph Storage Object Gateway Guide の High availability service セクションを参照してください。
4.7.4. HAProxy および Keepalived
ストレージ管理者は、Ceph Object Gateway のインスタンス数を単一のゾーンに割り当てることができます。これにより、負荷の増加 (つまり同じゾーングループおよびゾーン) としてスケールアウトすることができます。ただし、HAProxy および keepalived
を使用するためにフェデレーションされたアーキテクチャーは必要ありません。各オブジェクトゲートウェイは独自の IP アドレスを持つため、HAProxy および keepalived
を使用して Ceph Object Gateway サーバー全体で負荷を分散できます。
HAProxy および keepalived
のもう 1 つのユースケースは、HAProxy サーバーで HTTPS を終了することです。HAProxy サーバーを使用して HAProxy サーバーで HTTPS を終了でき、HAProxy サーバーと Beast Web サーバーインスタンスの間で HTTP を使用できます。
4.7.4.1. HAProxy/keepalived の前提条件
Ceph Object Gateway で HA プロキシーを設定するには、以下が必要です。
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ポート 80 で実行されるよう設定された同じゾーン内の Ceph Object Gateway サーバー 2 台以上簡単なインストール手順に従うと、ゲートウェイインスタンスはデフォルトで同じゾーングループおよびゾーンに置かれます。フェデレーションアーキテクチャーを使用している場合は、インスタンスが同じゾーングループとゾーンにあることを確認してください。
-
HAProxy および
keepalived
の 2 台以上の Red Hat Enterprise Linux 8 サーバー
本セクションでは、少なくとも 2 つの Ceph Object Gateway サーバーが実行されていることを前提とし、ポート 80
でテストスクリプトを実行する際に、このいずれかのサーバーからの有効な応答を取得していることを前提としています。
4.7.4.2. HAProxy ノードの準備
以下の設定は、haproxy
と haproxy2
という名前の 2 つの HAProxy ノードと、rgw1
と rgw2
という名前の 2 台の Ceph Object Gateway サーバーを前提としています。優先する命名規則を使用する場合があります。少なくとも 2 つの HAProxy ノードで以下の手順を実行します。
- Install Red Hat Enterprise Linux 8.x
ノードを登録します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow subscription-manager register
[root@haproxy]# subscription-manager register
RHEL サーバーリポジトリーを有効にします。
Red Hat Enterprise Linux 9
Copy to Clipboard Copied! Toggle word wrap Toggle overflow subscription-manager repos --enable=rhel-9-server-rpms
[root@haproxy]# subscription-manager repos --enable=rhel-9-server-rpms
Red Hat Enterprise Linux 8
Copy to Clipboard Copied! Toggle word wrap Toggle overflow subscription-manager repos --enable=rhel-8-server-rpms
[root@haproxy]# subscription-manager repos --enable=rhel-8-server-rpms
サーバーを更新します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow dnf update -y
[root@haproxy]# dnf update -y
-
必要に応じて管理ツール (
wget
、vim
など) をインストールします。 ポート
80
を開きます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow firewall-cmd --zone=public --add-port 80/tcp --permanent firewall-cmd --reload
[root@haproxy]# firewall-cmd --zone=public --add-port 80/tcp --permanent [root@haproxy]# firewall-cmd --reload
HTTPS の場合は、ポート
443
を開きます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow firewall-cmd --zone=public --add-port 443/tcp --permanent firewall-cmd --reload
[root@haproxy]# firewall-cmd --zone=public --add-port 443/tcp --permanent [root@haproxy]# firewall-cmd --reload
4.7.4.3. keepalived のインストールと設定
少なくとも 2 つの HAProxy ノードで以下の手順を実行します。
前提条件
- 少なくとも 2 つの HAProxy ノード
- 少なくとも 2 つの Object Gateway ノード
手順
keepalived
をインストールします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow yum install -y keepalived
[root@haproxy]# yum install -y keepalived
両方の HAProxy ノードで
keepalived
を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow vim /etc/keepalived/keepalived.conf
[root@haproxy]# vim /etc/keepalived/keepalived.conf
設定ファイルには、
haproxy
プロセスを確認するスクリプトがあります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow vrrp_script chk_haproxy { script "killall -0 haproxy" # check the haproxy process interval 2 # every 2 seconds weight 2 # add 2 points if OK }
vrrp_script chk_haproxy { script "killall -0 haproxy" # check the haproxy process interval 2 # every 2 seconds weight 2 # add 2 points if OK }
次に、プライマリーロードバランサーとバックアップロードバランサーのインスタンスは、ネットワークインターフェイスとして
eno1
を使用します。また、仮想 IP アドレス (192.168.1.20
) も割り当てます。プライマリーロードバランサーノード
Copy to Clipboard Copied! Toggle word wrap Toggle overflow vrrp_instance RGW { state MASTER # might not be necessary. This is on the primary LB node. @main interface eno1 priority 100 advert_int 1 interface eno1 virtual_router_id 50 @main unicast_src_ip 10.8.128.43 80 unicast_peer { 10.8.128.53 } authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.20 } track_script { chk_haproxy } } virtual_server 192.168.1.20 80 eno1 { #populate correct interface delay_loop 6 lb_algo wlc lb_kind dr persistence_timeout 600 protocol TCP real_server 10.8.128.43 80 { # ip address of rgw2 on physical interface, haproxy listens here, rgw listens to localhost:8080 or similar weight 100 TCP_CHECK { # perhaps change these to a HTTP/SSL GET? connect_timeout 3 } } real_server 10.8.128.53 80 { # ip address of rgw3 on physical interface, haproxy listens here, rgw listens to localhost:8080 or similar weight 100 TCP_CHECK { # perhaps change these to a HTTP/SSL GET? connect_timeout 3 } } }
vrrp_instance RGW { state MASTER # might not be necessary. This is on the primary LB node. @main interface eno1 priority 100 advert_int 1 interface eno1 virtual_router_id 50 @main unicast_src_ip 10.8.128.43 80 unicast_peer { 10.8.128.53 } authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.20 } track_script { chk_haproxy } } virtual_server 192.168.1.20 80 eno1 { #populate correct interface delay_loop 6 lb_algo wlc lb_kind dr persistence_timeout 600 protocol TCP real_server 10.8.128.43 80 { # ip address of rgw2 on physical interface, haproxy listens here, rgw listens to localhost:8080 or similar weight 100 TCP_CHECK { # perhaps change these to a HTTP/SSL GET? connect_timeout 3 } } real_server 10.8.128.53 80 { # ip address of rgw3 on physical interface, haproxy listens here, rgw listens to localhost:8080 or similar weight 100 TCP_CHECK { # perhaps change these to a HTTP/SSL GET? connect_timeout 3 } } }
バックアップロードバランサーノード
Copy to Clipboard Copied! Toggle word wrap Toggle overflow vrrp_instance RGW { state BACKUP # might not be necessary? priority 99 advert_int 1 interface eno1 virtual_router_id 50 unicast_src_ip 10.8.128.53 80 unicast_peer { 10.8.128.43 } authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.20 } track_script { chk_haproxy } } virtual_server 192.168.1.20 80 eno1 { #populate correct interface delay_loop 6 lb_algo wlc lb_kind dr persistence_timeout 600 protocol TCP real_server 10.8.128.43 80 { # ip address of rgw2 on physical interface, haproxy listens here, rgw listens to localhost:8080 or similar weight 100 TCP_CHECK { # perhaps change these to a HTTP/SSL GET? connect_timeout 3 } } real_server 10.8.128.53 80 { # ip address of rgw3 on physical interface, haproxy listens here, rgw listens to localhost:8080 or similar weight 100 TCP_CHECK { # perhaps change these to a HTTP/SSL GET? connect_timeout 3 } } }
vrrp_instance RGW { state BACKUP # might not be necessary? priority 99 advert_int 1 interface eno1 virtual_router_id 50 unicast_src_ip 10.8.128.53 80 unicast_peer { 10.8.128.43 } authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.20 } track_script { chk_haproxy } } virtual_server 192.168.1.20 80 eno1 { #populate correct interface delay_loop 6 lb_algo wlc lb_kind dr persistence_timeout 600 protocol TCP real_server 10.8.128.43 80 { # ip address of rgw2 on physical interface, haproxy listens here, rgw listens to localhost:8080 or similar weight 100 TCP_CHECK { # perhaps change these to a HTTP/SSL GET? connect_timeout 3 } } real_server 10.8.128.53 80 { # ip address of rgw3 on physical interface, haproxy listens here, rgw listens to localhost:8080 or similar weight 100 TCP_CHECK { # perhaps change these to a HTTP/SSL GET? connect_timeout 3 } } }
keepalived
サービスを有効にして開始します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl enable keepalived systemctl start keepalived
[root@haproxy]# systemctl enable keepalived [root@haproxy]# systemctl start keepalived
関連情報
-
keepalived
の使用に関する詳細は、Red Hat カスタマーポータルの Setting up a Linux cluster with Keepalived: Basic configuration の記事を参照してください。
4.7.4.4. HAProxy のインストールおよび設定
少なくとも 2 つの HAProxy ノードで以下の手順を実行します。
haproxy
をインストールします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow dnf install haproxy
[root@haproxy]# dnf install haproxy
SELinux および HTTP に対して
haproxy
を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow vim /etc/firewalld/services/haproxy-http.xml
[root@haproxy]# vim /etc/firewalld/services/haproxy-http.xml
以下の行を追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <?xml version="1.0" encoding="utf-8"?> <service> <short>HAProxy-HTTP</short> <description>HAProxy load-balancer</description> <port protocol="tcp" port="80"/> </service>
<?xml version="1.0" encoding="utf-8"?> <service> <short>HAProxy-HTTP</short> <description>HAProxy load-balancer</description> <port protocol="tcp" port="80"/> </service>
root
として、正しい SELinux コンテキストとファイルパーミッションをhaproxy-http.xml
ファイルに割り当てます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow cd /etc/firewalld/services restorecon haproxy-http.xml chmod 640 haproxy-http.xml
[root@haproxy]# cd /etc/firewalld/services [root@haproxy]# restorecon haproxy-http.xml [root@haproxy]# chmod 640 haproxy-http.xml
HTTPS を使用する場合は、SELinux および HTTPS に対して
haproxy
を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow vim /etc/firewalld/services/haproxy-https.xml
[root@haproxy]# vim /etc/firewalld/services/haproxy-https.xml
以下の行を追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <?xml version="1.0" encoding="utf-8"?> <service> <short>HAProxy-HTTPS</short> <description>HAProxy load-balancer</description> <port protocol="tcp" port="443"/> </service>
<?xml version="1.0" encoding="utf-8"?> <service> <short>HAProxy-HTTPS</short> <description>HAProxy load-balancer</description> <port protocol="tcp" port="443"/> </service>
root
で、正しい SELinux コンテキストとファイルパーミッションをhaproxy-https.xml
ファイルに割り当てます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow cd /etc/firewalld/services restorecon haproxy-https.xml chmod 640 haproxy-https.xml
# cd /etc/firewalld/services # restorecon haproxy-https.xml # chmod 640 haproxy-https.xml
HTTPS を使用する場合は、SSL のキーを生成します。証明書がない場合は、自己署名証明書を使用できます。
最後に、証明書と鍵を PEM ファイルに格納します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cat example.com.crt example.com.key > example.com.pem cp example.com.pem /etc/ssl/private/
[root@haproxy]# cat example.com.crt example.com.key > example.com.pem [root@haproxy]# cp example.com.pem /etc/ssl/private/
haproxy
を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow vim /etc/haproxy/haproxy.cfg
[root@haproxy]# vim /etc/haproxy/haproxy.cfg
global
およびdefaults
は変更しない可能性があります。defaults
セクションの後に、frontend
セクションおよびbackend
セクションを設定する必要があります。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow frontend http_web bind *:80 mode http default_backend rgw frontend rgw-https bind *:443 ssl crt /etc/ssl/private/example.com.pem default_backend rgw backend rgw balance roundrobin mode http server rgw1 10.0.0.71:80 check server rgw2 10.0.0.80:80 check
frontend http_web bind *:80 mode http default_backend rgw frontend rgw-https bind *:443 ssl crt /etc/ssl/private/example.com.pem default_backend rgw backend rgw balance roundrobin mode http server rgw1 10.0.0.71:80 check server rgw2 10.0.0.80:80 check
HAProxy 設定の詳細は、Red Hat Update Infrastructure System 管理者ガイドの HAProxy ロードバランサー―の追加 を参照してください。
haproxy
の有効化/起動Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl enable haproxy systemctl start haproxy
[root@haproxy]# systemctl enable haproxy [root@haproxy]# systemctl start haproxy
4.7.4.5. HAProxy 設定のテスト
HAProxy ノードで、
keepalived
設定の仮想 IP アドレスが表示されることを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ip addr show
[root@haproxy]# ip addr show
Red Hat Ceph Dashboard コンテナーをホストするノードで、ロードバランサー設定を使用して Ceph Object Gateway ノードに到達できるかどうかを確認します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow wget haproxy
[root@haproxy]# wget haproxy
上記のコマンドの結果は以下のコマンドと同じになるはずです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow wget rgw1
[root@haproxy]# wget rgw1
以下の内容を含む
index.html
ファイルを返す場合は、次のコマンドを実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow <?xml version="1.0" encoding="UTF-8"?> <ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2020-03-01/"> <Owner> <ID>anonymous</ID> <DisplayName></DisplayName> </Owner> <Buckets> </Buckets> </ListAllMyBucketsResult>
<?xml version="1.0" encoding="UTF-8"?> <ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2020-03-01/"> <Owner> <ID>anonymous</ID> <DisplayName></DisplayName> </Owner> <Buckets> </Buckets> </ListAllMyBucketsResult>
その後、設定が正常に機能します。