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

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

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

必須アドオン

重要なクラスタ・アドオンは、Kubernetesクラスタのコア・コンポーネントであり、クラスタが正しく動作するために必要です。必須のクラスタ・アドオンは次のとおりです。

  • CoreDNS: CoreDNSアドオンは、モジュール式でプラガブルな汎用の認可DNSサーバーです。Container Engine for Kubernetesは、DNSサーバーとしてCoreDNSを使用してクラスタを作成します。各ワーカー・ノードのkubeletプロセスは、個々のコンテナをDNSサーバーに向け、DNS名をIPアドレスに変換します。
  • kube-proxy: kube-proxyアドオンは、ネットワーク・ルールを維持し、リクエストをルーティングするKubernetesネットワーク・プロキシです。
  • ポッド・ネットワーキング用のCNIプラグイン:ワーカー・ノードで実行されているポッドのネットワーク接続を実装するための、次のいずれかのCNIプラグイン・アドオン:
    • OCI VCNネイティブ・ポッド・ネットワークCNIプラグイン
    • flannel CNIプラグイン

    CNIプラグインは、ネットワーク・インタフェースの構成、IPアドレスのプロビジョニング、および接続の維持を行います。

必須のクラスタ・アドオンは、デフォルトで新しいKubernetesクラスタにデプロイされます。拡張クラスタを使用する場合、Container Engine for 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を自動的に更新するように指定できます。詳細は、クラスタ・アドオンとしてのCluster Autoscalerの操作を参照してください。
  • Istio:オプションのIstioアドオンは、すべてのサービス間通信に対して、自動化されたベースライン・トラフィック・レジリエンス、サービス・メトリック収集、分散トレース、トラフィック暗号化、プロトコル・アップグレードおよび高度なルーティング機能を提供します。詳細は、クラスタ・アドオンとしてのIstioの使用を参照してください。
  • ネイティブ・イングレス・コントローラ:オプションのOCIネイティブ・イングレス・コントローラ・アドオンのロード・バランシングと、Kubernetesクラスタ内のワーカー・ノードで実行されているサービス・ポッドへの受信トラフィックのルーティング。詳細は、クラスタ・アドオンとしてのOCIネイティブ・イングレス・コントローラの使用を参照してください。
  • Kubernetesメトリック・サーバー:オプションのKubernetesメトリック・サーバーは、クラスタ全体のリソース使用データのアグリゲータです。Kubernetesメトリック・サーバーは、各ワーカー・ノードで実行されているkubeletからリソース・メトリックを収集し、KubernetesメトリックAPIを介してKubernetes APIサーバーに公開します。詳細は、クラスタ・アドオンとしてのKubernetesメトリック・サーバーの使用を参照してください。

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

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

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

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

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

    クラスタをアップグレードして、Container Engine for KubernetesでサポートされているKubernetesのバージョンを実行することに注意してください。アドオンの自動更新を利用するには、クラスタでサポートされているバージョンのKubernetesが常に実行されるように、クラスタをタイムリにアップグレードすることをお薦めします。Container Engine for Kubernetesでサポートされなくなった古いバージョンのKubernetesがクラスタで実行されている場合、クラスタ・アドオンが自動的に更新されない可能性があります。

  • デプロイするアドオンのバージョンを選択するように指定した場合、Oracleは選択したアドオン・バージョンをデプロイします。アドオンのバージョンがクラスタで実行されているKubernetesバージョンと互換性があることを確認するのはユーザーの責任です。

    クラスタをアップグレードして、Container Engine for KubernetesでサポートされているKubernetesのバージョンを実行することに注意してください。OracleがContainer Engine for Kubernetesが古いバージョンのKubernetesのサポートを停止することを発表した場合、その古いKubernetesバージョンを実行しているクラスタをアップグレードし、(必要に応じて)新しいKubernetesバージョンと互換性のあるバージョンにアドオンを更新するのはユーザーの責任です。

クラスタ・アドオンを有効にし、Oracleでアドオンを自動的に更新するように指定すると、その後、アドオンの特定のバージョンをデプロイするかわりに指定できます。同様に、デプロイするアドオンのバージョンを選択するように指定した場合は、その後、Oracleでアドオンを自動的に更新するように指定できます。

OCI VCNネイティブ・ポッド・ネットワーキングCNIプラグイン・アドオンの場合、Oracleでアドオンを自動的に更新するか、自分でアドオンを更新するかに関係なく、更新はワーカー・ノードが次回再起動されるときにのみ適用されます。OCI VCNネイティブ・ポッド・ネットワークCNIプラグインの更新を参照してください。

クラスタ・アドオンに関するノート

クラスタ・アドオンを構成する場合は、次の点に注意してください。

  • 新しいクラスタの作成時に、重要なクラスタ・アドオンを無効にすることはできません。ただし、既存のクラスタを編集する場合は、重要なアドオンを無効にすることを選択できます。必須のクラスタ・アドオンを無効にした場合は、同等の機能を提供する代替アドオンのデプロイおよび構成を担当します。
  • 新しいクラスタを作成すると、重要なクラスタ・アドオンが自動的に更新されるように設定されます。ただし、必須のアドオンを自動的に更新しないことを選択できます。あなたがそうしたのなら、そのアドオンを最新の状態に保つ責任があります。
  • クラスタ・アドオンを有効にすると、1つ以上のキー/値ペアを指定して、クラスタ・アドオンに引数として渡すことで、アドオンを構成できます。たとえば、Kubernetes Dashboardの場合、numOfReplicasキーに3の値を指定します。
  • コンソールを使用してクラスタ・アドオンを無効にすると、アドオンはクラスタから削除されませんが、単に使用されません。アドオンを完全に削除するには、CLIまたはAPIを使用します。
  • Container Engine for Kubernetesは、基本クラスタおよび拡張クラスタにデプロイされた重要なクラスタ・アドオンの構成を、対応するデフォルトのクラスタ・アドオン構成と定期的に調整します。1つ以上の承認済キー/値ペア構成引数(「クラスタ・アドオン構成の引数」を参照)を使用して拡張クラスタにデプロイされた重要なクラスタ・アドオンを構成する場合、Container Engine for Kubernetesはカスタマイズをデフォルト構成とマージします。ただし、Container Engine for Kubernetesでは、重要なクラスタ・アドオン構成に対して行われた他のすべてのカスタマイズが破棄され、デフォルト構成がリストアされます。

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