クラスタ・アドオンの概要

重要なクラスタ・アドオンと、Kubernetes Engine (OKE)を使用して管理できるオプションのクラスタ・アドオンの増大するポートフォリオをご覧ください。

拡張クラスタを使用する場合、Kubernetes Engineを使用して、重要なアドオンとオプションのアドオンの拡大するポートフォリオの両方を管理できます。次の操作を実行できます。

必須アドオン

重要なクラスタ・アドオンは、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アドレスのプロビジョニング、および接続の維持を行います。

必須のクラスタ・アドオンは、デフォルトで新しいKubernetesクラスタにデプロイされます。拡張クラスタを使用する場合、Kubernetesエンジンを使用して重要なクラスタ・アドオンを構成できます。

オプション・アドオン

オプションのクラスタ・アドオンは、Kubernetesクラスタにデプロイするために選択できるコンポーネントです。オプションのアドオンは、Kubernetesのコア機能を拡張して、クラスタの管理性とパフォーマンスを向上させます。オプションのクラスタ・アドオンの例を次に示します。

  • Kubernetes Dashboard:オプションのKubernetes Dashboardアドオンは、コンテナ化されたアプリケーションのデプロイ、編集、監視およびトラブルシューティングを可能にするWebベースの管理インタフェースです。拡張可能な認証サポートがないため、本番クラスタにKubernetes Dashboardをデプロイすることはお薦めしません。詳細は、Kubernetes Dashboardを使用したクラスタへのアクセスを参照してください。
  • Tiller (非推奨):オプションのTillerアドオンは、Helmのサーバー部分です。Tillerをクラスタで実行すると、Helmを使用してKubernetesリソースを管理できます。Tillerは、既知のセキュリティ・リスクのためにバージョン3 (以降のバージョン)のHelmから削除されました。これらのセキュリティ・リスクのため、本番クラスタにTillerをデプロイしないことを強くお薦めします。同じ理由で、Tillerアドオンはコンソールに表示されません。セキュリティ上のリスクがあるにもかかわらずTillerアドオンをデプロイする場合は、OCI CLIまたはAPIを使用します。
  • データベース・オペレータ:オプションのOracle Database Operator for Kubernetesアドオンは、Oracle Databaseライフサイクル管理を自動化するために、カスタム・リソースとコントローラを使用してKubernetes APIを拡張します。Oracle Database Operatorは、様々なデータベース構成およびライフサイクル操作をサポートしています。詳細は、Oracle Database Operator for Kubernetesのドキュメント(GitHub)を参照してください。
  • Weblogic Operator:オプションのWebLogic Kubernetes Operatorアドオンは、Kubernetes上のWebLogic ServerおよびFusion Middleware Infrastructureドメインの実行をサポートします。詳細は、WebLogic Kubernetes Operatorのドキュメント(GitHub)を参照してください。
  • 証明書マネージャ:証明書マネージャ・アドオン(cert-managerとも呼ばれる)は、証明書および証明書発行者をリソース・タイプとしてKubernetesクラスタに追加します。証明書マネージャーは、これらの証明書を取得、使用、および更新するプロセスを簡素化します。詳細は、GitHubのcert-managerのドキュメントを参照してください。
  • Cluster Autoscaler:オプションのCluster Autoscalerアドオンは、Kubernetes Cluster Autoscalerを使用したアプリケーション・ワークロードの要求に基づいて、クラスタの管理対象ノード・プールのサイズを自動的に変更します。Kubernetes Cluster Autoscalerをスタンドアロン・プログラムとしてではなくクラスタ・アドオンとしてデプロイすると、構成と継続的なメンテナンスが簡素化され、OracleでKubernetes Cluster Autoscalerを自動的に更新するように指定できます。詳細については、Working with the Cluster Autoscaler as a Cluster Add-onを参照してください。
  • Istio:オプションのIstioアドオンは、すべてのサービス間通信に対して、自動化されたベースライン・トラフィック・レジリエンス、サービス・メトリック収集、分散トレース、トラフィック暗号化、プロトコル・アップグレードおよび高度なルーティング機能を提供します。詳細は、Working with Istio as a Cluster Add-onを参照してください。
  • ネイティブ・イングレス・コントローラ:オプションのOCIネイティブ・イングレス・コントローラのアドオン・ロード・バランシングと、Kubernetesクラスタ内のワーカー・ノードで実行されているサービス・ポッドへの受信トラフィックのルーティング。詳細は、クラスタ・アドオンとしてのOCIネイティブ・イングレス・コントローラの使用を参照してください。
  • Kubernetesメトリック・サーバー:オプションのKubernetesメトリック・サーバーは、クラスタ全体のリソース使用状況データのアグリゲータです。Kubernetesメトリック・サーバーは、各ワーカー・ノードで実行されているkubeletからリソース・メトリックを収集し、KubernetesメトリックAPIを介してKubernetes APIサーバーに公開します。詳細は、クラスタ・アドオンとしてのKubernetesメトリック・サーバーの使用を参照してください。
  • NVIDIA GPUプラグイン:オプションのNVIDIA GPUプラグイン・アドオンは、Kubernetes用のNVIDIAデバイス・プラグインを管理するための便利な方法です。NVIDIA Device Plugin for Kubernetesは、Kubernetesデバイス・プラグイン・フレームワークのNVIDIA実装で、各ワーカー・ノードにNVIDIA GPUの数を公開し、それらのGPUの健全性を追跡します。NVIDIA Device Plugin for Kubernetesの詳細は、githubのNVIDIA/k8s-device-pluginドキュメントを参照してください。

デフォルトでは、オプションのクラスタ・アドオンはデプロイされません。拡張クラスタを使用する場合、Kubernetes Engineを使用して、増加するオプションのクラスタ・アドオンをデプロイおよび構成するかどうかを選択できます。

アドオンのバージョンを更新中

クラスタ・アドオンを有効にする場合、新しいバージョンが使用可能になったときにOracleでアドオンを自動的に更新すること、またはデプロイするアドオンの特定のバージョンを選択することを指定できます。

  • アドオンを自動的に更新するように指定した場合(デフォルトの動作)、Oracleは、クラスタに指定されたKubernetesバージョンをサポートするアドオンの最新バージョンをデプロイします。その後、新しいバージョンのアドオンがリリースされると、更新されたアドオンがKubernetes Engineによって現在サポートされているKubernetesのバージョンと互換性がある場合、Oracleは自動的にアドオンを更新します。

    承認されたキー/値ペアの構成引数を1つ以上使用してアドオンを構成する場合(Cluster Add-on Configuration Argumentsを参照)、アドオンが自動的に更新されるときに構成が保持されます。ただし、アドオンに加えた他のカスタマイゼーションは、アドオンが自動的に更新されたときに破棄されます。

    Kubernetes EngineでサポートされているKubernetesのバージョンを実行するためにクラスタをアップグレードするのは、ユーザーの責任であることに注意してください。アドオンの自動更新を利用するには、クラスタでサポートされているバージョンのKubernetesが常に実行されるように、クラスタをタイムリにアップグレードすることをお薦めします。Kubernetes Engineでサポートされなくなった古いバージョンの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 Engineは、基本クラスタおよび拡張クラスタにデプロイされた重要なクラスタ・アドオンの構成を、対応するデフォルトのクラスタ・アドオン構成と定期的に調整します。1つ以上の承認済キー/値ペア構成引数(クラスタ・アドオン構成引数を参照)を使用して拡張クラスタにデプロイされた必須クラスタ・アドオンを構成する場合、Kubernetes Engineはカスタマイズをデフォルト構成とマージします。ただし、Kubernetesエンジンは、重要なクラスタ・アドオン構成に対して行われた他のすべてのカスタマイズを破棄し、デフォルト構成をリストアします。

    基本クラスタの場合、重要なクラスタ・アドオンへのカスタマイズは維持される保証がないことに注意してください。リコンシリエーション・プロセス中に競合が発生する重要なクラスタ・アドオンにカスタマイズすると、カスタマイズは元に戻されます。重要なクラスタ・アドオンのカスタマイズを維持するには、基本クラスタを拡張クラスタにアップグレードします。