2.3. アップグレードの準備
前提条件を満たしていることを確認したら、自動アップグレードを準備します。
最新のサブスクリプションデータを Red Hat Subscription Manager からプルします。
subscription-manager refresh
# subscription-manager refreshCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Container Platform 3.10 から 3.11 にアップグレードしている場合は、以下を実行します。
OpenShift Container Platform 3.10 にダウングレードする場合に必要となるファイルをバックアップします。
マスターホストで、以下のファイルをバックアップします。
/etc/origin/master/master-config.yaml /etc/origin/master/master.env /etc/origin/master/scheduler.json
/etc/origin/master/master-config.yaml /etc/origin/master/master.env /etc/origin/master/scheduler.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow マスターを含むノードホストで、以下のファイルをバックアップします。
/etc/origin/node/node-config.yaml
/etc/origin/node/node-config.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow etcd ホストで (etcd が同一の場所に配置されているマスターを含む)、以下のファイルをバックアップします。
/etc/etcd/etcd.conf
/etc/etcd/etcd.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow
アップグレードプロセスでは、リカバリー目的ですべての etcd データのバックアップを作成しますが、/backup/etcd-xxxxxx/backup.db に最新の etcd のバックアップがあることを確認してからこのタスクを進めてください。etcd の手動でのバックアップ手順は、Day 2 操作ガイド に記載されています。
注記OpenShift Container Platform をアップグレードする場合、etcd 設定は変更されません。etcd をマスターホストの静的 Pod として、またはマスターホストの別のサービスまたは別のホストとして実行するいずれの場合でも、etcd はアップグレード後に変更されません。
手作業で、各マスターおよびノードホストの 3.10 リポジトリーを無効にして、3.11 リポジトリーを有効にします。rhel-7-server-ansible-2.9-rpms リポジトリーをまだ有効にしていない場合には、有効にしてください。
x86_64 サーバーでのクラウドインストールおよびオンプレミスインストールの場合は、以下のコマンドを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow IBM POWER8 サーバーでのオンプレミスインストールの場合は、以下のコマンドを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow IBM POWER9 サーバーでのオンプレミスインストールの場合は、以下のコマンドを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
アップグレード Playbook を実行するホストで、最新版の openshift-ansible パッケージが設定されていることを確認してください。
yum update -y openshift-ansible
# yum update -y openshift-ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow Cluster Monitoring Operator の準備をします。バージョン 3.11 では、Cluster Monitoring Operator はデフォルトでインフラストラクチャーノードにインストールされます。クラスターがインフラストラクチャーノードを使用しない場合は、以下を実行します。
- インフラストラクチャーノードをクラスターに 追加 します。
-
openshift_cluster_monitoring_operator_install=falseをインベントリーファイルに追加して Cluster Monitoring Operator を無効にします。 -
Cluster Monitoring Operator をインストールするノードに openshift_cluster_monitoring_operator_node_selector の
マークを付けて、ノードを指定します。
-
標準の OpenShift Container Platform レジストリーを使用する場合、
registry.access.redhat.comからregistry.redhat.ioへの変更に対して準備してください。Accessing and Configuring the Red Hat Registry に記載されている設定の手順を実行してください。
インベントリーファイル を確認し、これを更新します。
- (初期インストールまたは最近のクラスターのアップグレードなどで) Ansible Playbook を最後に実行した後にマスターまたはノード設定ファイルに設定変更を手動で加えた場合は、それらの変更がインベントリーファイルに反映されていることを確認します。手動で加えた変更に関連する変数については、アップグレードの実行前に同等の変更をインベントリーファイルに適用してください。これを実行しないと、手動による変更がアップグレード時にデフォルト値で上書きされ、Pod が適切に実行されなくなるか、または他のクラスターの安定性に問題が生じる可能性があります。
-
デフォルトで、インストーラーは証明書が 1 年以内に期限切れになるかどうかや、その期間内に期限切れになる場合に失敗するかどうかを確認します。証明書の有効日数を変更するには、
openshift_certificate_expiry_warning_daysパラメーターに新規の値を指定します。たとえば、証明書が 180 日間有効とする場合に、openshift_certificate_expiry_warning_days=180を指定します。 -
証明書が期限切れになるかどうかのチェックを省略するには、
openshift_certificate_expiry_fail_on_warn=Falseを設定します。 -
マスター設定ファイルの
admissionConfig設定に変更を加えた場合は、インベントリーファイルの設定で openshift_master_admission_plugin_config 変数を確認してください。これを確認しない場合、マスターでのオーバーコミットの設定 に説明されているようにClusterResourceOverride設定を事前に手動で設定している場合には、Pod がPending状態のままになる可能性があります。 3.10 よりも前のバージョンの OpenShift Container Platform で
openshift_hostnameパラメーターを使用していた場合、openshift_kubelet_name_overrideパラメーターがまだインベントリーファイルにあり、以前のバージョンで使用したopenshift_hostnameの値に設定されていることを確認してください。重要アップグレード後は、
openshift_kubelet_name_overrideパラメーターをインベントリーファイルから削除できません。-
クラスターの /etc/origin/master/htpasswd ファイルを手動で管理する場合、
openshift_master_manage_htpasswd=falseをインベントリーファイルに追加して、アップグレードプロセスで htpasswd ファイルが上書きされないようにします。
2.3.1. ポリシー定義の更新 リンクのコピーリンクがクリップボードにコピーされました!
クラスターのアップグレード時に、また任意のマスターの再起動時は常に、デフォルトのクラスターロール が欠落しているパーミッションを復元するために自動的に調整されます。
デフォルトクラスターロールをカスタマイズしており、ロールの調整によってそれらが変更されないようにするには、以下のように各ロールを調整から保護します。
oc annotate clusterrole.rbac <role_name> --overwrite rbac.authorization.kubernetes.io/autoupdate=false
$ oc annotate clusterrole.rbac <role_name> --overwrite rbac.authorization.kubernetes.io/autoupdate=falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 警告この設定を含むロールがアップグレード後に新規または必須のパーミッションを組み込むように手動で更新する必要があります。
デフォルトのブートストラップポリシーテンプレートを生成します。
oc adm create-bootstrap-policy-file --filename=policy.json
$ oc adm create-bootstrap-policy-file --filename=policy.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ファイルの内容は OpenShift Container Platform バージョンによって異なりますが、ファイルにはデフォルトポリシーのみが含まれます。
- policy.json ファイルを、クラスターロールのカスタマイズを組み込むように更新します。
ポリシーを使用し、調整から保護されていないロールおよびロールバインディングを自動的に調整します。
oc auth reconcile -f policy.json
$ oc auth reconcile -f policy.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow SCC (Security Context Constraints) を調整します。
oc adm policy reconcile-sccs \ --additive-only=true \ --confirm# oc adm policy reconcile-sccs \ --additive-only=true \ --confirmCopy to Clipboard Copied! Toggle word wrap Toggle overflow