OCIクラスタからKubernetesマイナー・リリースへのアップグレード
OCIクラスタを次のKubernetesマイナー・リリースにアップグレードします。
OCIで実行され、oci
プロバイダを使用して作成されたクラスタの場合、OCKイメージがそのバージョンで使用可能になったときに、Kubernetesクラスタを次のマイナーKubernetesバージョンにアップグレードします。 これにより、KubernetesクラスタAPIを使用してノードをスケール・インおよびスケール・アウトできます。 ノードが再プロビジョニングされないインプレース・アップグレードを実行するには、「Kubernetesマイナー・リリースへのアップグレード」のステップを使用します。
- 管理クラスタのロケーションを設定します。
管理クラスタには、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
更新されたKubernetesマイナー・バージョンを含むOCKイメージが作成され、OCIオブジェクト・バケット・ストアにアップロードされてから、カスタム・イメージに変換されます。
このコマンドの出力には、重要な情報が出力されます。 たとえば、出力は次のようになります:
To update KubeadmControlPlane ocne-control-plane in ocne, run: kubectl patch -n ocne kubeadmcontrolplane ocne-control-plane --type=json -p='[{"op":"replace","path":"/spec/version","value":"1.32.5"},{"op":"replace","path":"/spec/machineTemplate/infrastructureRef/name","value":"ocne-control-plane-1"},{"op":"add","path":"/spec/kubeadmConfigSpec/joinConfiguration/patches","value":{"directory":"/etc/ocne/ock/patches"}}]' To update MachineDeployment ocne-md-0 in ocne, run: kubectl patch -n ocne machinedeployment ocne-md-0 --type=json -p='[{"op":"replace","path":"/spec/template/spec/version","value":"1.32.5"},{"op":"replace","path":"/spec/template/spec/infrastructureRef/name","value":"ocne-md-1"}]'
- コントロール・プレーン・ノードのKubeadmControlPlaneにパッチを適用します。
kubectl patch
コマンドを使用して、KubeadmControlPlaneを更新します。ocne cluster stage
コマンドの出力に出力されたコマンドを使用します。 たとえば:kubectl patch -n ocne kubeadmcontrolplane ocne-control-plane --type=json -p='[{"op":"replace","path":"/spec/version","value":"1.32.5"},{"op":"replace","path":"/spec/machineTemplate/infrastructureRef/name","value":"ocne-control-plane-1"},{"op":"add","path":"/spec/kubeadmConfigSpec/joinConfiguration/patches","value":{"directory":"/etc/ocne/ock/patches"}}]'
- コントロール・プレーン・ノードがアップグレードされるまで待機します。
コントロール・プレーン・ノードは、新しいバージョンのKubernetesを使用して、新しいOCKイメージを使用して再プロビジョニングされます。 これには時間がかかる場合があります。
ヒント:
次のものを使用して、新しいノードをモニターし、古いノードを削除しています:
kubectl --namespace namespace get machine
ワークロード・クラスタですべてのノードが更新されていることを確認します。 環境変数を使用して、
kubeconfig
ファイルのロケーションをワークロード・クラスタに設定します。 たとえば:export KUBECONFIG=$(ocne cluster show --cluster-name cluster-name)
cluster_nameをワークロード・クラスタの名前に置き換えます。
クラスタ内のノードをリストし、
VERSION
列に新しいKubernetesバージョン番号がリストされていることを確認します。kubectl get nodes
- ワーカー・ノードのMachineDeploymentを更新します。
kubeconfig
ファイルのロケーションを管理クラスタに設定します。 たとえば:export KUBECONFIG=$(ocne cluster show --cluster-name cluster-name)
cluster_nameを管理クラスタの名前に置き換えます。
kubectl patch
コマンドを使用して、ワーカー・ノードのMachineDeploymentを更新します。ocne cluster stage
コマンドの出力に出力されたコマンドを使用します。 たとえば:kubectl patch -n ocne machinedeployment ocne-md-0 --type=json -p='[{"op":"replace","path":"/spec/template/spec/version","value":"1.32.5"},{"op":"replace","path":"/spec/template/spec/infrastructureRef/name","value":"ocne-md-1"}]'
- ワーカー・ノードが更新されるまで待機します。
ワーカー・ノードは、新しいバージョンのKubernetesを使用して、新しいOCKイメージを使用して再プロビジョニングされます。 これには時間がかかる場合があります。
- Kubernetesがアップグレードされたことを確認します。
ワークロード・クラスタですべてのノードが更新されていることを確認します。 環境変数を使用して、
kubeconfig
ファイルのロケーションをワークロード・クラスタに設定します。 たとえば:export KUBECONFIG=$(ocne cluster show --cluster-name cluster-name)
cluster_nameをワークロード・クラスタの名前に置き換えます。
クラスタ内のノードをリストし、
VERSION
列に新しいKubernetesバージョン番号がリストされていることを確認します。kubectl get nodes