クラスタ・アドオンの概要
重要なクラスタ・アドオンと、Kubernetes Engine (OKE)を使用して管理できるオプションのクラスタ・アドオンの増大するポートフォリオをご覧ください。
拡張クラスタを使用する場合、Kubernetes Engineを使用して、重要なアドオンとオプションのアドオンの拡大するポートフォリオの両方を管理できます。次の操作を実行できます。
- 特定の 必須のアドオンと オプションのアドオンを有効または無効にします。
- Oracleによる自動更新のオプト・インとオプト・アウト(アドオン・バージョンの更新を参照)。
- アドオンのバージョンを選択します(クラスタ・アドオンのサポート・バージョンを参照)。
- 承認されたキー/値ペア構成引数を使用して、アドオン固有のカスタマイズを管理します(クラスタ・アドオンの構成引数を参照)。
必須アドオン
重要なクラスタ・アドオンは、Kubernetesクラスタのコア・コンポーネントであり、クラスタが正しく動作するために必要です。必須のクラスタ・アドオンは次のとおりです。
- CoreDNS: CoreDNSアドオンは、モジュール式でプラガブルな汎用の認可DNSサーバーです。Kubernetes Engineは、DNSサーバーとしてCoreDNSを使用してクラスタを作成します。各ワーカー・ノードのkubeletプロセスは、個々のコンテナをDNSサーバーに向け、DNS名をIPアドレスに変換します。
- kube-proxy: kube-proxyアドオンは、ネットワーク・ルールを維持し、リクエストをルーティングするKubernetesネットワーク・プロキシです。
- ポッド・ネットワーキング用のCNIプラグイン:ワーカー・ノードで実行されているポッドのネットワーク接続を実装するための、次のいずれかのCNIプラグイン・アドオン:
- OCI VCNネイティブ・ポッド・ネットワークCNIプラグイン
- flannel CNIプラグイン
CNIプラグインは、ネットワーク・インタフェースの構成、IPアドレスのプロビジョニング、および接続の維持を行います。
- ObservabilityAgent: ObservabilityAgentアドオンは、kubelet、cAdvisor、CoreDNSおよびKubeProxyなどのソースからインフラストラクチャ・メトリックを収集します。詳細は、「ワーカー・ノードおよびアドオンの状態の監視」を参照してください。
- NodeProblemDetector: NodeProblemDetectorアドオンは、リソースの飽和状態やワーカー・ノード・レベルでのネットワークの問題などの問題を特定して表示します。この構成は、このツールまたは同様のツールの既存のデプロイメントとの競合を回避するように設計されています。詳細は、「ワーカー・ノードおよびアドオンの状態の監視」を参照してください。
必須のクラスタ・アドオンは、デフォルトで新しいKubernetesクラスタにデプロイされます。拡張クラスタを使用する場合、Kubernetesエンジンを使用して重要なクラスタ・アドオンを構成できます。
オプション・アドオン
オプションのクラスタ・アドオンは、Kubernetesクラスタにデプロイすることを選択できるコンポーネントです。オプションのアドオンは、Kubernetesのコア機能を拡張して、クラスタの管理性とパフォーマンスを向上させます。次の表に、オプションのクラスタアドオンの例を示します。
| アドン | 説明 |
|---|---|
| AMD GPU演算子 | オプションのAMD GPU Operatorは、AMD GPUソフトウェア・コンポーネントのデプロイメントと管理を自動化するKubernetesアドオンです。これらのコンポーネントには、KubernetesクラスタでのAMD GPUワークロード、モニタリングおよびGPU共有をサポートするデバイス・プラグイン、ノード・ラベラー、メトリック・エクスポータ、テスト・ランナーおよびデバイス・コンフィギュレーション・マネージャが含まれます。AMD GPUオペレータの詳細は、GitHubのAMD GPUオペレータのドキュメントを参照してください。 |
| AMD GPUプラグイン | オプションのAMD GPUプラグイン・アドオンは、Kubernetes用のAMDデバイス・プラグインを管理するための便利な方法です。AMD Device Plugin for Kubernetesは、AMD GPUをスケジュール可能なリソースとして公開するためのKubernetesデバイス・プラグイン・フレームワークのAMD実装です。Kubernetes用のAMDデバイス・プラグインの詳細は、GitHubのROCm/k8s-device-pluginのドキュメントを参照してください。 |
| 証明書マネージャ | 証明書マネージャ・アドオン(cert-managerとも呼ばれる)は、証明書および証明書発行者をKubernetesクラスタにリソース・タイプとして追加します。また、証明書マネージャは、これらの証明書を取得、使用および更新するプロセスを簡略化します。詳細は、GitHubのcert-managerのドキュメントを参照してください。 |
| クラスタ・オートスケーラ | オプションのCluster Autoscalerアドオンは、Kubernetes Cluster Autoscalerを使用して、アプリケーション・ワークロードの要求に基づいて、クラスタの管理対象ノード・プールのサイズを自動的に変更します。Kubernetes Cluster Autoscalerをスタンドアロン・プログラムとしてではなくクラスタ・アドオンとしてデプロイすると、構成および継続的なメンテナンスが簡素化され、OracleでKubernetes Cluster Autoscalerを自動的に更新するように指定できます。詳細は、クラスタ・アドオンとしてのクラスタ・オートスケーラの作業を参照してください。 |
| CSIドライバ SMB | オプションのCSIドライバのSMBアドオンは、クラスタ・ワークロードでSMB/CIFSファイル共有を永続ストレージとして使用できるようにするKubernetes CSIストレージ・ドライバです。アドオンは、SMB共有をKubernetes PersistentVolumesとしてマウントし、ポッドはPersistentVolumeClaimsを介して共有ネットワーク・ファイル・ストレージにアクセスできます。このストレージを使用すると、SMB互換のファイルサーバーによってバックアップされた再利用可能な共有ストレージでワークロードを提供でき、ファイル共有、アプリケーションデータの永続性、ノード間のReadWriteManyスタイルのアクセスを必要とするワークロードなどのユースケースをサポートできます。CSIドライバSMBの詳細は、githubのSMB CSI Driver for Kubernetesのドキュメントを参照してください。 |
| データベース・オペレータ | オプションのOracle Database Operator for Kubernetesアドオンは、Kubernetes APIをカスタム・リソースおよびコントローラで拡張し、Oracle Databaseライフサイクル管理を効率よく自動化します。Oracle Databaseオペレータは、様々なデータベース構成およびライフサイクル操作をサポートしています。Oracle Database Operatorをクラスタ・アドオンとして使用するには、cert-manager (スタンドアロンまたはクラスタ・アドオン)もデプロイする必要があります。詳細は、GitHubのOracle Database Operator for Kubernetesのドキュメントを参照してください。 |
| GPUヘルス・モニタリング | オプションのGPUヘルス・モニタリング・アドオンは、拡張クラスタ内の適格な管理対象GPUワーカー・ノードでサポートされているGPUヘルス状態をモニターします。GPUインスタンス・リカバリの構成時にアドオンがレポートするヘルス・シグナルを使用できます。詳細は、GPUホストの修復を参照してください。 |
| Istio | オプションのIstioアドオンは、すべてのサービス間通信に対して、自動ベースライン・トラフィックの自己回復性、サービス・メトリックの収集、分散トレース、トラフィックの暗号化、プロトコルのアップグレード、高度なルーティング機能を提供します。詳細は、クラスタ・アドオンとしてのIstioの作業を参照してください。 |
| Kubernetes Dashboard (非推奨) | オプションのKubernetes Dashboardアドオンは、コンテナ化されたアプリケーションをデプロイ、編集、監視およびトラブルシューティングできるWebベースの管理インタフェースです。このプロジェクトの継続的なサポートがないため、本番クラスタにKubernetes Dashboardをデプロイすることはお薦めしません。詳細は、Kubernetes Dashboardを使用したクラスタへのアクセスを参照してください。 |
| Kubernetesメトリック・サーバ | オプションのKubernetesメトリック・サーバーは、クラスタ全体のリソース使用状況データのアグリゲータです。Kubernetesメトリック・サーバーは、各ワーカー・ノードで実行されているkubeletからリソース・メトリックを収集し、KubernetesメトリックAPIを介してKubernetes APIサーバーに公開します。Kubernetesメトリック・サーバーをクラスタ・アドオンとして使用するには、cert-manager (スタンドアロンまたはクラスタ・アドオンのいずれか)もデプロイする必要があります。詳細は、クラスタ・アドオンとしてのKubernetesメトリック・サーバーの使用を参照してください。 |
| ネイティブ・イングレス・コントローラ | オプションのOCIネイティブ・イングレス・コントローラ・アドオン・ロード・バランシングにより、受信トラフィックがKubernetesクラスタのワーカー・ノードで実行されているサービス・ポッドにルーティングされます。詳細は、クラスタ・アドオンとしてのOCIネイティブ・イングレス・コントローラの使用を参照してください。 |
| ノード機能検出 | オプションのノード機能検出アドオンは、クラスタ・ノード上のハードウェア機能およびシステム構成を検出し、それらの機能をKubernetesノード・ラベルとして通知します。ラベルを使用して、特定のCPU、デバイス、カーネル、OS、GPUまたはその他の検出された機能を備えたノードにワークロードをスケジュールできます。ノード機能検出の詳細は、githubのノード機能検出のドキュメントを参照してください。 |
| NVIDIA GPUオペレータ | オプションのNVIDIA GPUオペレータ・アドオンは、GPUノードのプロビジョニングに必要なNVIDIAソフトウェア・コンポーネントの管理を自動化します。このアドオンは、ワーカー・ノードにインストールされているNVIDIA GPUドライバと連携し、NVIDIAデバイス・プラグイン、NVIDIA Container Toolkit、MIGマネージャ、DCGMおよびDCGMエクスポータなどのコンポーネントを管理して、KubernetesクラスタにおけるGPUワークロード、モニタリングおよびGPU共有機能を有効にします。Oracleが承認するすべてのGPUドライバ・バージョンでは、パフォーマンスと安定性の検証が広範囲に行われます。したがって、NVIDIA GPU Operatorアドオンで使用されるカスタムイメージは、承認されたGPUドライババージョンを使用する必要があります。NVIDIA GPUオペレータの詳細は、githubのNVIDIA GPUオペレータのドキュメントを参照してください。 |
| NVIDIA GPUプラグイン | オプションのNVIDIA GPUプラグイン・アドオンは、NVIDIA Device Plugin for Kubernetesを管理するための便利な方法です。NVIDIA Device Plugin for Kubernetesは、各ワーカー・ノードにNVIDIA GPUの数を公開し、それらのGPUの状態を追跡するためのKubernetesデバイス・プラグイン・フレームワークのNVIDIA実装です。NVIDIA GPUプラグイン・アドオンには、クラスタ環境でNVIDIAデータセンターGPUを管理および監視するためのツール・スイートであるNVIDIA Data Center GPU Managerが含まれています(developer.nvidia.comのNVIDIA DCGMページを参照)。Kubernetes用のNVIDIAデバイス・プラグインの詳細は、githubに関するNVIDIA/k8s-device-pluginのドキュメントを参照してください。 |
| NVIDIA Network Operator | オプションのNVIDIA Network Operatorアドオンは、高パフォーマンスのネットワーキングのためのNVIDIAネットワーキング・コンポーネントの導入と構成を自動化します。このアドオンは、ワーカー・ノード・イメージにインストールされたOpenFabrics Enterprise Distribution (OFED)ドライバと連携し、選択したアドオン・バージョンおよびFF作成モードに応じて、Multus CNI、CNIプラグイン、NVIDIA IPAM、SR-IOV Network Operator、SR-IOV/RDMA CNIコンポーネント、Virtual Function (VF)構成リソースなどのコンポーネントを管理します。Oracleが承認するすべてのOFEDドライババージョンでは、パフォーマンスと安定性の検証が広範囲に行われます。したがって、NVIDIA Network Operatorアドオンで使用されるカスタムイメージでは、承認されたOFEDドライババージョンを使用する必要があります。NVIDIAネットワーク・オペレータの詳細は、githubのNVIDIAネットワーク・オペレータのドキュメントを参照してください。 |
| Tiller (非推奨) | オプションのTillerアドオンは、Helmのサーバー部分です。Tillerをクラスタで実行すると、Helmを使用してKubernetesリソースを管理できます。既知のセキュリティ・リスクにより、Tillerはバージョン3 (およびそれ以降のバージョン)のHelmから削除されました。このようなセキュリティ・リスクがあるため、本番クラスタにTillerをデプロイしないことを強くお薦めします。同じ理由で、Tillerアドオンはコンソールに表示されません。セキュリティ・リスクにもかかわらずTillerアドオンをデプロイする場合は、OCI CLIまたはAPIを使用します。 |
| Weblogicオペレータ | オプションのWebLogic Kubernetes Operatorアドオンは、KubernetesでのWebLogic ServerおよびFusion Middleware Infrastructureドメインの実行をサポートします。詳細は、GitHubのWebLogic Kubernetes Operatorのドキュメントを参照してください。 |
デフォルトでは、オプションのクラスタ・アドオンはデプロイされません。拡張クラスタを使用する場合、Kubernetes Engineを使用して、増加するオプションのクラスタ・アドオンをデプロイおよび構成するかどうかを選択できます。
アドオンのバージョンを更新中
クラスタ・アドオンを有効にする場合、新しいバージョンが使用可能になったときにOracleでアドオンを自動的に更新すること、またはデプロイするアドオンの特定のバージョンを選択することを指定できます。
- アドオンを自動的に更新するように指定した場合(デフォルトの動作)、Oracleは、クラスタに指定されたKubernetesバージョンをサポートするアドオンの最新バージョンをデプロイします。その後、新しいバージョンのアドオンがリリースされると、更新されたアドオンがKubernetes Engineによって現在サポートされているKubernetesのバージョンと互換性がある場合、Oracleは自動的にアドオンを更新します。
1つ以上の承認済キー/値ペア構成引数(クラスタ・アドオン構成引数を参照)を使用してアドオンを構成する場合、アドオンが自動的に更新されるときに構成が保持されます。ただし、アドオンに対して行ったその他のカスタマイズは、アドオンが自動的に更新されるときに破棄されることに注意してください。
クラスタをアップグレードして、Kubernetes EngineでサポートされているKubernetesのバージョンを実行する必要があることに注意してください。自動アドオン更新を利用するには、クラスタが常にサポートされているバージョンのKubernetesを実行していることを確認するために、クラスタをタイムリにアップグレードすることをお薦めします。クラスタ・アドオンの更新は、Kubernetesエンジンでサポートされなくなった古いバージョンのKubernetesと互換性がない場合があります。クラスタで、クラスタ・アドオンの更新と互換性がないサポートされていないKubernetesバージョンが実行されている場合、アドオンは自動的に更新されません。
- デプロイするアドオンのバージョンを選択するように指定した場合、Oracleは選択したアドオン・バージョンをデプロイします。アドオンのバージョンがクラスタで実行されているKubernetesバージョンと互換性があることを確認するのはユーザーの責任です。
Kubernetes EngineでサポートされているKubernetesのバージョンを実行するためにクラスタをアップグレードするのは、ユーザーの責任であることに注意してください。Kubernetes Engineが古いバージョンのKubernetesのサポートを停止することをOracleが発表した場合、その古いバージョンのKubernetesを実行しているクラスタをアップグレードし、(必要に応じて)新しいバージョンのKubernetesと互換性のあるバージョンにアドオンを更新する必要があります。
クラスタ・アドオンを有効にし、Oracleでアドオンを自動的に更新するように指定すると、その後、アドオンの特定のバージョンをデプロイするかわりに指定できます。同様に、デプロイするアドオンのバージョンを選択するように指定した場合は、その後、Oracleでアドオンを自動的に更新するように指定できます。
OCI VCNネイティブ・ポッド・ネットワーキングCNIプラグイン・アドオンの場合、Oracleでアドオンを自動的に更新するか、自分でアドオンを更新するかに関係なく、更新はワーカー・ノードが次回再起動されるときにのみ適用されます。OCI VCNネイティブ・ポッド・ネットワークCNIプラグインの更新を参照してください。
クラスタ・アドオンに関するノート
クラスタ・アドオンを構成する場合は、次の点に注意してください。
- 新しいクラスタの作成時に、重要なクラスタ・アドオンを無効にすることはできません。ただし、既存のクラスタを編集する場合は、重要なアドオンを無効にすることを選択できます。必須のクラスタ・アドオンを無効にした場合は、同等の機能を提供する代替アドオンのデプロイおよび構成を担当します。
- 新しいクラスタを作成すると、重要なクラスタ・アドオンが自動的に更新されるように設定されます。ただし、必須のアドオンを自動的に更新しないことを選択できます。あなたがそうしたのなら、そのアドオンを最新の状態に保つ責任があります。
- クラスタ・アドオンを有効にすると、1つ以上のキー/値ペアを指定して、クラスタ・アドオンに引数として渡すことで、アドオンを構成できます。たとえば、Kubernetes Dashboardの場合、
numOfReplicasキーに3の値を指定します。 - コンソールを使用してクラスタ・アドオンを無効にすると、アドオンはクラスタから削除されませんが、単に使用されません。アドオンを完全に削除するには、CLIまたはAPIを使用します。
- Kubernetesエンジンは、基本および拡張クラスタにデプロイされたクラスタ・アドオンの構成を、対応するデフォルトのクラスタ・アドオン構成と定期的に調整します。1つ以上の承認済キー/値ペア構成引数(クラスタ・アドオン構成引数を参照)を使用して拡張クラスタにデプロイされたクラスタ・アドオンを構成する場合、Kubernetes Engineはカスタマイズをデフォルト構成とマージします。ただし、Kubernetesエンジンは、クラスタ・アドオン構成に対して行われた他のすべてのカスタマイズを破棄し、デフォルト構成をリストアします。
基本クラスタの場合、重要なクラスタ・アドオンへのカスタマイズは維持される保証がないことに注意してください。リコンシリエーション・プロセス中に競合が発生する重要なクラスタ・アドオンにカスタマイズすると、カスタマイズは元に戻されます。重要なクラスタ・アドオンのカスタマイズを維持するには、基本クラスタを拡張クラスタにアップグレードします。
- Kubernetes Engineでサポートされなくなった古いバージョンのKubernetesを実行しているクラスタに、クラスタ・アドオンをデプロイ、更新および管理できます。ただし、Oracleでは、「現在サポートされているKubernetesバージョン」にリストされているバージョンを超えるKubernetesを実行しているクラスタはサポートされません。サポートされていないバージョンのKubernetesを実行しているクラスタのサポートをリクエストすると、クラスタをサポートされているバージョンのKubernetesにアップグレードするよう求められます。
サポートされていないKubernetesバージョンを実行しているクラスタにアドオンをデプロイし、アドオンを自動的に更新するように指定した場合(デフォルトの動作)、Oracleでは、サポートされていないKubernetesバージョンと互換性のある最新バージョンのアドオンが最初にデプロイされます。サポートされていないKubernetesバージョンと互換性のある新しいバージョンのアドオンが後にリリースされる可能性が低い場合は、Oracleによってアドオンが自動的に更新されます。
サポートされていないKubernetesバージョンを実行しているクラスタの場合、Kubernetesエンジンはカスタマイズをデフォルト構成とマージして、クラスタ・アドオンの構成を調整しないことに注意してください。Kubernetesエンジンがクラスタ・アドオンの現在の構成とデフォルト構成の違いを検出した場合、クラスタ・アドオンは「注意が必要」のステータスで表示されます。この場合、関連する作業リクエスト・メッセージを確認します。
- 関連付けられたメッセージが
Addon out of syncの場合は、サポートされていないKubernetesバージョンをサポートされたバージョンにアップグレードすることを検討してください。 - 関連付けられたメッセージに構成エラーが示されている場合は、承認されたキー/値ペア構成引数の値に対する変更を削除して、引数がデフォルト値に戻されるようにします。
- 関連付けられたメッセージが
-
APIおよびCLIを使用して、特定のクラスタ・アドオンのすべてのバージョン(バージョン・ビルド番号を含む)のリストを表示できます。現在サポートされているクラスタ・アドオンのバージョンはACTIVEです。サポートされなくなったクラスタ・アドオンのバージョンは、ステータスがDEPRECATEDです。非推奨のクラスタ・アドオンのバージョンは、例外的な状況(ロールバックの実行など)でのみ提供されます。通常の操作では、非推奨のクラスタ・アドオン・バージョンを使用せず、サポートされているアドオン・バージョンの特定のビルドを指定しないことをお薦めします。