ノート:

Oracle Cloud Native EnvironmentでのKubernetesバージョンのアップグレード

イントロダクション

ベスト・プラクティスでは、新しいリリース後すぐにKubernetesクラスタをアップグレードすることをお薦めします。できるだけ早くアップグレードする理由は次のとおりです。

このチュートリアルでは、Oracle CNEクラスタで使用されるKubernetesバージョンをアップグレードする方法を示します。

Oracle CNEの詳細は、現在のリリース・ドキュメント・サイトを参照してください。

目的

このチュートリアルでは、次のことを学習します。

前提条件

Oracle Cloud Native Environmentのデプロイ

ノート:独自のテナンシで実行している場合は、linux-virt-labs GitHubプロジェクトREADME.mdを読み、演習環境をデプロイする前に前提条件を完了してください。

  1. Lunaデスクトップでターミナルを開きます。

  2. linux-virt-labs GitHubプロジェクトをクローニングします。

    git clone https://github.com/oracle-devrel/linux-virt-labs.git
    
  3. 作業ディレクトリに移動します。

    cd linux-virt-labs/ocne2
    
  4. 必要なコレクションをインストールします。

    ansible-galaxy collection install -r requirements.yml
    
  5. 演習環境をデプロイします。

    ansible-playbook create_instance.yml -e localhost_python_interpreter="/usr/bin/python3.6" -e install_ocne_rpm=true
    

    無料の演習環境では、追加変数local_python_interpreterが必要です。この変数は、localhostで実行されている再生用にansible_python_interpreterを設定します。この変数は、python3.6モジュールの下にあるOracle Cloud Infrastructure SDK for PythonのRPMパッケージが環境によってインストールされるため必要です。

    デフォルトのデプロイメント・シェイプでは、AMD CPUおよびOracle Linux 8が使用されます。Intel CPUまたはOracle Linux 9を使用するには、デプロイメント・コマンドに-e instance_shape="VM.Standard3.Flex"または-e os_version="9"を追加します。

    重要:プレイブックが正常に実行されるまで待機し、一時停止タスクに到達します。プレイブックのこの段階で、Oracle CNEのインストールが完了し、インスタンスの準備ができました。前の再生に注意してください。これは、デプロイするノードのパブリックIPアドレスとプライベートIPアドレス、および演習の実行中に必要なその他のデプロイメント情報を出力します。

Kubernetesクラスタの起動

Kubernetes v1.30に基づく単一のコントロール・プレーンおよびワーカー・ノード・クラスタを、1.31にアップグレードする計画で使用します。

  1. ターミナルを開き、SSHを介してocneインスタンスに接続します。

    ssh oracle@<ip_address_of_node>
    
  2. クラスタを起動します。

    ocne cluster start --version 1.30 -n 1 -w 1 -u false
    
  3. 新しいクラスタのkubeconfig環境変数を設定します。

    export KUBECONFIG=$(ocne cluster show -C ocne)
    

    ここで、ocneは、指定しないかぎりクラスタのデフォルト名です。その後、kubectl get nodesを使用して2つのノードを表示し、それらがバージョン1.30を実行していることを確認できます。

Kubernetesの更新

Kubernetesでは、一度に1つのバージョンを更新する必要があるため、複数のバージョンをアップグレードする必要がある場合は、バージョンごとにこれらのステップを繰り返す必要があります。

  1. 次のKubernetesバージョンをステージングします。

    ocne cluster stage -v 1.31
    
  2. クラスタ・ノードのリストを取得します。

    kubectl get nodes
    
  3. 使用可能な更新があるかどうかを確認します。

    watch ocne cluster info
    

    出力に使用可能な更新があるノード: 2が報告されるまで監視します。監視コマンドを終了するには、Ctrl-cと入力します。

  4. コントロール・プレーン・ノードを更新します。

    まず、クラスタ内のすべてのコントロール・プレーン・ノードを更新する必要があります。

    ocne node update -N ocne-control-plane-1
    

    コマンドの終了後、更新が完了するまでに数分かかる場合があります。kubectl get nodesを使用して、コントロール・プレーン・ノードのバージョンを確認できます。

  5. ワーカー・ノードを更新します。

    ocne node update -N ocne-worker-1 --delete-emptydir-data
    

    アップグレードが使用できない、またはクラスタが実行できないという警告が表示された場合は、コマンドを繰り返します。ワーカー・ノードを更新する前に、この小規模なクラスタの安定化に数分かかる場合があります。

    ワーカー・ノードでは、uiポッドがemptyDirボリュームを使用して実行中のコンテナ間でコンテンツを共有するため、--delete-emptydir-dataオプションが必要です。

  6. クラスタ・ノードのバージョンを確認します。

    kubectl get nodes
    

    出力に各ノードが予期したバージョンであることが表示されるまで、コマンドを繰り返します。

次のステップ

Oracle CNEクラスタにデプロイされた最新のKubernetesバージョンを維持する方法を理解することで、クラスタが最新のセキュリティおよび安定性の修正で確実に更新されます。

その他の学習リソース

docs.oracle.com/learnの他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。

製品ドキュメントについては、Oracle Help Centerを参照してください。