機械翻訳について

ノードのアップグレード

Kubernetesノードをリリース1からリリース2にアップグレードします。

クラスタ内の各ノードについて、次のステップを実行してリリース1からリリース2にアップグレードします。

重要:

コントロール・プレーン・ノードを最初にアップグレードし、次にワーカー・ノードをアップグレードする必要があります。

ノードの準備

Kubernetesノードをクラスタから削除し、リリース2イグニッション構成を使用してそれらを再度追加します。

  1. kubeconfigファイルのロケーションを設定します。
    リリース1のkubeconfigファイルのロケーションをKUBECONFIG環境変数として設定します。 たとえば:
    export KUBECONFIG=~/.kube/kubeconfig.mycluster

    重要:

    Kubernetes構成ファイルは、リリース1クラスタの名前(Kubernetesモジュール名)として保存する必要があります。

  2. ノード名を検索します。

    クラスタでアップグレードするノードの名前を検索します。

    kubectl get nodes
  3. ノード名を設定します。

    ノード名を環境変数として設定します。

    export TARGET_NODE=nodename
  4. ノードをドレインします。

    kubectl drainコマンドを使用して、ノードをドレインします。

    コントロール・プレーン・ノードの場合は、次を使用します:

    kubectl drain $TARGET_NODE --ignore-daemonsets

    ワーカー・ノードの場合は、次を使用します:

    kubectl drain $TARGET_NODE --ignore-daemonsets --delete-emptydir-data
  5. ノードをリセットします。

    ocne cluster consoleコマンドを使用して、ノードをリセットします。 次の構文を使用します:

    ocne cluster console 
    [{-d|--direct}]
    {-N|--node} nodename
    [{-t|--toolbox}]
    [-- command] 

    構文オプションの詳細は、Oracle Cloud Native Environment: CLIを参照してください。

    たとえば:

    ocne cluster console --node $TARGET_NODE --direct -- kubeadm reset -f
  6. ノードをクラスタに戻します。
    1. ノードがコントロール・プレーン・ノードの場合:

      コントロール・プレーン・ノードを追加する場合は、暗号化された証明書バンドルと結合トークンの2つのものを作成する必要があります。

      次のコマンドを実行して、コントロール・プレーン・ノードのOSコンソールに接続し、証明書バンドルを作成します:

      ocne cluster console --node control_plane_name --direct -- kubeadm init phase upload-certs --certificate-key certificate-key --upload-certs

      control_plane_nameを、リリース1クラスタで実行されているコントロール・プレーン・ノードに置き換えます。

      重要:

      これはターゲット・ノードではなく、kubeadm initコマンドの実行に使用される別のコントロール・プレーン・ノードです。

      certificate-keyを、ocne cluster joinコマンドを使用してコントロール・プレーン・ノードのイグニッション情報を生成したときに表示される出力に置き換えます。

      次のコマンドを実行して、結合トークンを作成します:

      ocne cluster console --node control_plane_name --direct -- kubeadm token create token

      control_plane_nameを、リリース1クラスタで実行されているコントロール・プレーン・ノードに置き換えます。

      「トークン」を、ocne cluster joinコマンドを使用してコントロール・プレーン・ノードのイグニッション情報を生成したときに表示される出力に置き換えます。

      重要:

      トークンが24時間以上前に生成された場合は、有効期限が切れている可能性があり、Ignitionファイルを再生成する必要があります。これにより、新しいトークンも生成されます。

      kubectl get nodesコマンドを使用して、コントロール・プレーン・ノードがクラスタに追加されていることを確認します。 これにはしばらく時間がかかる場合があります。

      kubectl get nodes
    2. ノードがワーカー・ノードの場合:

      ワーカー・ノードを追加する場合は、結合トークンを作成する必要があります。 次のコマンドを実行して、コントロール・プレーン・ノードのOSコンソールに接続し、このステップを実行します:

      ocne cluster console --node control_plane_name --direct -- kubeadm token create token

      control_plane_nameを、リリース1クラスタで実行されているコントロール・プレーン・ノードに置き換えます。

      「トークン」を、ocne cluster joinコマンドを使用してワーカー・ノードのIgnition情報が生成されたときに表示される出力に置き換えます。

      重要:

      トークンが24時間以上前に生成された場合は、有効期限が切れている可能性があり、Ignitionファイルを再生成する必要があります。これにより、新しいトークンも生成されます。

      kubectl get nodesコマンドを使用して、ワーカー・ノードがクラスタに追加されていることを確認します。 これにはしばらく時間がかかる場合があります。

      kubectl get nodes

ブート・ボリュームの置換

リリース2のOCKイメージのロード時に作成されたカスタム・イメージで、インスタンスのブート・ボリュームを置き換えます。 これで、Kubernetesノードのアップグレードが完了します。

ブート・ボリュームの置換の詳細は、OCIドキュメント」を参照してください。

  1. 「ブート・ボリュームの置換」ページにナビゲートします。

    OCIコンソールにサインインし、インスタンスの「ブート・ボリュームの置換」ページに移動します。

  2. ブート・ボリュームを交換します。

    「置換」フィールドで「イメージ」オプションを選択します。

    「ブート・ボリュームの適用方法」フィールドで「リストから選択」オプションを選択します。

    「イメージの選択」ドロップダウンからカスタム・イメージを選択します。

    「ブート・ボリュームのサイズ(GB)」を50GB以上に設定します。

    「詳細オプションの表示」セクションを選択し、「メタデータ」を選択します。

    「名前」フィールドにuser_dataと入力し、「値」フィールドにbase64でエンコードされたIgnition情報を貼り付けます。 これは、コントロール・プレーンまたはワーカー・ノードのいずれかの適切なノード・タイプのbase64 Ignitionファイルの内容です。 これは、「Ignitionファイルの作成」で生成されました。

    「置換」をクリックします。

  3. インスタンスを再起動します。

    インスタンスが実行中の場合は、シャットダウンし、新しいブート・ボリュームを使用して再起動します。 インスタンスが停止している場合は、新しいブート・ボリュームを使用してインスタンスを起動してください。

    インスタンスは新しいブート・ボリュームを使用してブートします。 インスタンスは、ブート・ボリュームに含まれるIgnition情報を使用してクラスタに結合されます。

Uncordonノード

クラスタ・ワークロードを実行できるように、Kubernetesノードをコード解除します。

  1. ノード名を検索します。

    uncordonするノードの名前を検索します。

    kubectl get nodes
  2. ノードをコード解除します。

    kubectl uncordonコマンドを使用して、ノードをコード解除します。

    kubectl uncordon node_name 

    たとえば:

    kubectl uncordon ocne-control-plane-1
  3. ノードが使用可能であることを確認します。

    kubectl get nodesコマンドを使用して、STATUS列がReadyに設定されていることを確認します。

    kubectl get nodes

ノード・アップグレードの検証

リリース2のOSを実行しているノードを確認します。

  1. クラスタ内のノードをリストします。

    Kubernetesクラスタ内のノードをリストして、必要なすべてのノードがリストされていることを確認します。

    kubectl get nodes
  2. ノードに関する情報を表示します。

    ocne cluster infoコマンドを使用して、ノードに関する情報を表示します。 構文は次のとおりです。

    ocne cluster info
    [{-N|--nodes}] nodename, ...
    [{-s|--skip-nodes }]

    構文オプションの詳細は、Oracle Cloud Native Environment: CLIを参照してください。

    たとえば:

    ocne cluster info --nodes ocne-control-plane-1
  3. ノード情報を検証します。

    ocne cluster infoコマンドの出力が次のようになっている場合、ノードはリリース2イメージを実行しています:

    Node: ocne-control-plane-1
      Registry and tag for ostree patch images:
        registry: container-registry.oracle.com/olcne/ock-ostree
        tag: 1.29
        transport: ostree-unverified-registry
      Ostree deployments:
          ock 5d6e86d05fa0b9390c748a0a19288ca32bwer1eac42fef1c048050ce03ffb5ff9.1 (staged)
        * ock 5d6e86d05fa0b9390c748a0a19288ca32bwer1eac42fef1c048050ce03ffb5ff9.0

    OSTreeベースのイメージ情報が出力に表示されます。

    出力にこの情報が含まれていない場合、ノードはリリース2のイメージを実行せず、次のようになります:

    Node: ocne-control-plane-2
      Registry and tag for ostree patch images:
      Ostree deployments: