Oracle Linux Virtualization ManagerクラスタからKubernetesマイナー・リリースへのアップグレード
Oracle Linux Virtualization Managerクラスタを次のKubernetesマイナー・リリースにアップグレードします。
Oracle Linux Virtualization Managerで実行され、olvm
プロバイダを使用して作成されたクラスタの場合、OCKイメージがそのバージョンで使用可能になったときに、Kubernetesクラスタを次のマイナーKubernetesバージョンにアップグレードします。 これにより、KubernetesクラスタAPIを使用してノードをスケール・インおよびスケール・アウトできます。 ノードが再プロビジョニングされないインプレース・アップグレードを実行するには、「Kubernetesマイナー・リリースへのアップグレード」のステップを使用します。
- OCKイメージを作成します。
更新されたKubernetesバージョンを含む新しいOCKイメージを作成してアップロードします。 OCKイメージの作成の詳細は、「Oracle Linux Virtualization ManagerプロバイダのOCKイメージの作成」を参照してください。
- VMテンプレートを作成します。
新しいOCKイメージを使用するVMテンプレートを作成します。 これは、更新されたバージョンのKubernetesを使用して新しいVMを作成するために使用されます。 VMテンプレートの作成の詳細は、「Oracle Linux Virtualization Manager VMテンプレートの作成」を参照してください。
- クラスタ構成ファイルを編集します。
Kubernetesクラスタの作成に使用するクラスタ構成ファイルを編集します。 新しいVMテンプレート名と一致するように
vmTemplateName
エントリを変更します。controlPlaneMachine
セクションとworkerMachine
セクションの両方で、このエントリを変更します。 たとえば:providers: olvm: ... controlPlaneMachine: vmTemplateName: ock-1.32 ... workerMachine: vmTemplateName: ock-1.32 ...
- 管理クラスタのロケーションを設定します。
管理クラスタには、KubernetesクラスタAPIコントローラが含まれます。 管理クラスタは、ワークロード・クラスタ(自己管理クラスタ)と同じである場合があります。 アップグレードは、管理クラスタを使用して実行されます。
環境変数を使用して、
kubeconfig
ファイルのロケーションを管理クラスタに設定します。export KUBECONFIG=$(ocne cluster show --cluster-name cluster-name)
cluster_nameを管理クラスタの名前に置き換えます。
- ターゲットのKubernetesバージョンを設定します。
ocne cluster stage
コマンドを使用して、ターゲットのKubernetesバージョンをステージングします。 このコマンドを使用してワークロード・クラスタを作成するために使用する構成ファイルを使用します。 次の構文を使用します:ocne cluster stage
[{-c|--config} path] [{-r|--os-registry} registry] [{-t|--transport} transport] {-v|--version} version構文オプションの詳細は、Oracle Cloud Native Environment: CLIを参照してください。
たとえば:
ocne cluster stage --version 1.32 --config mycluster.yaml
このコマンドの出力には、重要な情報が出力されます。 たとえば、出力は次のようになります:
To update KubeadmControlPlane ocne-control-plane in olvm-cluster, run: kubectl patch -n olvm-cluster kubeadmcontrolplane ocne-control-plane --type=json -p='[{"op":"replace","path":"/spec/version","value":"1.32.0"},{"op":"replace","path":"/spec/machineTemplate/infrastructureRef/name","value":"ocne-control-plane-1"}]' To update MachineDeployment ocne-md-0 in olvm-cluster, run: kubectl patch -n olvm-cluster machinedeployment ocne-md-0 --type=json -p='[{"op":"replace","path":"/spec/template/spec/version","value":"1.32.0"},{"op":"replace","path":"/spec/template/spec/infrastructureRef/name","value":"ocne-md-1"}]'
- コントロール・プレーン・ノードのKubeadmControlPlaneにパッチを適用します。
kubectl patch
コマンドを使用して、KubeadmControlPlaneを更新します。ocne cluster stage
コマンドの出力に出力されたコマンドを使用します。 たとえば:kubectl patch -n olvm-cluster kubeadmcontrolplane ocne-control-plane --type=json -p='[{"op":"replace","path":"/spec/version","value":"1.32.0"},{"op":"replace","path":"/spec/machineTemplate/infrastructureRef/name","value":"ocne-control-plane-1"}]'
コントロール・プレーン・ノードは、新しいバージョンのKubernetesを含む新しいOCKイメージを使用して再プロビジョニングされます。 これには時間がかかる場合があります。
ヒント:
次のものを使用して、新しいノードをモニターし、古いノードを削除しています:
kubectl --namespace namespace get machine
Oracle Linux Virtualization Managerコンソールを使用して、作成および破棄されているVMを監視することもできます。
- コントロール・プレーン・ノードがアップグレードされていることを確認します。
ワークロード・クラスタ内のすべてのノードがアップグレードされていることを確認します。 別の端末で、環境変数を使用して、
kubeconfig
ファイルのロケーションをワークロード・クラスタに設定します。export KUBECONFIG=$(ocne cluster show --cluster-name cluster-name)
cluster_nameをワークロード・クラスタの名前に置き換えます。
クラスタ内のノードをリストします。
kubectl get nodes
VERSION
列に新しいKubernetesバージョン番号がリストされていることを確認します。 - ワーカー・ノードのMachineDeploymentを更新します。
kubeconfig
が管理クラスタに設定されているターミナルで、kubectl patch
コマンドを使用してワーカー・ノードのMachineDeploymentを更新します。ocne cluster stage
コマンドの出力に出力されるコマンドを使用します。 たとえば:kubectl patch -n olvm-cluster machinedeployment ocne-md-0 --type=json -p='[{"op":"replace","path":"/spec/template/spec/version","value":"1.32.0"},{"op":"replace","path":"/spec/template/spec/infrastructureRef/name","value":"ocne-md-1"}]'
ワーカー・ノードは、新しいバージョンのKubernetesを使用して、新しいOCKイメージを使用して再プロビジョニングされます。 これには時間がかかる場合があります。
- ワーカー・ノードがアップグレードされたことを確認します。
ワークロード・クラスタですべてのワーカー・ノードがアップグレードされていることを確認します。
kubeconfig
がワークロード・クラスタに設定されている別の端末で、クラスタ内のノードをリストします。kubectl get nodes
VERSION
列に新しいKubernetesバージョン番号がリストされていることを確認します。