4 環境およびモジュール
重要:
このドキュメントで説明されているソフトウェアは、Extended SupportまたはSustaining Supportにあります。 詳細は、「Oracleオープン・ソース・サポート・ポリシー」を参照してください。
このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお勧めします。
この章では、Oracle Cloud Native Environmentの環境とモジュールの概念について説明します。
環境
「環境」は、Oracle Cloud Native Environmentによってインストールおよび管理されるソフトウェアをカプセル化するネームスペースです。 それぞれの環境には、Kubernetesモジュールが必ず含まれています。
Platform CLIを使用することで、複数のデプロイメントの作成と管理が可能になります。 それぞれのデプロイメントに1つの環境が含まれていて、それぞれの環境には潜在的に複数のモジュールが含まれています。 これにより、同じOracle Cloud Native Environmentインストールを使用して複数のKubernetesクラスタを作成できます。 各Kubernetesクラスタに専用ノードが必要となるため、1つのサーバーを2つのクラスタまたは環境で使用することはできません。
図4-1 環境
モジュール
「モジュール」は、Oracle Cloud Native Environmentによってインストールおよび管理できる一連のソフトウェアです。 1つのモジュールは、あるデプロイメント内で少なくとも1つの特定の役割を果たします。 同じ役割を果たすモジュールは、管理された方法でスワップ・アウトすることもできます。 モジュールは、別のモジュールをカプセル化できます。
使用可能なモジュールは次のとおりです。
-
Kubernetesモジュール
-
Oracle Cloud Infrastructure Cloud Controller Managerモジュール
- MetalLBモジュール
-
Glusterコンテナ・ストレージ・インタフェース・モジュール
-
Operator Lifecycle Managerモジュール
-
Istioモジュール
-
Helmモジュール
-
Prometheusモジュール
-
Grafanaモジュール
Kubernetesモジュール
Oracle Cloud Native Environmentのコア・モジュールはKubernetesモジュールです。 Kubernetesモジュールは、Kubernetesクラスタを環境にデプロイするために使用されます。
図4-2 Kubernetesモジュール
Kubernetesモジュールは、Kubernetesをノードにインストールして構成し、クラスタを設定します。
図4-3 Kubernetesクラスタ
Kubernetesモジュールには、次のようなサブコンポーネントが含まれています。
-
Flannel: Kubernetesクラスタのデフォルト・オーバーレイ・ネットワーク。
-
CoreDNS: KubernetesクラスタのDNSサーバー。
-
CRI-O: Kubernetesクラスタのコンテナ・ランタイムを管理します。
-
runC: Kubernetesクラスタのデフォルト軽量で移植可能なコンテナ・ランタイム。
-
Kata Containers: Kubernetesクラスタのオプションの軽量仮想マシン・ランタイム。
Kubernetesモジュールのインストールと使用の詳細は、コンテナ・オーケストレーションを参照してください。
Oracle Cloud Infrastructure Cloud Controller Managerモジュール
Oracle Cloud Infrastructure Cloud Controller Managerモジュールは、Oracle Cloud Infrastructureを使用して動的にプロビジョニングされる永続ストレージおよびアプリケーション・ロード・バランサを設定するために使用されます。
Oracle Cloud Infrastructureブロック・ボリュームは、様々なOracle Cloud Infrastructure仮想マシンおよびベア・メタル・インスタンスを操作するように設計された、信頼性の高い高パフォーマンスのブロック・ストレージを提供します。 組込みの冗長性によって、ブロック・ボリュームは仮想マシンの存続期間を超えて永続的で耐久性が高く、コンピュート・インスタンス当たり1 PBまでスケーリングできます。 Oracle Cloud Infrastructure Cloud Controller Managerモジュールは、Oracle Cloud InfrastructureストレージにアクセスするためのKubernetes StorageClassインストーラを作成します。
Oracle Cloud Infrastructureフレキシブル・ネットワーク・ロード・バランシング・サービス(「Oracle Cloud Infrastructureロード・バランサ」)は、1つのエントリ・ポイントからVirtual Cloud Network (VCN)内の複数のバックエンド・サーバーへの自動トラフィック分散を提供します。 接続レベルで動作し、レイヤー3/レイヤー4 (IPプロトコル)データに基づいて受信クライアント接続を正常なバックエンド・サーバーにロード・バランシングします。
「Oracle Cloud Infrastructureロード・バランサ」は、Oracle Cloud Infrastructureで実行されているKubernetesアプリケーションのネットワーク・ロード・バランサを提供します。
Oracle Cloud Infrastructure Cloud Controller Managerモジュールは、HelmモジュールによってKubernetesクラスタにデプロイされます。
MetalLBモジュール
MetalLBは、ベア・メタル・ホストで実行されているKubernetesアプリケーション用のネットワーク・ロード・バランサです。 MetalLBでは、従来はクラウド・プロバイダのネットワーク・ロード・バランサをベア・メタル環境で使用していたKubernetes LoadBalancerサービスを使用できます。
MetalLBモジュールは、MetalLBを使用してKubernetesアプリケーションのネットワーク・ロード・バランサを設定するために使用します。
MetalLBモジュールは、HelmモジュールによってKubernetesクラスタにデプロイされます。
Glusterコンテナ・ストレージ・インタフェース・モジュール
Gluster Container Storage Interfaceモジュールは、Gluster Storage for Oracle Linuxを使用して動的にプロビジョニングされた永続ストレージを設定するために使用します。 Glusterは、複数のサーバーのディスク・ストレージ・リソースを単一のグローバル・ネームスペースに集約する、スケーラブルな分散ファイル・システムです。 Gluster Container Storage Interfaceモジュールは、GlusterストレージにアクセスするためのKubernetes StorageClassプロビジョナを作成します。
Gluster Container Storage Interfaceモジュールは、HelmモジュールによってKubernetesクラスタにデプロイされます。
Operator Lifecycle Managerモジュール
Operator Lifecycle Managerモジュールは、Kubernetesクラスタ内のKubernetesオペレータのインストールおよびライフサイクル管理を管理します。
Kubernetesオペレータは、タスクを自動化してKubernetesを拡張するコードを記述できる設計パターンです。 これは、Kubernetesのサービスの定義に使用できる概念のセットで、Kubernetesの管理サービスの自動化に役立ちます。
Operator Lifecycle Managerモジュールは、HelmモジュールによってKubernetesクラスタにデプロイされます。
Istioモジュール
Istioは、Kubernetesクラスタ内のマイクロサービスに対応するすべての機能を備えたサービス・メッシュです。 Istioは、マイクロサービス管理のほとんどの側面(ID、認証、トランスポート・セキュリティ、メトリック・スクレイピングなど)を処理できます。
Oracle Cloud Native EnvironmentのIstioモジュールは、IstioをKubernetesモジュール(クラスタ)にインストールし、Helmモジュールを使用してデプロイメントを実行します。
Istioモジュールは、Istioによってのみ使用される多数のコンポーネントをインストールします。
-
エグレス・ゲートウェイ
-
イングレス・ゲートウェイ
-
Istiod
-
Prometheus (Prometheusモジュールによってインストール)
-
Grafana (Grafanaモジュールによってインストール)
Istioモジュールをデプロイすると、Prometheusもサポート・モジュールとしてデプロイされます。 Prometheusは、Kubernetesクラスタのモニタリングとメトリック収集に使用されます。 Istioとともにデプロイされた別のサポート・モジュールは、Grafanaです。 Grafanaは、データベースに格納されている時系列データのモニタリングおよび視覚化ツールです。この場合、Prometheusです。 Grafanaを使用すると、Kubernetesクラスタのネットワーク・トラフィックとサービスを視覚的に問い合せてモニターできます。 Grafanaには、Prometheusに収集されたメトリックを視覚化するためのブラウザ・ベースのダッシュボードが含まれています。
図4-4 Istioモジュール
Istioモジュールのインストールおよび使用の詳細は、サービス・メッシュを参照してください。
Helmモジュール
Helmは、Kubernetesのパッケージ・マネージャです。 Helmにより、Kubernetesクラスタ内でのソフトウェアのデプロイおよび管理のタスクが簡単になります。 Helmでは、チャートを使用してデプロイ可能なパッケージを管理します。 チャートは、関連する一連のKubernetesリソースを説明するファイルの集合です。
Oracle Cloud Native Environment用のHelmモジュールは、HelmをKubernetesモジュール(クラスタ)にインストールします。 Helmモジュールは、Istioモジュールなどの追加モジュールをインストールするためにPlatform API Serverによって使用されます。
Prometheusモジュール
Prometheusは、各種のソースからメトリックなどの時系列データを収集して格納し、簡単に取得できる方法で提供するシステム・モニタリングおよびアラートのツールキットです。
Oracle Cloud Native EnvironmentのPrometheusモジュールは、Kubernetesクラスタ内の重要なシステムの豊富なモニタリングによって事前に構成されています。
Prometheusモジュールは、HelmモジュールによってKubernetesクラスタ内にデプロイされます。 PrometheusモジュールはIstioモジュールに必要であり、Istioが使用するPrometheusの埋込みインスタンスを作成するために使用されます。
ノート:
このリリースでは、PrometheusモジュールはIstioモジュール・デプロイメントのコンテキストでのみ使用されます。
Grafanaモジュール
Grafanaは、Prometheusの時系列データを問い合せて、そのデータをビジュアル化するためのダッシュボードを作成できるモニタリングおよびビジュアル化ツールです。 Kubernetesクラスタ、実行中のサービスおよびネットワーク・トラフィックを視覚的に監視できます。
Oracle Cloud Native EnvironmentのGrafanaモジュールは、Prometheusへの接続およびデータの読取り用に事前構成されています。
Grafanaモジュールは、HelmモジュールによってKubernetesクラスタにデプロイされます。 IstioモジュールではGrafanaモジュールが必要であり、Istioで使用するGrafanaのインスタンスを作成するために使用されます。
ノート:
このリリースでは、GrafanaモジュールはIstioモジュール・デプロイメントのコンテキストでのみ使用する必要があります。