Openshift-basic-concept
OpenShift-基本コンセプト
アプリケーションの実際のセットアップと展開を開始する前に、OpenShift V3で使用されるいくつかの基本的な用語と概念を理解する必要があります。
コンテナと画像
画像
これらは、OpenShiftの基本的な構成要素であり、Dockerイメージから形成されます。 OpenShiftの各ポッドでは、クラスター内で独自のイメージが実行されています。 ポッドを構成すると、レジストリからプールされるフィールドがあります。 この構成ファイルはイメージをプルし、クラスターノードに展開します。
そこからイメージを引き出して作成するには、次のコマンドを実行します。 OCは、ログイン後にOpenShift環境と通信するクライアントです。
容器
これは、DockerイメージがOpenShiftクラスターにデプロイされるときに作成されます。 構成を定義するときに、構成ファイルにコンテナセクションを定義します。 1つのコンテナ内で複数のイメージを実行でき、クラスターノードで実行されているすべてのコンテナはOpenShift Kubernetesによって管理されます。
以下は、内部で複数のイメージを実行するコンテナを定義するための仕様です。
上記の構成では、TomcatとMongoDBの2つのイメージが内部にあるマルチコンテナーポッドを定義しました。
ポッドとサービス
Pods
Podは、OpenShift(Kubernetes)クラスターのノード内のコンテナーとそのストレージのコレクションとして定義できます。 一般に、単一のコンテナポッドから複数のコンテナポッドまで、2種類のポッドがあります。
シングルコンテナポッド-これらは、OCコマンドまたは基本設定のymlファイルで簡単に作成できます。
次のように単純なyamlファイルで作成します。
上記のファイルが作成されると、次のコマンドでポッドが生成されます。
マルチコンテナポッド-マルチコンテナポッドは、内部で複数のコンテナが実行されているものです。 これらは、次のようにyamlファイルを使用して作成されます。
これらのファイルを作成した後、上記と同じ方法を使用してコンテナを作成できます。
サービス-ポッド内で実行されるコンテナのセットがあるため、同様に、ポッドの論理セットとして定義できるサービスがあります。 これは、ポッドの上部にある抽象化されたレイヤーであり、ポッドにアクセスできる単一のIPおよびDNS名を提供します。 サービスは、負荷分散構成の管理とポッドのスケーリングを非常に簡単に支援します。 OpenShiftでは、サービスはRESTオブジェクトであり、その定義をOpenShiftマスターのapiServiceにポストして、新しいインスタンスを作成できます。
ビルドとストリーム
ビルド
OpenShiftでは、ビルドはイメージをコンテナーに変換するプロセスです。 ソースコードを画像に変換する処理です。 このビルドプロセスは、イメージ化するソースコードをビルドする事前定義された戦略で機能します。
ビルドは、複数の戦略とソースを処理します。
構築戦略
- Source to Image -これは基本的に、再現可能な画像の構築に役立つツールです。 これらのイメージは、常にDocker runコマンドを使用して実行する準備ができた段階にあります。
- * Dockerビルド*-これは、単純なDockerビルドコマンドを実行して、Dockerファイルを使用してイメージをビルドするプロセスです。
- カスタムビルド-これらは、ベースDockerイメージの作成に使用されるビルドです。
ビルドソース
画像ストリーム-画像を取得した後に画像ストリームが作成されます。 イメージストリームの利点は、イメージの新しいバージョンの更新を探すことです。 これは、タグで識別されるDocker形式のコンテナイメージをいくつでも比較するために使用されます。
画像ストリームは、新しい画像が作成されたときに自動的にアクションを実行できます。 すべてのビルドと展開は、イメージアクションを監視し、それに応じてアクションを実行できます。 以下は、ストリームのビルドを定義する方法です。
ルートとテンプレート
ルート
OpenShiftでは、ルーティングは、外部から到達可能なホスト名を作成および構成することにより、外部の世界にサービスを公開する方法です。 ルートとエンドポイントは、ユーザーが名前接続(DNS)を使用して定義済みのアプリケーションにアクセスできる外部世界にサービスを公開するために使用されます。
OpenShiftでは、クラスター上のOpenShift adminによってデプロイされるルーターを使用してルートが作成されます。 ルーターは、HTTP(80)およびhttps(443)ポートを外部アプリケーションにバインドするために使用されます。
ルートがサポートするプロトコルの種類は次のとおりです-
- HTTP
- HTTPS *TSLおよびWebソケット
サービスを構成する場合、セレクターを使用してサービスを構成し、そのサービスを使用するエンドポイントを見つけます。 以下は、適切なプロトコルを使用してサービスとそのサービスのルーティングを作成する方法の例です。
次に、次のコマンドを実行すると、サービスが作成されます。
これは、作成後のサービスの外観です。
次のコードを使用して、サービスのルーティングを作成します。
OCコマンドを使用してルートを作成すると、ルートリソースの新しいインスタンスが作成されます。
テンプレート
テンプレートは、OpenShiftで複数回使用できる標準オブジェクトとして定義されます。 複数のオブジェクトを作成するために使用されるプレースホルダーのリストでパラメーター化されます。 これは、ポッドからネットワークまで、ユーザーが作成する権限を持っているものを作成するために使用できます。 イメージ内のCLIまたはGUIインターフェイスからのテンプレートがプロジェクトディレクトリにアップロードされる場合、オブジェクトのリストを作成できます。
認証と承認
認証
OpenShiftでは、マスターおよびクライアント構造を構成する際に、マスターがOAuthサーバーの組み込み機能を思い付きます。 OAuthサーバーはAPIの認証に使用されるトークンの生成に使用されます。 OAuthはマスターのデフォルトのセットアップとして提供されるため、デフォルトで使用されるAllow All IDプロバイダーがあります。*/etc/openshift/master/master-config.yaml *で構成できるさまざまなIDプロバイダーが存在します。
OAuthにはさまざまな種類のIDプロバイダーがあります。
- すべて許可
- すべて拒否
- HTPasswd
- LDAP
- 基本認証
すべて許可
すべて拒否
HTPasswd
HTPasswdを使用するには、最初にマスターマシンでHttpd-toolsをセットアップしてから、他のマシンと同じ方法で構成する必要があります。
承認
承認はOpenShiftマスターの機能であり、ユーザーの検証を検証するために使用されます。 つまり、アクションを実行しようとしているユーザーをチェックして、特定のプロジェクトでそのアクションを実行する権限があるかどうかを確認します。 これにより、管理者はプロジェクトへのアクセスを制御できます。
認可ポリシーは次を使用して制御されます-
- 規則
- 役割
- バインディング
認可の評価は次を使用して行われます-
- 身元
- アクション
- バインディング
ポリシーを使用する-
- クラスターポリシー
- ローカルポリシー