第11章 オーバークラウドのアップグレード
環境内の各スタック上のオーバークラウド全体で Red Hat OpenStack Platform コンテンツをアップグレードします。
11.1. 各スタック内のすべてのノードでの RHOSP のアップグレード リンクのコピーリンクがクリップボードにコピーされました!
メインスタックから開始して、スタックごとにすべてのオーバークラウドノードを Red Hat OpenStack Platform (RHOSP) 17.1 にアップグレードします。
オーバークラウドノードをアップグレードする前に、Pacemaker がすべてのコントローラーで実行されていることを確認する必要があります。
このアップグレード手順の所要時間と影響については、アップグレードの所要時間と影響 を参照してください。
手順
-
アンダークラウドホストに
stackユーザーとしてログインします。 stackrcアンダークラウド認証情報ファイルを入手します。$ source ~/stackrcML2/OVN を含む DCN またはマルチセルのデプロイメントがない場合は、メインスタックのすべてのノードで RHOSP をアップグレードします。
$ openstack overcloud upgrade run --yes --stack <stack> --debug --limit allovercloud,undercloud --playbook all重要the-
limitオプションを変更しないでください。ワークロードの中断を避けるために、スタックのすべてのノードを一度にアップグレードする必要があります。全オーバークラウドノードを同時にアップグレードする重要性については、The important of Red Hat OpenStack Platform on all overcloud nodes at once を参照してください。&
lt;stack> をノードをアップグレードするオーバークラウドスタックの名前に置き換えます。RHOSP デプロイメント内のスタックごとにこの手順を繰り返します。
ML2/OVN を含む DCN またはマルチセルのデプロイメントがある場合は、OVN コンテナーと各スタックのすべてのホストパッケージをアップグレードします。DCN およびマルチセルの両方のデプロイメントの場合、まず中央スタックと制御スタックをアップグレードする必要があります。
$ openstack overcloud upgrade run --stack <stack> --tags setup_packages,ovn --limit allovercloud --yes-
&
lt;stack> をアップグレードするスタックの名前に置き換えます。
-
&
中央のスタックまたは制御スタックで RHOSP アップグレードを実行すると、OVN DB は Pacemaker デプロイメントから Ansible 制御クラスターに移行されます。その結果、OVN コントローラーが接続するエンドポイントが変更されます。この接続は、追加のスタックごとに RHOSP のアップグレード中に更新されます。環境のサイズによっては、一部のスタックが後で更新される可能性があります。これにより、データプレーンが停止する可能性があります。この問題を回避するには、コネクションを更新して、以前のエンドポイントと新しいエンドポイントを同時に使用します。以下の例は、マルチセル環境の回避策を示しています。この回避策は、OVN を含む DCN 環境でも同じです。最初に overcloud-export.yaml ファイルをエクスポートするようにしてください。
$ cat <<'EOF' > ~/ovn_workaround.yaml
# Playbook
- become: true
hosts: '{{ ovn_compute_role }}'
name: OVN workaround playbook
tasks:
- name: Read ovn southbound port
command: puppet lookup --facts /etc/puppet/hieradata/service_configs.json ovn::southbound::port --render-as s
register: ovn_southbound_port
failed_when: false
- name: Read ovn vip
command: puppet lookup --facts /etc/puppet/hieradata/all_nodes.json ovn_dbs_vip --render-as s
register: ovn_dbs_vip
- name: Create the new connection
set_fact:
new_ovn_connection: "ssl:{{ovn_dbs_vip.stdout}}:{{ovn_southbound_port.stdout}},ssl:{{parameter_defaults.AllNodesExtraMapData.ovn_dbs_node_ips[0]}}:{{ovn_southbound_port.stdout}},ssl:{{parameter_defaults.AllNodesExtraMapData.ovn_dbs_node_ips[1]}}:{{ovn_southbound_port.stdout}},ssl:{{parameter_defaults.AllNodesExtraMapData.ovn_dbs_node_ips[2]}}:{{ovn_southbound_port.stdout}}"
- name: showing the new connection
debug:
msg: "the new connection is {{ new_ovn_connection }}"
tags:
- debug_msg
- name: Get ovn connection
command: ovs-vsctl get Open_vSwitch . external_ids:ovn-remote
register: ovn_connection
- set_fact:
change_needed: "{{ ovn_connection.stdout.split(',') | length == 1 }}"
- name: Reconfigure ovn connection
when: change_needed|bool
command: ovs-vsctl set Open_vSwitch . external_ids:ovn-remote="{{new_ovn_connection}}"
tags:
- apply_conf
- name: Reconfigure ovn connection for metadata agents on computes
when: change_needed|bool
shell: |
crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/plugins/networking-ovn/networking-ovn-metadata-agent.ini ovn ovn_sb_connection "{{ new_ovn_connection }}"
systemctl restart tripleo_ovn_metadata_agent
tags:
- apply_conf
EOF
$ ansible-playbook -i overcloud-deploy/$CELLSTACK/tripleo-ansible-inventory.yaml -e @~/overcloud-deploy/overcloud/overcloud-export.yaml -e ovn_compute_role=Compute ovn_workaround.yaml
ovn-controllerがすべてのオーバークラウドノードで更新されていることを確認します。$ sudo podman ps | grep ovn_controller出力例
5ddc21ef9056 undercloud-0.ctlplane.redhat.local:8787/rh-osbs/rhosp17-openstack-ovn-controller:17.1_20230905.1 kolla_start 20 hours ago Up 20 hours (healthy) ovn_controller中央スタックまたは制御スタックから始めて、サービスコンテナーをアップグレードして、各スタック上のホストパッケージを更新します。
$ openstack overcloud upgrade run --stack <stack> --skip-tags ovn --limit allovercloud --yes注記長いメンテナンス期間を回避するには、最初にセルスタックの
CellControllerロールでのみアップグレードを実行し、次に次のメンテナンスウィンドウの cell スタック内の全ノードでアップグレードを実行します。以下に例を示します。最初のメンテナンス期間:
$ openstack overcloud upgrade run --stack AZ2 --skip-tags ovn --limit CellController --yes2 番目のメンテナンス期間:
$ openstack overcloud upgrade run --stack AZ2 --skip-tags ovn --limit allovercloud --yes