概要
OpenShift Container Platform の紹介
概要
第1章 OpenShift Container Platform 4.8 ドキュメント
公式の OpenShift Container Platform 4.8 ドキュメントへようこそ。このドキュメントでは、OpenShift Container Platform について説明しており、その機能について確認してみてください。
OpenShift Container Platform 4.8 ドキュメント内の移動は、以下のいずれかの方法を使用できます。
- 左側のナビゲーションバーを使用して、ドキュメントを参照します。
- このウェルカムページのコンテンツから、興味のあるタスクを選択してください。
アーキテクチャー と セキュリティーとコンプライアンス から始めます。次に、リリースノート を参照してください。
1.1. クラスターインストーラーのアクティビティー
これらの OpenShift Container Platform インストールタスクを確認してください。
- OpenShift Container Platform インストールの概要: OpenShift Container Platform は、インストーラーによってプロビジョニングされたインフラストラクチャーまたはユーザーによってプロビジョニングされたインフラストラクチャーにインストールできます。OpenShift Container Platform インストールプログラムは、さまざまな異なるプラットフォームに OpenShift Container Platform を柔軟にデプロイできます。
- AWS でのクラスターのインストール: Amazon Web Services (AWS) にクラスターをデプロイする場合には、多くのインストールオプションがあります。デフォルト設定 または カスタム AWS 設定 でクラスターをデプロイできます。自分でプロビジョニングした AWS インフラストラクチャーにクラスターをデプロイすることもできます。必要に応じて、同梱の AWS CloudFormation テンプレート を変更できます。
- Azure でのクラスターのインストール: 既定の設定、カスタム Azure 設定、または Microsoft Azure の カスタムネットワーク設定 でクラスターをデプロイできます。また、OpenShift Container Platform を Azure Virtual Network にプロビジョニングしたり、Azure Resource Manager テンプレート を使用して独自のインフラストラクチャーをプロビジョニングしたりすることもできます。
- GCP でのクラスターのインストール: デフォルト設定 または カスタム GCP 設定 でクラスターを Google Cloud Platform (GCP) にデプロイできます。独自のインフラストラクチャーをプロビジョニングする GCP インストールを実行することもできます。
- Install a cluster on VMware vSphere: サポートされているバージョンの vSphere に OpenShift Container Platform をインストールできます。
- z/VM on IBM Z および LinuxONE を使用したクラスターのインストール: z/VM on IBM Z と LinuxONE を使用し、ユーザーがプロビジョニングしたインフラストラクチャーに OpenShift Container Platform をインストールできます。
- RHEL KVM on IBM Z と LinuxONE を使用したクラスターのインストール: ユーザーがプロビジョニングしたインフラストラクチャーに RHEL KVM on IBM Z および LinuxONE を使用して OpenShift Container Platform をインストールできます。
- IBM Power Systems でのクラスターのインストール: ユーザーがプロビジョニングしたインフラストラクチャーの IBM Power Systems に OpenShift Container Platform をインストールできます。
- インストーラーによってプロビジョニングされたクラスターのベアメタルへのインストール: インストーラーによってプロビジョニングされたアーキテクチャーを使用して、OpenShift Container Platform をベアメタルにインストールできます。
- ユーザーがプロビジョニングしたクラスターのベアメタルへのインストール: ニーズに合ったプラットフォームやクラウドプロバイダーデプロイメントのオプションがない場合には、ユーザーがプロビジョニングしたベアメタルインフラストラクチャーに OpenShift Container Platform をインストールできます。
- Red Hat OpenStack Platform (RHOSP) にクラスターをインストールする: カスタマイズした RHOSP にクラスターをインストールできます。
- Red Hat Virtualization (RHV) にクラスターをインストールする: Red Hat Virtualization (RHV) にクラスターをデプロイするには、クイックインストール または カスタマイズありのインストール を使用します。
- 制限付きのネットワークにクラスターをインストールする: AWS、GCP、vSphere、IBM Z および LinuxONE with z/VM、IBM Z および LinuxONE with RHEL KVM、IBM Power Systems、または ベアメタル 上でユーザーがプロビジョニングしたインフラストラクチャーを使用するクラスターが全インターネットにアクセスできない場合に OpenShift Container Platform インストールイメージをミラーリング して、制限されたネットワークにクラスターをインストールします。
- 既存のネットワークにクラスターをインストールする: AWS または GCP で既存の Virtual Private Cloud (VPC) を使用する場合、または Azure で既存の VNet を使用する場合は、クラスターをインストールできます。
- プライベートクラスターをインストールする: クラスターが外部インターネットアクセスを必要としない場合は、AWS、Azure、または GCP にプライベートクラスターをインストールできます。クラウド API とインストールメディアにアクセスするには、引き続きインターネットアクセスが必要です。
- インストールログを確認する: インストールログにアクセスして、OpenShift Container Platform 4.8 のインストール中に発生する問題を評価します。
- OpenShift Container Platform にアクセスする: インストールプロセスの最後に出力された資格情報を使用して、コマンドラインまたは Web コンソールから OpenShift Container Platform クラスターにログインします。
- Red Hat OpenShift Container Storage をインストールする: Red Hat OpenShift Container Storage を Operator としてインストールして、高度に統合され単純化されたコンテナーの永続ストレージ管理を提供できます。
1.2. 開発者のアクティビティー
OpenShift Container Platform を使用して、コンテナー化されたアプリケーションを開発し、デプロイします。OpenShift Container Platform は、コンテナー化されたアプリケーションを開発し、デプロイするためのプラットフォームです。OpenShift Container Platform のドキュメントは、以下の際に役に立ちます。
- OpenShift Container Platform での開発を理解する: 単純なコンテナーから高度な Kubernetes デプロイメントおよび Operator に至るまで、異なるタイプのコンテナー化されたアプリケーションについて説明します。
-
プロジェクトに関する操作を行う: OpenShift Container Platform Web コンソールまたは OpenShift CLI (
oc
) からプロジェクトを作成し、開発するソフトウェアを整理し共有します。 - アプリケーションを操作する:
OpenShift Container Platform Web コンソールの 開発者 パスペクティブ を使用して、アプリケーションの作成およびデプロイ を行います。
Topology ビュー を使用して、アプリケーションの表示、ステータスの監視、コンポーネントの接続およびグループ化、ならびにコードベースの変更を行います。
-
開発者 CLI ツール (
odo
) を使用する:odo
CLI ツールにより、開発者は単一またはマルチコンポーネントのアプリケーションを簡単に作成でき、デプロイメント、ビルド、およびサービスルート設定を自動化できます。odo は複雑な Kubernetes および OpenShift Container Platform の概念を抽象化し、アプリケーションの開発に集中できるようにします。 - CI/CD パイプラインを作成する: パイプラインは、分離されたコンテナーで実行されるサーバーレス、クラウドネイティブ、継続的インテグレーション、および継続的デプロイメントシステムです。パイプラインは、標準の Tekton カスタムリソースを使用してデプロイメントを自動化し、マイクロサービスベースのアーキテクチャーで機能する分散型チーム向けに設計されています。
- Helm チャートをデプロイする: Helm 3 は、開発者が Kubernetes でアプリケーションパッケージの定義、インストール、および更新を行うのに役立つパッケージマネージャーです。Helm チャートは、Helm CLI を使用してデプロイできるアプリケーションを記述するパッケージング形式です。
- イメージビルドを理解する: さまざまな種類のソースマテリアル (Git リポジトリー、ローカルバイナリー入力、および外部アーティファクトなどの場所) が含まれる各種のビルドストラテジー (Docker、S2I、カスタム、およびパイプライン) から選択します。次に、基本的なビルドから高度なビルドまで、ビルドタイプの例に従います。
- コンテナーイメージを作成する: コンテナーイメージは、OpenShift Container Platform(および Kubernetes) アプリケーションで最も基本的なビルディングブロックです。イメージストリームを定義すると、開発の進捗に応じて、イメージの複数のバージョンを 1 つの場所に集約できます。S2I コンテナーを使用すると、Ruby、Node.js、Python などの特定タイプのコードを実行するように設定されたベースコンテナーに、ソースコードを挿入することができます。
-
デプロイメントを作成する:
Deployment
およびDeploymentConfig
オブジェクトを使用して、アプリケーションの詳細な管理を行います。Workloads ページまたは OpenShift CLI (oc
) を使用して デプロイメントを管理します。ローリング、再作成およびカスタム デプロイメントストラテジーについて説明します。 - テンプレートを作成する: 既存のテンプレートを使用するか、またはアプリケーションのビルドまたはデプロイ方法を記述する独自のテンプレートを作成します。テンプレートは、イメージと説明、パラメーター、レプリカ、公開されたポートおよびアプリケーションの実行またはビルド方法を定義するその他のコンテンツを組み合わせることができます。
- Operator について理解する: Operator は、OpenShift Container Platform 4.8 でクラスターアプリケーションを作成するのに推奨される方法です。Operator Framework について、またインストールされた Operator を使用してアプリケーションをプロジェクトにデプロイする方法について説明します。
- Operator を開発する: Operator は、OpenShift Container Platform 4.8 でクラスターアプリケーションを作成するのに推奨される方法です。Operator の構築、テスト、およびデプロイのワークフローについて説明します。次に、Ansible または Helm に基づいて独自の Operator を作成するか、または Operator SDK を使用して ビルトイン Prometheus モニターリング を設定します。
- REST API リファレンス: OpenShift Container Platform アプリケーションプログラミングインターフェイスのエンドポイントについて確認します。
1.3. クラスター管理者のアクティビティー
マシンの管理、ユーザーへのサービス提供を行い、監視とログのレポートに従います。このドキュメントは次のことに役立ちます。
- OpenShift Container Platform の管理: OpenShift Container Platform 4.8 コントロールプレーンのコンポーネントについて説明します。OpenShift Container Platform コントロールプレーンおよびワーカーノードが マシン API および Operator によりどのように管理および更新されるかについて把握します。
1.3.1. クラスターコンポーネントの管理
- マシンの管理: AWS、Azure、または GCP 上のクラスター内のマシンを管理するには、ヘルスチェックをデプロイし、マシンに自動スケーリングを適用します。
- コンテナーレジストリーのを管理する: 各 OpenShift Container Platform クラスターには、そのイメージを保存するための組み込みのコンテナーレジストリーが含まれています。OpenShift Container Platform で使用する別の Red Hat Quay レジストリーを設定することもできます。Quay.io Web サイトは、OpenShift Container Platform コンテナーおよび Operator を格納するパブリックコンテナーレジストリーを提供します。
- ユーザーとグループを管理する: クラスターの使用または変更について、さまざまなレベルのパーミッションを持つユーザーおよびグループを追加します。
認証を管理する: OpenShift Container Platform で、ユーザー、グループ、および API 認証がどのように機能するかを確認します。OpenShift Container Platform は、以下のように複数のアイデンティティープロバイダーをサポートします。
- ingress、API サーバー、および サービス 証明書を管理する: OpenShift Container Platform は、Ingress Operator、API サーバー、および暗号化を必要とする複雑なミドルウェアアプリケーションが必要とするサービスに対して、デフォルトで証明書を作成します。これらの証明書を変更、追加、またはローテーションする必要がある場合があります。
- ネットワークを管理する: OpenShift Container Platform のクラスターネットワークは、Cluster Network Operator (CNO) によって管理されます。CNO は、kube-proxy の iptables ルールを使用して、ノードとそれらのノードで実行されている Pod 間のトラフィックを転送します。Multus Container Network Interface は 複数のネットワークインターフェイス を Pod に割り当てる機能を追加します。ネットワークポリシー 機能を使用すると、Pod を分離したり、選択したトラフィックを許可したりできます。
- ストレージを管理する: OpenShift Container Platform では、クラスター管理者が Red Hat OpenShift Container Storage、AWS Elastic Block Store、NFS、iSCSI、Container Storage Interface (CSI) などを使用して永続ストレージを設定できます。永続ボリュームを拡張 して 動的プロビジョニング を設定し、CSI を使用して、永続ストレージの スナップショット を 設定、クローン 使用できます。
- Operator を管理する: Red Hat、ISV、およびコミュニティー Operator の一覧は、クラスター管理者によって確認でき、クラスターにインストール できます。インストール後に、クラスターで Operator を 実行、アップグレード、バックアップ、または管理できます。
1.3.2. クラスターコンポーネントの変更
- カスタムリソース定義 (CRD) を使用してクラスターを変更する: Operator で実装されたクラスター機能は、CRD で変更できます。CRD の作成 および CRD からのリソースの管理 について参照してください。
- リソースクォータを設定する: CPU、メモリー、その他のシステムリソースから選択し、クォータを設定します。
- リソースをプルーニングおよび回収する: 不要な Operator、グループ、デプロイメント、ビルド、イメージ、レジストリー、および cron ジョブをプルーニングして領域を回収します。
- クラスターの スケーリング および チューニング を行う: クラスター制限の設定、ノードのチューニング、クラスターモニターリングのスケーリング、ならびに環境に合わせたネットワーク設定、ストレージおよびルートの最適化を行います。
-
クラスターの更新 を行う: Cluster Version Operator (CVO) を使用して、OpenShift Container Platform クラスターをアップグレードします。OpenShift Update Service (OSUS) から更新が利用可能な場合、OpenShift Container Platform Web コンソール または OpenShift CLI (
oc
) からそのクラスター更新を適用します。
- OpenShift Update Service を理解する: 切断された環境で OpenShift Container Platform の更新を推奨するローカルの OpenShift Update Service のインストールおよび管理について確認します。
1.3.3. クラスターの監視
- OpenShift ロギングを使用する: OpenShift Logging について確認して、Elasticsearch、Fluentd、Kibana などのさまざまな OpenShift Logging タイプを設定します。
- クラスターを監視する: モニターリングスタックの設定 について参照してください。モニターリングの設定後、Web コンソールを使用して モニターリングダッシュボード にアクセスします。インフラストラクチャーメトリクスに加えて、独自のサービスのメトリクスを収集し、表示することもできます。
- リモートヘルスモニターリング: OpenShift Container Platform はクラスターについての匿名の集計情報を収集します。Telemetry および Insights Operator を使用すると、このデータは Red Hat によって受信され、OpenShift Container Platform を改善するために使用されます。リモートヘルスモニターリングで収集されるデータ を表示できます。
第2章 OpenShift Container Platform について
以下のセクションを使用して、OpenShift Container Platform について確認して、使用に役立つコンテンツを見つけてください。
2.1. アーキテクト
OpenShift Container Platform の確認 | OpenShift Container Platform デプロイメントの計画 | 関連情報 |
---|---|---|
2.2. クラスター管理者
OpenShift Container Platform の確認 | OpenShift Container Platform のデプロイ | OpenShift Container Platform の管理 | 関連情報 |
---|---|---|---|
2.3. アプリケーションサイト信頼性エンジニア (アプリ SRE)
OpenShift Container Platform の確認 | アプリケーションのデプロイと管理 | 関連情報 |
---|---|---|
2.4. 開発者
OpenShift Container Platform でのアプリケーション開発に関する確認 | アプリケーションのデプロイ |
---|---|
Getting Started with OpenShift for Developers (インタラクティブチュートリアル) (英語) | |
2.5. OpenShift Container Platform について
OpenShift Container Platform は、コンテナーベースのアプリケーションのライフサイクルと、ベアメタル、仮想化、オンプレミス、クラウドなどのさまざまなコンピューティングプラットフォームへの依存関係を管理するための Kubernetes 環境です。OpenShift Container Platform はコンテナーをデプロイ、設定、および管理します。OpenShift Container Platform は、そのコンポーネントの使いやすさ、安定性、およびカスタマイズを提供します。
OpenShift Container Platform は、ノードと呼ばれる多数のコンピューティングリソースを利用します。ノードには、Red Hat Enterprise Linux CoreOS (RHCOS) として知られる、Red Hat Enterprise Linux (RHEL) に基づく軽量で安全なオペレーティングシステムがあります。
ノードは、起動して設定した後、スケジュールされたコンテナーワークロードのイメージを管理および実行するために、CRI-O や Docker などのコンテナーランタイムを取得します。Kubernetes エージェント (kubelet) は、ノード上のコンテナーワークロードをスケジュールします。kubelet は、ノードをクラスターに登録し、コンテナーワークロードの詳細を受け取るロールを果たします。
OpenShift Container Platform は、クラスターのネットワーキング、負荷分散、およびルーティングを設定および管理します。OpenShift Container Platform は、クラスターのヘルスとパフォーマンスのモニタリング、ロギング、およびアップグレードの管理のためのクラスターサービスを追加します。
コンテナーイメージレジストリーと OperatorHub は、クラスター内でさまざまなアプリケーションサービスを提供するための Red Hat 認定製品とコミュニティービルドソフトウェアを提供します。これらのアプリケーションとサービスは、クラスターにデプロイされたアプリケーション、データベース、フロントエンドとユーザーインターフェイス、アプリケーションランタイムとビジネスの自動化、およびコンテナーアプリケーションの開発とテストのための開発者サービスを管理します。
クラスター内のアプリケーションを管理するには、ビルド済みのイメージから実行されるコンテナーのデプロイを手動で設定するか、Operator と呼ばれるリソースを使用します。ビルド前のイメージとソースコードからカスタムイメージをビルドし、これらのカスタムイメージをローカルの内部、プライベート、またはパブリックレジストリーに保存できます。
マルチクラスター管理レイヤーは、単一のコンソールで、複数のクラスターのデプロイメント、設定、コンプライアンス、およびワークロードの分散を管理できます。
第3章 OpenShift Kubernetes Engine の概要
2020 年 4 月 27 日現在、Red Hat では、製品の提供する価値を適切に伝えることを目的とし、Red Hat OpenShift Container Engine の名前を Red Hat OpenShift Kubernetes Engine に変更しました。
Red Hat OpenShift Kubernetes Engine は、Red Hat が提供する製品であり、エンタープライズクラスの Kubernetes プラットフォームを、コンテナーを起動するための実稼働プラットフォームとして使用できるようにします。OpenShift Kubernetes Engine は、OpenShift Container Platform と同じバイナリーディストリビューションであるため、同じ方法でダウンロードしてインストールしますが、OpenShift Kubernetes Engine では、OpenShift Container Platform が提供する機能のサブセットも提供します。
3.1. 類似点と相違点
以下の表で、OpenShift Kubernetes Engine と OpenShift Container Platform の類似点と相違点を確認できます。
OpenShift Kubernetes Engine | OpenShift Container Platform | ||
---|---|---|---|
完全に自動化されたインストーラー | はい | はい | |
無線によるスマートアップグレード | はい | はい | |
Enterprise Secured Kubernetes | はい | はい | |
Kubectl と oc の自動化されたコマンドライン | はい | はい | |
Operator Lifecycle Manager (OLM) | はい | はい | |
管理者用 Web コンソール | はい | はい | |
OpenShift Virtualization | はい | はい | |
ユーザーワークロードの監視 | はい | ||
計量およびコスト管理 SaaS サービス | はい | ||
プラットフォームのロギング | はい | ||
開発者用 Web コンソール | はい | ||
開発者アプリケーションカタログ | はい | ||
ソースからイメージおよびビルダーの自動化 (Tekton) | はい | ||
OpenShift Service Mesh (Maistra, Kiali, and Jaeger) | はい | ||
OpenShift distributed tracing (Jaeger) | はい | ||
OpenShift Serverless (Knative) | はい | ||
OpenShift パイプライン (Jenkins および Tekton) | はい | ||
IBM Cloud Pak および RHT MW バンドルの組み込みコンポーネント | はい |
3.1.1. コア Kubernetes とコンテナーオーケストレーション
OpenShift Kubernetes Engine は、インストールが簡単なエンタープライズ対応の Kubernetes 環境への完全なアクセスを提供し、データセンターで使用する可能性のある多くのソフトウェア要素を含む広範な互換性テストマトリックスを提供します。
OpenShift Kubernetes Engine は、OpenShift Container Platform と同じサービスレベルアグリーメント、バグ修正を提供し、一般的な脆弱性やエラーから守ります。OpenShift Kubernetes Engine には、Red Hat Enterprise Linux (RHEL) Virtual Datacenter と Red Hat Enterprise Linux CoreOS (RHCOS) のエンタイトルメントが含まれており、同じテクノロジープロバイダーのコンテナーランタイムを備えた統合 Linux オペレーティングシステムを使用できます。
OpenShift Kubernetes Engine サブスクリプションは、Red Hat OpenShift support for Windows Containers サブスクリプションと互換性があります。
3.1.2. エンタープライズ対応の設定
OpenShift Kubernetes Engine は、OpenShift Container Platform と同じセキュリティーオプションとデフォルト設定を使用します。OpenShift Container Platform が提供するデフォルトのセキュリティーコンテキスト制約、Pod セキュリティーポリシー、ベストプラクティスのネットワークおよびストレージ設定、サービスアカウント設定、SELinux 統合、HAproxy エッジルーティング設定、およびその他すべての標準的な保護は、OpenShift Kubernetes Engine で利用できます。OpenShift Kubernetes Engine は、OpenShift Container Platform が使用する統合モニターリングソリューション全てにアクセスできます。このソリューションは、Prometheus に基づいており、一般的な Kubernetes の問題に対する幅広く対応し、さらにアラートも提供します。
OpenShift Kubernetes Engine は、OpenShift Container Platform と同じインストールおよびアップグレードの自動化を使用します。
3.1.3. 標準インフラストラクチャーサービス
OpenShift Kubernetes Engine サブスクリプションを使用すると、OpenShift Container Platform がサポートするすべてのストレージプラグインのサポートを受けることができます。
ネットワークに関しては、OpenShift Kubernetes Engine は Kubernetes Container Network Interface (CNI) すべてにサポート付きでアクセスでき、OpenShift Container Platform をサポートするサードパーティーの SDN を使用できます。また、付属の Open vSwitch ソフトウェア定義ネットワークを最大限に使用することもできます。OpenShift Kubernetes Engine を使用すると、OpenShift Container Platform でサポートされている OVN Kubernetes オーバーレイ、Multus、および Multus プラグインを最大限に活用できます。OpenShift Kubernetes Engine を使用すると、Kubernetes ネットワークポリシーを使用して、クラスターにデプロイされたアプリケーションサービス間にマイクロセグメンテーションを作成できます。
また、すぐに使用できる Kubernetes Ingress コントローラーとしての HAproxy エッジルーティングレイヤーとの高度な統合など、OpenShift Container Platform にある Route
API オブジェクトを使用することもできます。
3.1.4. コアユーザーエクスペリエンス
OpenShift Kubernetes Engine ユーザーには、Kubernetes Operators、Pod デプロイメントストラテジー、Helm、および OpenShift Container Platform テンプレートに対する完全なアクセス権があります。OpenShift Kubernetes Engine ユーザーは、oc
および kubectl
コマンドラインインターフェイスの両方を使用できます。OpenShift Kubernetes Engine には、管理者の Web ベースのコンソールも含まれており、デプロイされたコンテナーサービスのすべての機能を表示し、container-as-a service エクスペリエンスを提供します。OpenShift Kubernetes Engine は、Operator Life Cycle Manager へのアクセスを許可し、使用するクラスターおよびライフサイクル Operator 対応サービスのコンテンツへのアクセスを制御するのに役立ちます。OpenShift Kubernetes Engine サブスクリプションを使用すると、Kubernetes namespace、OpenShift プロジェクト
API オブジェクト、およびクラスターレベルの Prometheus モニターリングメトリクスとイベントにアクセスできます。
3.1.5. 管理され精選されたコンテンツ
OpenShift Kubernetes Engine サブスクリプションを使用すると、Red Hat Ecosystem Catalog および Red Hat Connect ISV マーケットプレイスから OpenShift Container Platform コンテンツにアクセスできます。OpenShift Container Platform エコシステムが提供する、維持および精選されたすべてのコンテンツにアクセスできます。
3.1.6. OpenShift Container Storage の互換性
OpenShift Kubernetes Engine は、OpenShift Container Storage との互換性があり、購入するとサポートされます。
3.1.7. Red Hat ミドルウェアの互換性
OpenShift Kubernetes Engine は、個々の Red Hat Middleware 製品ソリューションと互換性があり、サポートされています。OpenShift が組み込まれた Red Hat Middleware Bundle には、OpenShift Container Platform のみが含まれます。
3.1.8. OpenShift Serverless
OpenShift Kubernetes Engine には、OpenShift Serverless サポートは含まれていません。このサポートには OpenShift Container Platform を使用してください。
3.1.9. Quay インテグレーション対応
OpenShift Kubernetes Engine は互換性があり、Red Hat Quay を購入するとサポートされます。
3.1.10. OpenShift Virtualization
OpenShift Kubernetes Engine には、kubevirt.io オープンソースプロジェクトから派生した Red Hat 製品オファリングのサポートが含まれています。
3.1.11. 高度なクラスター管理
OpenShift Kubernetes Engine は、Red Hat Advanced Cluster Management (RHACM) for Kubernetes の追加購入にも対応しています。OpenShift Kubernetes Engine サブスクリプションでは、クラスター全体のログ集約ソリューションは提供されず、Elasticsearch、Fluentd、または Kibana ベースのロギングソリューションもサポートしません。同様に、OpenShift Container Platform または console.redhat.com Cost Management SaaS サービスにあるチャージバック機能は、OpenShift Kubernetes Engine ではサポートされていません。Red Hat Service Mesh 機能は、OpenShift Container Platform の集約サービス向けの OpenTracing 可観測性機能を提供するオープンソースの istio.io および kiali.io プロジェクトから取得している場合には、OpenShift Kubernetes Engine ではサポートされません。
3.1.12. 高度なネットワーキング
OpenShift Container Platform の標準ネットワークソリューションは、OpenShift Kubernetes Engine サブスクリプションでサポートされています。OpenShift Container Platform プロジェクト間のマルチテナントネットワークセグメンテーションを自動化するための OpenShift Container Platform の Kubernetes CNI プラグインは、OpenShift Kubernetes Engine で使用する資格があります。OpenShift Kubernetes Engine は、クラスター上のアプリケーションサービスによって使用されるソース IP アドレスの詳細にわたる全制御機能を提供します。これらの egress IP アドレス制御は、OpenShift Kubernetes Engine で使用する資格があります。OpenShift Container Platform は、OpenShift Container Platform にある VIP Pod 経由でパブリッククラウドプロバイダーが使用されていない場合に、標準以外のポートを使用するクラスターサービスへの Ingress ルーティングを行います。この Ingress ソリューションは、OpenShift Kubernetes Engine でサポートされています。OpenShift Kubernetes Engine ユーザーは、パブリッククラウドプロバイダーとの統合を提供する Kubernetes Ingress コントロールオブジェクトでサポートされます。istio.io オープンソースプロジェクトから派生した Red Hat Service Mesh は、OpenShift Kubernetes Engine ではサポートされていません。また、OpenShift Serverless にある Kourier Ingress コントローラーは、OpenShift Kubernetes Engine ではサポートされていません。
3.1.13. 開発者のエクスペリエンス
OpenShift Kubernetes Engine では、次の機能はサポートされていません。
- CodeReady 開発者エクスペリエンスユーティリティーおよびツール (CodeReady Workspaces など)。
- 合理化された Kubernetes 対応の Jenkins および Tekton エクスペリエンスをユーザーのプロジェクト空間に統合する OpenShift Container Platform のパイプライン機能。
- OpenShift Container Platform の source-to-image 機能。クラスター全体にソースコード、dockerfile、またはコンテナーイメージを簡単にデプロイできます。
- エンドユーザーコンテナーデプロイ用の構築ストラテジー、ビルダー Pod、または Tekton。
-
odo
開発者コマンドライン。 - OpenShift Container Platform Web コンソールの開発者ペルソナ。
3.1.14. 機能の概要
以下の表は、OpenShift Kubernetes Engine および OpenShift Container Platform で利用できる機能の概要です。該当する場合は、機能を有効にする Operator の名前が含まれます。
機能 | OpenShift Kubernetes Engine | OpenShift Container Platform | Operator 名 |
---|---|---|---|
完全自動インストーラー (IPI) | 同梱 | 同梱 | 該当なし |
カスタマイズ可能なインストーラー (UPI) | 同梱 | 同梱 | 該当なし |
非接続インストール | 同梱 | 同梱 | 該当なし |
Red Hat Enterprise Linux (RHEL) または Red Hat Enterprise Linux CoreOS (RHCOS) entitlement | 同梱 | 同梱 | 該当なし |
既存の RHEL クラスターへの手動アタッチ (BYO) | 同梱 | 同梱 | 該当なし |
CRIO ランタイム | 同梱 | 同梱 | 該当なし |
Over the Air Smart Upgrade とオペレーティングシステム (RHCOS) の管理 | 同梱 | 同梱 | 該当なし |
Enterprise Secured Kubernetes | 同梱 | 同梱 | 該当なし |
Kubectl と | 同梱 | 同梱 | 該当なし |
認証統合、RBAC、SCC、マルチテナンシーアドミッションコントローラー | 同梱 | 同梱 | 該当なし |
Operator Lifecycle Manager (OLM) | 同梱 | 同梱 | 該当なし |
管理者用 Web コンソール | 同梱 | 同梱 | 該当なし |
OpenShift Virtualization | 同梱 | 同梱 | OpenShift Virtualization Operator |
Red Hat が提供する Compliance Operator | 同梱 | 同梱 | Compliance Operator |
File Integrity Operator | 同梱 | 同梱 | File Integrity Operator |
Gatekeeper Operator | 同梱なし: 別のサブスクリプションが必要です | 同梱なし: 別のサブスクリプションが必要です | Gatekeeper Operator |
Klusterlet | 同梱なし: 別のサブスクリプションが必要です | 同梱なし: 別のサブスクリプションが必要です | 該当なし |
Red Hat が提供する Kube Descheduler Operator | 同梱 | 同梱 | Kube Descheduler Operator |
Red Hat が提供するローカルストレージ | 同梱 | 同梱 | Local Storage Operator |
Red Hat が提供する Node Feature Discovery | 同梱 | 同梱 | Node Feature Discovery Operator |
パフォーマンスアドオン Operator | 同梱 | 同梱 | パフォーマンスアドオン Operator |
Red Hat が提供する PTP Operator | 同梱 | 同梱 | PTP Operator |
Red Hat が提供する Service Telemetry Operator | 同梱 | 同梱 | Service Telemetry Operator |
SR-IOV ネットワーク Operator | 同梱 | 同梱 | SR-IOV ネットワーク Operator |
Vertical Pod Autoscaler | 同梱 | 同梱 | Vertical Pod Autoscaler |
クラスター監視 (Prometheus) | 同梱 | 同梱 | Cluster Monitoring |
デバイスマネージャー (GPU など) | 同梱 | 同梱 | 該当なし |
ログ転送 (fluentd 使用) | 同梱 | 同梱 | Red Hat OpenShift Logging Operator (fluentd によるログ転送用) |
Telemeter と Insights のコネクテッドエクスペリエンス | 同梱 | 同梱 | 該当なし |
機能 | OpenShift Kubernetes Engine | OpenShift Container Platform | Operator 名 |
OpenShift Cloud Manager SaaS Service | 同梱 | 同梱 | 該当なし |
OVS および OVN SDN | 同梱 | 同梱 | 該当なし |
MetalLB | 同梱 | 同梱 | Metal LB オペレーター |
HAProxy Ingress コントローラー | 同梱 | 同梱 | 該当なし |
Red Hat OpenStack Platform (RHOSP) Kuryr Integration | 同梱 | 同梱 | 該当なし |
Ingress クラスター全体のファイアウォール | 同梱 | 同梱 | 該当なし |
Egress Pod と Namespace の詳細な制御 | 同梱 | 同梱 | 該当なし |
標準以外の Ingress ポート | 同梱 | 同梱 | 該当なし |
Multus と利用可能な Multus プラグイン | 同梱 | 同梱 | 該当なし |
ネットワークポリシー | 同梱 | 同梱 | 該当なし |
IPv6 シングルおよびデュアルスタック | 同梱 | 同梱 | 該当なし |
CNI プラグイン ISV の互換性 | 同梱 | 同梱 | 該当なし |
CSI プラグイン ISV の互換性 | 同梱 | 同梱 | 該当なし |
RHT および IBM ミドルウェアの単品購入 (OpenShift Container Platform または OpenShift Kubernetes Engine には同梱なし) | 同梱 | 同梱 | 該当なし |
ISV またはパートナー Operator とコンテナーの互換性 (OpenShift Container Platform または OpenShift Kubernetes Engine には同梱なし) | 同梱 | 同梱 | 該当なし |
組み込み OperatorHub | 同梱 | 同梱 | 該当なし |
組み込みマーケットプレイス | 同梱 | 同梱 | 該当なし |
Quay の互換性 (同梱なし) | 同梱 | 同梱 | 該当なし |
RHEL Software Collections および RHT SSO Common Service (同梱あり) | 同梱 | 同梱 | 該当なし |
組み込みレジストリー | 同梱 | 同梱 | 該当なし |
Helm | 同梱 | 同梱 | 該当なし |
ユーザーワークロードの監視 | 同梱なし | 同梱 | 該当なし |
計量およびコスト管理 SaaS サービス | 同梱なし | 同梱 | 該当なし |
プラットフォームのロギング | 同梱なし | 同梱 | Red Hat OpenShift Logging Operator |
OpenShift Elasticsearch Operator provided by Red Hat | 同梱なし | スタンドアロンで実行できません | 該当なし |
開発者用 Web コンソール | 同梱なし | 同梱 | 該当なし |
開発者アプリケーションカタログ | 同梱なし | 同梱 | 該当なし |
ソースからイメージおよびビルダーの自動化 (Tekton) | 同梱なし | 同梱 | 該当なし |
OpenShift Service Mesh | 同梱なし | 同梱 | OpenShift Service Mesh Operator |
サービスバインディング Operator | 同梱なし | 同梱 | サービスバインディング Operator |
機能 | OpenShift Kubernetes Engine | OpenShift Container Platform | Operator 名 |
Red Hat OpenShift Serverless | 同梱なし | 同梱 | OpenShift Serverless Operator |
Red Hat が提供する Web ターミナル | 同梱なし | 同梱 | Web 端末 Operator |
Red Hat が提供する Jenkins Operator | 同梱なし | 同梱 | Jenkins Operator |
Red Hat OpenShift Pipelines Operator | 同梱なし | 同梱 | OpenShift パイプライン Operator |
IBM Cloud Pak および RHT MW バンドルの組み込みコンポーネント | 同梱なし | 同梱 | 該当なし |
Red Hat OpenShift GitOps | 同梱なし | 同梱 | OpenShift GitOps |
Red Hat CodeReady Workspaces | 同梱なし | 同梱 | CodeReady Workspace |
Red Hat CodeReady Containers | 同梱なし | 同梱 | 該当なし |
Red Hat が提供する Quay Bridge Operator | 同梱なし | 同梱 | Quay Bridge Operator |
Red Hat が提供する Quay Container Security | 同梱なし | 同梱 | Quay Operator |
Red Hat OpenShift 分散トレースプラットフォーム | 同梱なし | 同梱 | Red Hat OpenShift 分散トレースプラットフォーム Operator をクリックします。 |
Red Hat OpenShift Kiali | 同梱なし | 同梱 | Kiali Operator |
Red Hat が提供するメータリング (非推奨) | 同梱なし | 同梱 | 該当なし |
Migration Toolkit for Containers Operator | 同梱なし | 同梱 | Migration Toolkit for Containers Operator |
OpenShift のコスト管理 | 含まれない | 同梱 | 該当なし |
Red Hat JBoss Web Server | 含まれない | 同梱 | JWS Operator |
Red Hat ビルドの Quarkus | 含まれない | 同梱 | 該当なし |
Kourier Ingress コントローラー | 含まれない | 同梱 | 該当なし |
RHT Middleware Bundles Sub Compatibility (OpenShift Container Platform には同梱なし) | 含まれない | 同梱 | 該当なし |
IBM Cloud Pak Sub Compatibility (OpenShift Container Platform には同梱なし) | 含まれない | 同梱 | 該当なし |
OpenShift Do ( | 含まれない | 同梱 | 該当なし |
Source to Image および Tekton Builder | 含まれない | 同梱 | 該当なし |
OpenShift Serverless FaaS | 含まれない | 同梱 | 該当なし |
IDE 統合 | 含まれない | 同梱 | 該当なし |
Windows Machine Config Operator | Community Windows Machine Config Operator を同梱: サブスクリプションは不要です | Red Hat Windows Machine Config Operator を同梱: 別途サブスクリプションが必要です | Windows Machine Config Operator |
Red Hat Quay | 同梱なし: 別のサブスクリプションが必要です | 同梱なし: 別のサブスクリプションが必要です | Quay Operator |
Red Hat Advanced Cluster Management | 同梱なし: 別のサブスクリプションが必要です | 同梱なし: 別のサブスクリプションが必要です | Advanced Cluster Management for Kubernetes |
Red Hat Advanced Cluster Security | 同梱なし: 別のサブスクリプションが必要です | 同梱なし: 別のサブスクリプションが必要です | 該当なし |
OpenShift Container Storage | 同梱なし: 別のサブスクリプションが必要です | 同梱なし: 別のサブスクリプションが必要です | OpenShift Container Storage |
機能 | OpenShift Kubernetes Engine | OpenShift Container Platform | Operator 名 |
Ansible Automation Platform Resource Operator | 同梱なし: 別のサブスクリプションが必要です | 同梱なし: 別のサブスクリプションが必要です | Ansible Automation Platform Resource Operator |
Red Hat が提供するビジネスの自動化 | 同梱なし: 別のサブスクリプションが必要です | 同梱なし: 別のサブスクリプションが必要です | 業務自動化 Operator |
Red Hat が提供する Data Grid | 同梱なし: 別のサブスクリプションが必要です | 同梱なし: 別のサブスクリプションが必要です | Data Grid Operator |
Red Hat が提供する Red Hat Integration | 同梱なし: 別のサブスクリプションが必要です | 同梱なし: 別のサブスクリプションが必要です | Red Hat Integration Operator |
Red Hat Integration - Red Hat が提供する 3Scale | 同梱なし: 別のサブスクリプションが必要です | 同梱なし: 別のサブスクリプションが必要です | 3scale |
Red Hat Integration - Red Hat が提供する 3Scale APICast ゲートウェイ | 同梱なし: 別のサブスクリプションが必要です | 同梱なし: 別のサブスクリプションが必要です | 3scale APIcast |
Red Hat Integration - AMQ Broker | 同梱なし: 別のサブスクリプションが必要です | 同梱なし: 別のサブスクリプションが必要です | AMQ Broker |
Red Hat Integration - AMQ Broker LTS | 同梱なし: 別のサブスクリプションが必要です | 同梱なし: 別のサブスクリプションが必要です | |
Red Hat Integration - AMQ Interconnect | 同梱なし: 別のサブスクリプションが必要です | 同梱なし: 別のサブスクリプションが必要です | AMQ Interconnect |
Red Hat Integration - AMQ Online | 同梱なし: 別のサブスクリプションが必要です | 同梱なし: 別のサブスクリプションが必要です | |
Red Hat Integration - AMQ Streams | 同梱なし: 別のサブスクリプションが必要です | 同梱なし: 別のサブスクリプションが必要です | AMQ Streams |
Red Hat Integration - Camel K | 同梱なし: 別のサブスクリプションが必要です | 同梱なし: 別のサブスクリプションが必要です | Camel K |
Red Hat Integration- Fuse コンソール | 同梱なし: 別のサブスクリプションが必要です | 同梱なし: 別のサブスクリプションが必要です | Fuse Console |
Red Hat Integration- Fuse Online | 同梱なし: 別のサブスクリプションが必要です | 同梱なし: 別のサブスクリプションが必要です | Fuse Online |
Red Hat Integration- Service Registry Operator | 同梱なし: 別のサブスクリプションが必要です | 同梱なし: 別のサブスクリプションが必要です | Service Registry |
Red Hat が提供する API Designer | 同梱なし: 別のサブスクリプションが必要です | 同梱なし: 別のサブスクリプションが必要です | API Designer |
Red Hat が提供する JBoss EAP | 同梱なし: 別のサブスクリプションが必要です | 同梱なし: 別のサブスクリプションが必要です | JBoss EAP |
JBoss Web Server provided by Red Hat | 同梱なし: 別のサブスクリプションが必要です | 同梱なし: 別のサブスクリプションが必要です | JBoss Web Server |
Smart Gateway Operator | 同梱なし: 別のサブスクリプションが必要です | 同梱なし: 別のサブスクリプションが必要です | Smart Gateway Operator |
Kubernetes NMState Operator | 同梱 | 同梱 | 該当なし |
3.2. サブスクリプションの制限
OpenShift Kubernetes Engine は、OpenShift Container Platform に限定されたサポート対象機能セットを低価格で提供するサブスクリプションサービスです。OpenShift Kubernetes Engine と OpenShift Container Platform は同じ製品であるため、すべてのソフトウェアと機能が両方で提供されます。ダウンロードは、OpenShift Container Platform の 1 つだけです。このため、OpenShift Kubernetes Engine は、OpenShift Container Platform のドキュメント、サポートサービス、およびバグのエラータを使用します。
第4章 Kubernetes の概要
Kubernetes は、Google が開発したオープンソースのコンテナーオーケストレーションツールです。Kubernetes を使用して、コンテナーベースのワークロードを実行および管理できます。最も一般的な Kubernetes のユースケースは、相互接続されたマイクロサービスのアレイをデプロイし、クラウドネイティブな方法でアプリケーションを構築することです。オンプレミス、パブリック、プライベート、またはハイブリッドクラウド全体のホストにまたがることができる Kubernetes クラスターを作成できます。
従来、アプリケーションは単一のオペレーティングシステムの上にデプロイされていました。仮想化を使用すると、物理ホストを複数の仮想ホストに分割できます。共有リソース上の仮想インスタンスで作業することは、効率やスケーラビリティの面で最適とは言えません。仮想マシン (VM) は物理マシンと同じ数のリソースを消費するため、CPU、RAM、ストレージなどのリソースを VM に提供するとコストがかかる可能性があります。また、共有リソースでの仮想インスタンスの使用により、アプリケーションのパフォーマンスが低下する場合があります。
図4.1 従来のデプロイメント向けのコンテナーテクノロジーの進化
この問題を解決するには、コンテナー化された環境でアプリケーションを分離するコンテナー化テクノロジーを使用することができます。VM と同様に、コンテナーには独自のファイルシステム、vCPU、メモリー、プロセススペース、依存関係などがあります。コンテナーは基盤となるインフラストラクチャーから切り離されており、クラウドや OS ディストリビューション間で移植可能です。コンテナーは本来、全機能を備えた OS よりもはるかに軽量で、オペレーティングシステムカーネルで実行される軽量の分離されたプロセスです。VM は起動に時間がかかり、物理ハードウェアを抽象化したものです。VM は、ハイパーバイザーを使用して単一のマシンで実行されます。
Kubernetes を利用することで、以下のようなアクションを行うことができます。
- リソースの共有
- 複数のホストにまたがるコンテナーのオーケストレーション
- 新しいハードウェア設定のインストール
- ヘルスチェックと自己修復アプリケーションの実行
- コンテナー化されたアプリケーションのスケーリング
4.1. Kubernetes コンポーネント
コンポーネント | 目的 |
---|---|
| クラスター内のすべてのノードで実行され、Kubernetes リソース間のネットワークトラフィックを維持します。 |
| クラスターの状態を管理します。 |
| Pod をノードに割り当てます。 |
| クラスターデータを保存します。 |
| API オブジェクトのデータを検証および設定します。 |
| ノード上で実行され、コンテナーマニフェストを読み取ります。定義されたコンテナーが開始され、実行されていることを確認します。 |
|
ワークロードの実行方法を定義できるようにします。 |
Node | ノードは、Kubernetes クラスター内の物理マシンまたは VM です。コントロールプレーンはすべてのノードを管理し、Kubernetes クラスター内のノード全体で Pod をスケジュールします。 |
コンテナーランタイム | コンテナーランタイムは、ホストオペレーティングシステムでコンテナーを実行します。Pod をノードで実行できるように、各ノードにコンテナーランタイムをインストールする必要があります。 |
永続ストレージ | デバイスがシャットダウンされた後でもデータを保存します。Kubernetes は永続ボリュームを使用して、アプリケーションデータを保存します。 |
| コンテナーイメージを保存してアクセスします。 |
Pod | Pod は、Kubernetes における最小の論理単位です。Pod には、ワーカーノードで実行する 1 つ以上のコンテナーが含まれています。 |
4.2. Kubernetes リソース
カスタムリソースは、KubernetesAPI のエクステンションです。カスタムリソースを使用して、Kubernetes クラスターをカスタマイズできます。Operator は、カスタムリソースを使用してアプリケーションとそのコンポーネントを管理するソフトウェアエクステンションです。Kubernetes は、クラスターリソースを扱う際に、一定の望ましい結果を得たい場合に宣言型モデルを使用します。Operator を使用することで、Kubernetes は宣言的な方法で状態を定義します。命令型コマンドを使用して、Kubernetes クラスターリソースを変更できます。Operator は、リソースの望ましい状態をリソースの実際の状態と継続的に比較し、現実を望ましい状態に一致させるためのアクションを実行する制御ループとして機能します。
図4.2 Kubernetes クラスターの概要
リソース | 目的 |
---|---|
サービス | Kubernetes はサービスを使用して、実行中のアプリケーションを一連の Pod に公開します。 |
|
Kubernetes は |
Deployment | アプリケーションのライフサイクルを維持するリソースオブジェクト。 |
Kubernetes は、OpenShift Container Platform のコアコンポーネントです。OpenShift Container Platform は、コンテナー化されたアプリケーションの開発および実行に使用できます。Kubernetes をその基盤とする OpenShift Container Platform には、大規模な通信、ビデオストリーミング、ゲーミング、バンキング、およびその他のアプリケーションのエンジンと同様に機能する技術が組み込まれています。OpenShift Container Platform を使用することで、コンテナー化されたアプリケーションを単一のクラウドを超えてオンプレミスおよびマルチクラウド環境へと拡張することができます。
図4.3 Kubernetes のアーキテクチャー
クラスターは、クラウド環境内の複数のノードで設定される単一の計算ユニットです。Kubernetes クラスターには、コントロールプレーンとワーカーノードが含まれます。さまざまなマシンや環境で Kubernetes コンテナーを実行できます。コントロールプレーンノードは、クラスターの状態を制御および維持します。ワーカーノードを使用して Kubernetes アプリケーションを実行できます。Kubernetes の名前空間を使用して、クラスター内のクラスターリソースを区別できます。名前空間のスコープは、デプロイメント、サービス、Pod などのリソースオブジェクトに適用できます。ストレージクラス、ノード、永続ボリュームなどのクラスター全体のリソースオブジェクトに、名前空間を使用することはできません。
4.3. Kubernetes の概念ガイドライン
OpenShift Container Platform を使い始める前に、以下の Kubernetes の概念的なガイドラインを検討してください。
- 1 つまたは複数のワーカーノードを使用することからスタートし、コンテナーのワークロードを実行します。
- 1 つまたは複数のコントロールプレーンノードからワークロードのデプロイを管理します。
- Pod と呼ばれるデプロイメント単位にコンテナーをラップします。Pod を使うことでコンテナーに追加のメタデータが付与され、複数のコンテナーを単一のデプロイメントエンティティーにグループ化する機能が提供されます。
- 特殊な種類のアセットを作成します。たとえば、サービスは一連の Pod とそのアクセス方法を定義するポリシーによって表されます。このポリシーにより、コンテナーはサービス用の特定の IP アドレスを持っていない場合でも、必要とするサービスに接続することができます。レプリケーションコントローラーは、一度に実行するのに必要な Pod レプリカ数を示すもう一つの特殊なアセットです。この機能を使うと、現在の需要に対応できるようにアプリケーションを自動的にスケーリングすることができます。
OpenShift Container Platform クラスターへの API は 100% Kubernetes です。他の Kubernetes で実行されているコンテナーと OpenShift Container Platform で実行されているコンテナーの間では、何も変更はありません。アプリケーションに変更はありません。OpenShift Container Platform は、Kubernetes にエンタープライズ対応の拡張機能を提供する付加価値機能をもたらします。OpenShift Container Platform CLI ツール (oc
) は kubectl
と互換性があります。Kubernetes API は OpenShift Container Platform 内で 100% アクセス可能ですが、kubectl
コマンドラインには、よりユーザーフレンドリーにするための多くの機能が欠けています。OpenShift Container Platform は、oc
のような一連の機能とコマンドラインツールを提供します。Kubernetes はアプリケーションの管理で威力を発揮しますが、プラットフォームレベルの各種要件やデプロイメントプロセスを指定したり、管理したりすることはありません。OpenShift Container Platform が提供する強力かつ柔軟なプラットフォーム管理ツールとプロセスは、重要な利点となります。コンテナー化プラットフォームに、認証、ネットワーキング、セキュリティー、監視、およびログ管理を追加する必要があります。