機械翻訳について

5 Leappを使用したOracle Linux 8へのアップグレード

重要:

このドキュメントで説明されているソフトウェアは、Extended SupportまたはSustaining Supportにあります。 詳細は、「Oracleオープン・ソース・サポート・ポリシー」を参照してください。

このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお勧めします。

この章では、Leappユーティリティを使用して、Oracle Cloud Native EnvironmentのノードをOracle Linux 7からOracle Linux 8にアップグレードする方法について説明します。 Leappユーティリティは、オペレーティング・システムをOracle Linux 8にアップグレードし、Oracle Cloud Native Environmentインストールを維持します。

Leapの使用方法の詳細については、「Oracle Linux 8: Leappを使用したシステム・アップグレードの実行」を参照してください。

重要:

ノードをOracle Linux 8にアップグレードする場合は、最初にOracle Linux 7のOracle Cloud Native Environmentリリース1.5をインストールまたはアップグレードする必要があります。

アップグレードの概要

コントロール・プレーンおよびワーカー・ノードをアップグレードするには、クラスタからノードを削除し、オペレーティング・システムをアップグレードしてから、そのノードをクラスタに追加しなおします。 クラスタをOracle Linux 7からOracle Linux 8にアップグレードする基本的なステップを次に示します。
  1. オペレータ・ノード(Platform APIサーバーがある場所)をアップグレードします。

  2. コントロール・プレーンおよびワーカー・ノードをクラスタから削除し、Leappを使用してアップグレードします。

  3. クラスタ内のノードを置換します。

高可用性Kubernetesクラスタのアップグレード時には、クラスタが常に次のものを持つことをお薦めします:

  • 少なくとも3つのコントロール・プレーン・ノード。 アップグレード中は、クラスタ内に5つ以上のコントロール・プレーン・ノードが含まれるようにすることをお薦めします。

  • 少なくとも3つのワーカー・ノード。

  • クラスタ内のワークロードには、ワーカー・ノードの1/3を削除できるだけの十分なリソースが必要です。 アップグレード中にアプリケーションの実行を継続できるだけの十分なリソースがクラスタにあることを確認してください。

アップグレードの実行に必要となるよりも長い時間、オペレーティング・システムが混在するクラスタを実行しないことをお薦めします。

リモート・コンソールの設定

Leappユーティリティでは、アップグレードを実行する前に各ノードでいくつかの設定が必要です。 このセクションの基本について説明します。 アップグレードする前にノード上で他のステップを実行する必要がある場合があるため、これらのステップを実行する前にLeappのドキュメントを読むことをお薦めします。 Leapの使用方法の詳細については、「Oracle Linux 8: Leappを使用したシステム・アップグレードの実行」を参照してください。

システム・コンソールにリモート接続するメソッドを設定します。 これにより、システムのリブート時にアップグレードを監視できます。 たとえば:

  • Oracle Cloud Infrastructure、クラウド・シェル接続コンソールを使用します。

  • Oracle X86サーバー、Oracle Integrated Lights Out Manager (ILOM)を使用します。

  • Oracle Private Cloud Appliance、インスタンス・コンソール接続を使用します。

  • Oracle Linuxカーネル・ベースの仮想マシン(KVM)は、Cockpit Webコンソール、virt-viewer、virt-managerなど、デプロイメントに適した仮想化管理ソフトウェアを使用します。

端末でSSHを使用してシステムに接続すると、アップグレードの実行中に切断され、アップグレードが完了するまで再度ログインできなくなります。

 オペレータ・ノードのアップグレード

この項では、Leappを使用してオペレータ・ノードをOracle Linux 7からOracle Linux 8にアップグレードする方法を示します。 Kubernetesクラスタ内のノードをアップグレードする前に、オペレータ・ノードをアップグレードする必要があります。

オペレータ・ノードをアップグレードするには:

  1. アップグレードするシステムで、オペレーティング・システムを最新のパッケージに更新します。

    sudo yum update --disablerepo ol7_olcne15
  2. システムを再起動します。

    sudo reboot
  3. システムが再起動したら、Leappアップグレード・ソフトウェア・パッケージをインストールします:

    sudo yum install -y leapp-upgrade --enablerepo ol7_leapp,ol7_latest
  4. rootユーザーのSSHログイン権限を付与します。 /etc/ssh/sshd_configファイルを編集して、CopyPermitRootLogin yesエントリのコメントを削除します。

    sudo sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/g' /etc/ssh/sshd_config
  5. ファイルシステムのアンマウントやセキュア・ブートの無効化など、ここにリストされていないシステムに適用されるアップグレード前のステップがLeappのドキュメントに示されている場合があります。 「Oracle Linux 8: Leappを使用したシステム・アップグレードの実行」の説明に従って、システムのアップグレードを準備するためのその他のステップを理解し、実行します。

  6. アップグレードするノードで、Leappアップグレードのインストール前チェック・スクリプトを実行します。 このスクリプトは、システムがアップグレードの準備ができているかどうかを確認し、アップグレード前に確認できるレポートを生成します。

    これがOracle Cloud Infrastructureインスタンスの場合は、次を使用します:

    sudo leapp preupgrade --oci --enablerepo ol8_olcne15

    その他のすべてのOracle Linuxシステムでは、次を使用します:

    sudo leapp preupgrade --oraclelinux --enablerepo ol8_olcne15

    ホストは、アップグレードが続行できることを確認するためにチェックされ、アップグレードの実行時にanswerfileが生成されます。

  7. 生成されたanswerfileの内容を確認し、問題を解決します。

    sudo cat /var/log/leapp/answerfile

    remove_pam_pkcs11_module_checkのブロッキング・モジュール・チェックのセクションは、answerfileから安全に削除できます。

    sudo leapp answer --section remove_pam_pkcs11_module_check.confirm=True

    詳細は、LeappドキュメントのLeapp answerfileの分析を参照してください。

  8. Leappアップグレード・レポート・ファイルをレビューして、アップグレードで解決する必要がある問題を確認します。

    sudo cat /var/log/leapp/leapp-report.txt

    詳細は、LeappドキュメントのLeappアップグレード・レポートの分析を参照してください。

  9. leapp preupgradeコマンドを再度実行して、すべてのアップグレードの問題が解決されたことを確認します。

    これがOracle Cloud Infrastructureインスタンスの場合は、次を使用します:

    sudo leapp preupgrade --oci --enablerepo ol8_olcne15

    その他のすべてのOracle Linuxシステムでは、次を使用します:

    sudo leapp preupgrade --oraclelinux --enablerepo ol8_olcne15

    出力には、解決する必要のあるブロックの問題がないことが報告されます。

  10. アップグレード・レポート・ファイルを読んで、アップグレードでリスクを確認できます。
    sudo cat /var/log/leapp/leapp-report.txt
  11. Leappアップグレード・スクリプトを実行します。

    このアップグレード・コマンドは、設定したリモート・コンソールを使用して実行するか、環境で使用できるため、発生時にアップグレードを監視し、ホストへの接続を失うことなくコマンドラインに割り込むことをお薦めします。 システムへのSSH端末接続を使用する場合は、アップグレード・スクリプトを実行できますが、システムの再起動時にセッションは切断されます。

    これがOracle Cloud Infrastructureインスタンスの場合は、次を使用します:

    sudo leapp upgrade --oci --enablerepo ol8_olcne15

    その他のすべてのOracle Linuxシステムでは、次を使用します:

    sudo leapp upgrade --oraclelinux --enablerepo ol8_olcne15

    トランザクション・チェックが実行され、出力が表示されます。

  12. システムを再起動してアップグレードを開始します。

    sudo reboot
  13. アップグレードが実行され、これには時間がかかる場合があります。 システム・コンソールを使用してアップグレードをモニターできます。 システムをアップグレードしたら、必要に応じてSSHを使用してシステムに再度ログインできます。

    アップグレードが完了したら、システムを再起動します。

    sudo reboot
  14. システムの再起動後、次を使用してオペレーティング・システムのアップグレードを確認できます:

    cat /etc/oracle-release 

    次のように、Oracle Linux 8の最新バージョンが表示されます:

    Oracle Linux Server release 8.version
  15. Oracle Cloud Native Environmentソフトウェア・パッケージが更新されたことを確認するには、次を使用します:

    rpm -qa | egrep olcne | sort

    出力には、インストールされているOracle Cloud Native Environmentソフトウェア・パッケージがリストされます。このパッケージはOracle Linux 8用で、次のようになります:

    olcne-api-server-version.el8.x86_64
    olcnectl-version.el8.x86_64
    olcne-selinux-version.el8.x86_64
    olcne-utils-version.el8.x86_64
    oracle-olcne-release-el8-version.el8.x86_64

Kubernetesノードのアップグレード

この項では、Leappを使用してKubernetesノードをOracle Linux 7からOracle Linux 8にアップグレードする方法を示します。

まずコントロール・プレーン・ノードをアップグレードし、次にワーカー・ノードをアップグレードする必要があります。 クラスタからノードをスケール・アウトし、Oracle Linux 8へのアップグレードを実行してから、ノードをクラスタにスケール・バックする必要があります。

必要に応じて、クラスタの高可用性要件を維持してください。 高可用性クラスタの場合は、5つ以上のコントロール・プレーン・ノードと3つ以上のワーカー・ノードを持つクラスタを使用することをお薦めします。 クラスタ内のコントロール・プレーン・ノードの数は、3、5、7など、3以上の奇数である必要があります。 クラスタ内には常に3つ以上のコントロール・プレーン・ノードが含まれるようにし、ノード数は5つ以上にすることが推奨されるため、これが最も一般的なアップグレード・シナリオになると考えられます。

クラスタをスケール・ダウンして2つのコントロール・プレーン・ノードを一度に削除し、アップグレードされた2つのOracle Linux 8ノードに置換することをお薦めします。

重要:

Oracle Linux 8にアップグレードする必要があるノードが1つのみの場合でも、一度に2つのノードをスケール・ダウンしてスケール・アップすると、ネットワークの停止が発生した場合にクラスタのクォーラムが維持されます。

ノードで実行中のアプリケーションを他のノードに移行できるように、クラスタ内のワーカー・ノードは一度に1つずつ置換する必要があります。 クラスタ内のワーカー・ノードが4つ未満の場合は、クラスタ内のワーカー・ノードが3つ未満にならないようにするために、追加のリソースを見つけることを検討してください。 たとえば、追加のサーバーを一時的に導入して、アップグレード・プロセス中にワーカー・ノードの数を4つ以上に増やすことなどがあります。 そうしない場合、ワーカー・ノードで実行されているアプリケーションが期待どおりに動作しない可能性があります。

Kubernetesノードをアップグレードするには:

  1. オペレータ・ノードで、olcnectl module updateコマンドを使用してクラスタをスケール・ダウンし、Oracle Linux 8にアップグレードするOracle Linux 7ノードを削除します。

    コントロール・プレーン・ノードをスケール・ダウン(削除)するには、次の構文を使用します:

    olcnectl module update \
    --environment-name environment_name \  
    --name cluster_name \
    --master-nodes node_list

    ワーカー・ノードをスケール・ダウンするには、次の構文を使用します:

    olcnectl module update \
    --environment-name environment_name \  
    --name cluster_name \
    --worker-nodes node_list

    node_listオプションには、クラスタ内に残すノードのリストを含める必要があるため、このリストから削除するノードを省略します。

    ヒント:

    kubectlが設定されているコントロール・プレーン・ノードでkubectl get nodesコマンドを実行すると、クラスタ内のノードを確認できます:

    kubectl get nodes -o wide
  2. アップグレードするシステムで、オペレーティング・システムを最新のパッケージに更新します。

    sudo yum update --disablerepo ol7_olcne15
  3. システムを再起動します。

    sudo reboot
  4. システムが再起動したら、Leappアップグレード・ソフトウェア・パッケージをインストールします:

    sudo yum install -y leapp-upgrade --enablerepo ol7_leapp,ol7_latest
  5. rootユーザーのSSHログイン権限を付与します。 /etc/ssh/sshd_configファイルを編集して、CopyPermitRootLogin yesエントリのコメントを削除します。

    sudo sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/g' /etc/ssh/sshd_config
  6. ファイルシステムのアンマウントやセキュア・ブートの無効化など、ここにリストされていないシステムに適用されるアップグレード前のステップがLeappのドキュメントに示されている場合があります。 「Oracle Linux 8: Leappを使用したシステム・アップグレードの実行」の説明に従って、システムのアップグレードを準備するためのその他のステップを理解し、実行します。

  7. アップグレードするノードで、Leappアップグレードのインストール前チェック・スクリプトを実行します。 このスクリプトは、システムがアップグレードの準備ができているかどうかを確認し、アップグレード前に確認できるレポートを生成します。

    これがOracle Cloud Infrastructureインスタンスの場合は、次を使用します:

    sudo leapp preupgrade --oci --enablerepo ol8_olcne15,ol8_kvm_appstream

    その他のすべてのOracle Linuxシステムでは、次を使用します:

    sudo leapp preupgrade --oraclelinux --enablerepo ol8_olcne15,ol8_kvm_appstream

    ホストは、アップグレードが続行できることを確認するためにチェックされ、アップグレードの実行時にanswerfileが生成されます。

  8. 生成されたanswerfileの内容を確認し、問題を解決します。

    sudo cat /var/log/leapp/answerfile

    remove_pam_pkcs11_module_checkのブロッキング・モジュール・チェックのセクションは、answerfileから安全に削除できます。

    sudo leapp answer --section remove_pam_pkcs11_module_check.confirm=True

    詳細は、LeappドキュメントのLeapp answerfileの分析を参照してください。

  9. Leappアップグレード・レポート・ファイルをレビューして、アップグレードで解決する必要がある問題を確認します。

    sudo cat /var/log/leapp/leapp-report.txt

    詳細は、LeappドキュメントのLeappアップグレード・レポートの分析を参照してください。

  10. leapp preupgradeコマンドを再度実行して、すべてのアップグレードの問題が解決されたことを確認します。

    これがOracle Cloud Infrastructureインスタンスの場合は、次を使用します:

    sudo leapp preupgrade --oci --enablerepo ol8_olcne15,ol8_kvm_appstream

    その他のすべてのOracle Linuxシステムでは、次を使用します:

    sudo leapp preupgrade --oraclelinux --enablerepo ol8_olcne15,ol8_kvm_appstream

    出力には、解決する必要のあるブロックの問題がないことが報告されます。

  11. Leappアップグレード・スクリプトを実行します。

    このアップグレード・コマンドは、設定したリモート・コンソールを使用して実行するか、環境で使用できるため、発生時にアップグレードを監視し、ホストへの接続を失うことなくコマンドラインに割り込むことをお薦めします。 システムへのSSH端末接続を使用する場合は、アップグレード・スクリプトを実行できますが、システムの再起動時にセッションは切断されます。

    これがOracle Cloud Infrastructureインスタンスの場合は、次を使用します:

    sudo leapp upgrade --oci --enablerepo ol8_olcne15,ol8_kvm_appstream

    その他のすべてのOracle Linuxシステムでは、次を使用します:

    sudo leapp upgrade --oraclelinux --enablerepo ol8_olcne15,ol8_kvm_appstream

    トランザクション・チェックが実行され、出力が表示されます。

  12. システムを再起動してアップグレードを開始します。

    sudo reboot
  13. アップグレードが実行され、これには時間がかかる場合があります。 システム・コンソールを使用してアップグレードをモニターできます。 システムをアップグレードしたら、必要に応じてSSHを使用してシステムに再度ログインできます。

    アップグレードが完了したら、システムを再起動します。

    sudo reboot
  14. システムの再起動後、次を使用してオペレーティング・システムのアップグレードを確認できます:

    cat /etc/oracle-release 

    次のように、Oracle Linux 8の最新バージョンが表示されます:

    Oracle Linux Server release 8.version
  15. Oracle Cloud Native Environmentソフトウェア・パッケージが更新されたことを確認するには、次を使用します:

    rpm -qa | egrep 'olcne|kube|conmon|kata|cri-o|kvm' | sort

    出力には、インストールされているOracle Cloud Native Environmentソフトウェア・パッケージがリストされます。このパッケージはOracle Linux 8用で、次のようになります:

    conmon-version.el8.x86_64
    cri-o-version.el8.x86_64
    kata-version.el8.x86_64
    ...
  16. アップグレード後、SELinuxはpermissiveに設定されます。 アップグレード前にSELinuxがenforcingに設定されている場合は、SELinux構成ファイルを更新して、再度enforcingに設定します:

    sudo sed -i s/^SELINUX=.*$/SELINUX=enforcing/ /etc/selinux/config; sudo setenforce 1
  17. アップグレード後スクリプトを実行します:

    sudo /etc/olcne/scripts/olcne-ol8-post-leapp-upgrade
  18. オペレータ・ノードで、olcnectl module updateコマンドを使用してクラスタをスケール・アップし、アップグレードしたノードをOracle Linux 8に追加します。

    次の構文を使用して、コントロール・プレーン・ノードをスケール・アップ(追加)します:

    olcnectl module update \
    --environment-name environment_name \  
    --name cluster_name \
    --master-nodes node_list

    ワーカー・ノードをスケール・アップするには、次の構文を使用します:

    olcnectl module update \
    --environment-name environment_name \  
    --name cluster_name \
    --worker-nodes node_list

    node_listオプションには、クラスタ内に存在するノードのリストを含める必要があります。

    ヒント:

    kubectlが設定されているコントロール・プレーン・ノードでkubectl get nodesコマンドを実行すると、クラスタ内のノードを確認できます:

    kubectl get nodes -o wide