[デモ] AROクラスターの更新

デモの概要

このモジュールでは、インストラクターがAROクラスター更新方法の概要をご紹介します。


前準備

AROクラスターは、セルフマネージド版のOpenShiftと同様に、 WebコンソールやOpenShift CLIを使用したアップグレードが可能です。 ここでは、OpenShiftのWebコンソールを利用した、AROクラスターのアップグレード方法をご紹介します。

OpenShiftクラスターのrootユーザーであるkubeadminユーザー、または、 クラスター管理権限となるcluster-adminロールが割り当てられたユーザーで、 AROクラスターにログインして、「クラスター設定」画面に移動します。

AROクラスターのデフォルトだと、更新チャネルが未設定の状態なので、チャネルを設定します。 未設定の横の鉛筆マークをクリックして、チャネル名(この例では、stable-4.10)を入力して、 「保存」をクリックします。

channel config1
channel config2
channel config3

一部のワーカノードを更新対象外にする( カナリアロールアウト更新)ことができます。 その場合は、ラベルをつけた特定のノードのプール(Machine Config Pool, MCP)を作成する必要があります。

$ : ↓AROクラスターにkubeadminユーザでログイン
$ oc login --token=sha256~XXXXX --server=https://api.testmydomain01.japaneast.aroapp.io:6443


$ : ↓AROクラスターのコンピュートノードのリスト表示
$ oc get -l 'node-role.kubernetes.io/master!=' -o 'jsonpath={range .items[*]}{.metadata.name}{"\n"}{end}' nodes
testmyaro01-jnlll-worker-japaneast1-t676g
testmyaro01-jnlll-worker-japaneast2-8nbm2
testmyaro01-jnlll-worker-japaneast3-6tqgr
$ : ↓「oc label」コマンドによる「node-role.kubernetes.io/workerpool-canary=」ラベルの付与
$ oc label node testmyaro01-jnlll-worker-japaneast3-6tqgr node-role.kubernetes.io/workerpool-canary=
node/testmyaro01-jnlll-worker-japaneast3-6tqgr labeled


$ : ↓「node-role.kubernetes.io/workerpool-canary=」ラベルが付与されたノードを対象とする
$ :   OpenShiftのMachineConfigPoolリソースを作成
$ cat << EOF > worker-canary.yaml
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfigPool
metadata:
  name: workerpool-canary
spec:
  machineConfigSelector:
    matchExpressions:
      - {
         key: machineconfiguration.openshift.io/role,
         operator: In,
         values: [worker,workerpool-canary]
        }
  nodeSelector:
    matchLabels:
      node-role.kubernetes.io/workerpool-canary: ""
EOF
$ oc create -f worker-canary.yaml
machineconfigpool.machineconfiguration.openshift.io/workerpool-canary created


$ : ↓OpenShiftのMachineConfigPoolリソース一覧を表示
$ oc get mcp
NAME                CONFIG                                                        UPDATED   UPDATING   DEGRADED   MACHINECOUNT   READYMACHINECOUNT   UPDATEDMACHINECOUNT   DEGRADEDMACHINECOUNT   AGE
master              rendered-master-b3a0f025835fde2aeb292b6344891769              True      False      False      3              3                   3                     0                      5h8m
worker              rendered-worker-e3b5c7f3534a74ba469358659178d170              True      False      False      2              2                   2                     0                      5h8m
workerpool-canary   rendered-workerpool-canary-e3b5c7f3534a74ba469358659178d170   True      False      False      1              1                   1                     0                      60s

ここで作成したMCP「workerpool-canary」を指定して、 ワーカーノードのアップグレード対象外にすることが可能です。

AROクラスターのアップグレード

「クラスター設定」画面から「Select a version」をクリックして、 アップグレードするバージョン(リリース)を選択します。 このとき、「Full cluster update」を選択すると、全てのコントローラ/ワーカーノードがアップグレードされます。

「Partial cluster update」を選択すると、一部または全てのワーカーノードをアップグレードから除外できます。 ここでは、前述したMCP「workerpool-canary」に含まれるワーカーノードを選択しています。 そして「更新」をクリックして、AROクラスターのアップグレードを開始します。

aro upgrade select1
aro upgrade select2

アップグレードを開始すると、次のような画面が表示されます。 ここでは、「Partial cluster update」を選択して、 1台のワーカーノードをアップグレード対象外としています。

aro upgrade status1
aro upgrade status2
aro upgrade status3

アップグレードしたワーカーノードでアプリケーションが問題なく実行されることを確認したら、 「Resume update」をクリックして、残り1台のワーカーノードのアップグレードを完了できます。

aro upgrade status4
aro upgrade status5

AROクラスターのマイナーリリース間のアップグレード

ARO/OpenShiftは、4.10から4.11など、マイナーリリース間のアップグレードも可能です。 AROクラスターの更新情報と更新イメージを配布するサービスは、Red Hatによって管理されています。 そのため、セルフマネージド版OpenShiftのマイナーリリース間のアップグレードパスが Red Hatによって提供開始されたタイミングで、AROクラスターでも当該アップグレードパスを利用できるようになります。

AROクラスターで、マイナーリリース間のアップグレードが可能になった場合、 次のような画面が表示されて、 アップグレード対象のstableチャネルが利用可能であることが分かるようになっています。

aro minor upgrade path

このとき、前述と同様の手順で、更新チャネルを「stable-4.10」から「stable-4.11」に変更すると、 4.11へのアップグレードを選択・実施できるようになります。

aro stable 411

上記画像にある + その他 をクリックすることで、 現在更新可能なリリースの一覧を確認できます。「stable-4.11」チャネルを設定しても、 4.11系だけでなく4.10系にもアップグレードが可能です。

aro upgrade list
AROの正式リリースとして提供開始される前に、 ARO利用者がstableチャネルで利用可能な最新リリースにアップグレードすることは可能であり、 かつ、サポート対象となります。 ここで挙げてきた例のように、ARO v4.11がリリースされる前に、 利用者が「stable-4.11」チャネルを設定して、 ARO 4.10からARO 4.11にアップグレードできるため、 アップグレードの先行テストなどに利用できます。 こちらの情報については、 Microsoftの公式ドキュメントもご参照ください。