Oracle Cloud Infrastructure Kubernetes EngineノードでのKubeletおよびオペレーティング・システム・デーモンのリソースの予約

はじめに

Oracle Cloud Infrastructure Kubernetes Engine (OKE)でKubernetesワークロードを実行する場合、ワーカー・ノードにKubernetes制御コンポーネントおよびオペレーティング・システム(OS)デーモンの予約済リソースがあることを確認することが不可欠です。適切な予約により、リソースの競合を防ぎ、メモリーの負荷を軽減し、クラスタの安定性を高めます。これは、マルチテナント環境、高密度ワークロード、またはノード圧の問題のトラブルシューティング時に特に重要です。このチュートリアルでは、ノード・プールの作成時に適用されるカスタムcloud-initスクリプトを使用して、これらの予約を構成する方法を学習します。cloud-initを利用することで、最小限の労力でクラスタ・ノード全体でこれらの構成を標準化できます。

Kubeletリソース構成

Kubernetesのプライマリ・ノード・エージェントであるKubeletは、構成フラグまたはファイルによるリソース管理をサポートしています。次のものを定義できます。

目的

前提条件

ステップ1: cloud-initスクリプトの記述

次のcloud-initスクリプトは、CPU、メモリーおよびエフェメラル記憶域を予約するKubelet構成ファイルを作成し、エビクションしきい値を設定します。

#!/bin/bash
curl --fail -H "Authorization: Bearer Oracle" -L0 http://169.254.169.254/opc/v2/instance/metadata/oke_init_script | base64 --decode >/var/run/oke-init.sh
bash /var/run/oke-init.sh --kubelet-extra-args "--kube-reserved=cpu=500m,memory=1Gi --system-reserved=cpu=100m,memory=100Mi"

ステップ2: cloud-initスクリプトを使用したノード・プールの作成

  1. OCIコンソールに移動し、OKEクラスタに移動します。

  2. 「ノード・プール」を選択し、「ノード・プールの追加」をクリックして新しいノード・プールを作成するか、「編集」をクリックして既存のノード・プールを変更します。

  3. 「名前」「コンパートメント」「ノードの配置」「シェイプ」および「ネットワーキング」のプリファレンスでノード・プールを設定します。

  4. 「拡張オプションの表示」で、「Cloud-initスクリプトの貼付け」をクリックし、カスタム・スクリプトを貼り付けます。

  5. ノード・プールの残りの設定を完了し、「追加」をクリックします。

ノード・プールの追加

ノードがプロビジョニングされると、スクリプトは起動時に実行され、リソース制約が自動的に適用されます。

ノート: Terraformを使用して設定を自動化する場合は、ノード・プール・リソースの作成時にnode_config_details.cloud_init_scriptブロックにスクリプトを渡すことができます。

確認

その他の学習リソース

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

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