Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

第2章 インフラストラクチャーコンポーネント|

2.1. Kubernetes インフラストラクチャー

2.1.1. 概要

OpenShift Container Platform 内で、Kubernetes はコンテナーのセット全体でコンテナー化されたアプリケーションを管理し、デプロイメント、メンテナンス、およびアプリケーションののメカニズムを提供します。コンテナーのランタイムは、コンテナー化されたアプリケーションのパッケージを作成してインスタンス化し、実行します。Kubernetes クラスターは 1 つ以上のマスターおよびノードセットで構成されます。

オプションとして、高可用性 (HA) のマスターを設定し、クラスターから単一障害点がなくなるようにします。

注記

OpenShift Container Platform は Kubernetes 1.10 および Docker 1.13 を使用します。

2.1.2. マスター

マスターは、API サーバー、コントローラーマネージャーサーバー、および etcd などのコントロールプレーンのコンポーネントが含まれるホストです。マスターはその Kubernetes クラスターで「ノード」を管理し、「Pod」がノードで実行されるようスケジュールします。

表2.1 マスターコンポーネント

コンポーネント説明

API サーバー

Kubernetes API サーバーは Pod、サービスおよびレプリケーションコントローラーのデータを検証し、設定します。さらに Pod をノードに割り当て、Pod の情報をサービス設定に同期します。

etcd

etcd は、コンポーネントが etcd で必要な状態に戻すための変更の有無を確認する間に永続マスター状態を保存します。etcd は、通常 2n+1 ピアサービスでデプロイされるなど、高可用性のためにオプションで設定できます。

コントローラーマネージャーサーバー

コントローラーマネージャーサーバーは、レプリケーションコントローラーのオブジェクトに変更がないか etcd を監視し、API を使用して希望とする状態を有効化します。このような複数のプロセスは、一度に 1 つのアクティブなリーダーを設定してクラスターを作成します。

HAProxy

オプションで、「高可用性のマスター」native の方法で設定して API マスターのエンドポイント間の負荷を分散する場合に使用します。「クラスターのインストールプロセス」では、native の方法で HAProxy 設定できます。または、native の方法を使用しつつ、任意のロードバランサーを事前設定できます。

2.1.2.1. コントロールプレーンの静的 Pod

OpenShift Container Platform 3.10 以降で、コアとなるコントロールプレーンのコンポーネントをインストール、操作するデプロイメントモデルが変更されました。3.10 以前は、API サーバーとコントローラーマネージャーのコンポーネントは、systemd が操作するスタンドアロンのホストプロセスとして実行されていました。3.10 では、これらのコンポーネントが kubelet が操作する 静的 Pod に移行されています。

etcd が同じホストに共存しているマスターでは、etcd も静的 Pod に移動されます。RPM ベースの etcd は依然として、マスターではない etcd ホスト上でサポートされます。

さらに、ノードコンポーネントの openshift-sdnopenvswitchsystemd サービスではなく、DaemonSet を使用して実行されます。

図2.1 コントロールプレーンホストのアーキテクチャーの変更

Control plane host architecture changes

「マスターおよびノードの設定」のトピックに記載されているように、静的 Pod として実行中のコントロールプレーンのコンポーネントの場合でさえも、マスターホストは /etc/origin/master/master-config.yaml ファイルからの設定をソースとして使用します。

Pod のミラーリング

マスターノード上の kubelet は自動的に、コントロールプレーンの静的 Pod 毎に、API サーバー上に ミラーの Pod を作成し、kube-system プロジェクトのクラスターで表示できるようにします。これらの静的 Pod のマニフェストは、デフォルトで、マスターホスト上の /etc/origin/node/pods ディレクトリーに配置されている openshift-ansible インストーラーによりインストールされます。

これらの Pod は、以下のhostPath ボリュームを定義します。

/etc/origin/master

全照明書、設定ファイル、admin.kubeconfig ファイルが含まれます。

/var/lib/origin

バイナリーの潜在的なコアダンプとボリュームが含まれます。

/etc/origin/cloudprovider

クラウドプロバイダー固有の設定 (AWS、Azure など) が含まれます。

/usr/libexec/kubernetes/kubelet-plugins

追加のサードパーティーのボリュームプラグインが含まれます。

/etc/origin/kubelet-plugins

システムコンテナーに向けた追加のサードパーティーのボリュームプラグインが含まれます。

以下など、静的 Pod で実行可能な操作には限りがあります。

$ oc logs master-api-<hostname> -n kube-system

API サーバーからの標準出力を返します。ただし、

$ oc delete pod master-api-<hostname> -n kube-system

上記のコマンドでは実際には Pod は削除されません。

別の例として、クラスター管理者は、API サーバーの loglevel を増やすなど、一般的な操作を実行して、問題が発生した場合により詳細なデータを参照できるようにする場合があります。OpenShift Container Platform 3.10 では、コンテナー内で実行中のプロセスに渡せるように、/etc/origin/master/master.env ファイルを編集して、OPTIONS 変数の --loglevel パラメーターを変更する必要があります。変更を適用するには、コンテナー内で実行中のプロセスを再起動する必要があります。

マスターサービスの再起動

コントロールプレーンの静的 Pod で実行中のコントロールプレーンサービスを再起動するには、マスターホストの master-restart コマンドを使用します。

マスター API を再起動します。

# master-restart api

コントローラーを再起動します。

# master-restart controllers

etcd を再起動します。

# master-restart etcd
マスターサービスログの表示

コントロールプレーンの静的 Pod で実行中のコントロールプレーンサービスのログを表示するには、適切なコンポーネントの master-logs コマンドを使用します。

# master-logs api api
# master-logs controllers controllers
# master-logs etcd etcd

2.1.2.2. 高可用性マスター

マスターまたはそのサービスのいずれかが失敗しても、実行中のアプリケーションの可用性はそのまま維持されます。ただし、マスターサービスが失敗すると、システムのアプリケーションの失敗に対応する機能、または新規アプリケーションの作成に対応する機能が低下します。オプションで、クラスターに単一障害点をなくせるように、高可用性 (HA) のマスターを設定できます。

マスターの可用性についての懸念を少なくするために、2 つのアクティビティーを実行することが推奨されます。

  1. runbook エントリーは、マスターの再作成のために作成される必要があります。runbook エントリーは、いずれの高可用性サービスに対しても必要なバックアップです。追加ソリューションは、runbook が参照される頻度を制御するのみです。たとえば、マスターホストのコールドスタンドバイは新規アプリケーションの作成または失敗したアプリケーションコンポーネントの復元に 1 分未満のダウンタウンのみを要求する SLA を十分に満たせる可能性があります。
  2. 高可用性ソリューションを使用してマスターを設定し、クラスターに単一障害点がなくなるようにします。「クラスターのインストールに関するドキュメント」では、native HA 方法を使用し、HAProxy を設定した具体的なサンプルについて説明します。さらに、これらの概念を採用し、HAProxy ではなく native 方法を使用して既存の HA ソリューションに対して適用できます。

native HA 方式を HAProxy で使用する際に、マスターコンポーネントには以下の可用性があります。

表2.2 HAProxy による可用性マトリクス

ロールスタイル備考

etcd

Active-active

ロードバランシング機能のある完全に冗長性のあるデプロイメントです。別個のホストにインストールすることも、マスターホストに共存させることもできます。

API サーバー

Active-active

HAProxy で管理されます。

コントローラーマネージャーサーバー

Active-passive

一度に 1 つのインスタンスがクラスターリーダーとして選択されます。

HAProxy

Active-passive

API マスターエンドポイント間に負荷を分散します。

クラスター化された etcd では定足数を維持するためにホストの数は奇数である必要がありますが、マスターサービスには定足数やホストの数が奇数でなければならないという要件はありません。ただし、HA 用に 2 つ以上のマスターサービスが必要になるため、マスターサービスと etcd を共存させる場合には、一律奇数のホストを維持することが一般的です。

2.1.3. ノード

ノードでは、コンテナーのランタイム環境が提供されます。Kubernetes クラスターの各ノードには、マスターで管理される必須のサービスが含まれます。また、ノードには、コンテナーランタイム、kubelet、サービスプロキシーなど、Pod の実行に必要なサービスも含まれます。

OpenShift Container Platform は、ノードをクラウドプロバイダー、物理システムまたは仮想システムから作成します。Kubernetes は、それらのノードの表現であるノードオブジェクトと対話します。マスターはノードオブジェクトからの情報を使用してヘルスチェックでノードを検証します。ノードはこれがヘルスチェックをパスするまで無視され、マスターはノードが有効になるまでチェックを継続します。Kubernetes ドキュメントにはノードのステータスと管理についての詳細が記載されています。

管理者は CLI を使用して OpenShift Container Platform インスタンスの「ノードを管理」できます。ノードサーバー起動時の全設定およびセキュリティーオプションを定義するには、「専用ノードの設定ファイル」を使用します。

重要

推奨される最大ノード数については、「クラスターの制限」のセクションを参照してください。

2.1.3.1. Kubelet

各ノードには、Pod を記述する YAML ファイルであるコンテナーマニフェストで指定されるようにノードを更新する kubelet があります。kubelet は一連のマニフェストを使用して、そのコンテナーが起動しており、継続して実行することを確認します。

コンテナーマニフェストは以下によって kubelet に提供できます。

  • 20 秒ごとにチェックされるコマンドのファイルパス。
  • 20 秒ごとにチェックされるコマンドラインで渡される HTTP エンドポイント。
  • /registry/hosts/$(hostname -f) などの etcd サーバーを監視し、変更に作用する kubelet。
  • HTTP をリッスンし、単純な API に対応して新規マニフェストを提出する kubelet。

2.1.3.2. サービスプロキシー

各ノードは、ノード上で API で定義されるサービスを反映した単純なネットワークプロキシーも実行します。これにより、ノードは一連のバックエンドで単純な TCP および UDP ストリームの転送を実行できます。

2.1.3.3. ノードオブジェクト定義

以下は、Kubernetes のノードオブジェクト定義の例になります。

apiVersion: v1 1
kind: Node 2
metadata:
  creationTimestamp: null
  labels: 3
    kubernetes.io/hostname: node1.example.com
  name: node1.example.com 4
spec:
  externalID: node1.example.com 5
status:
  nodeInfo:
    bootID: ""
    containerRuntimeVersion: ""
    kernelVersion: ""
    kubeProxyVersion: ""
    kubeletVersion: ""
    machineID: ""
    osImage: ""
    systemUUID: ""
1
apiVersion は使用する API バージョンを定義します。
2
Node に設定された kind はこれをノードオブジェクトの定義として特定します。
3
metadata.labels は、ノードに追加されているラベルを一覧表示します。
4
metadata.name はノードオブジェクトの名前を定義する必須の値です。この値は、oc get nodes コマンドの実行時に NAME 列に表示されます。
5
spec.externalID は、ノードに到達できる完全修飾ドメイン名です。空の場合、デフォルトは metadata.name 値に設定されます。

2.1.3.4. ノードのブートストラップ

OpenShift Container Platform 3.10 以降では、ノードの設定はマスターからブートストラップされます。つまり、ノードが事前定義済みの設定、クライアントとサーバーの証明書をマスターからプルします。これにより、ノード間の相違点を減らして、より多くの設定を集約し、希望の状態でのクラスターを収束することで、ノードの起動時間を短縮することができます。証明書の回転や集約された証明書の管理は、デフォルトで有効になっています。

図2.2 ノードブートストラップのワークフローに関する概要

Node bootstrapping workflow overview

ノードサービスの起動時に、ノードは /etc/origin/node/node.kubeconfig ファイルと他のノード設定ファイルが存在するかチェックしてから、クラスターに参加します。存在しない場合には、ノードはマスターから設定をプルしてから、クラスターに参加します。

ConfigMaps は、クラスターにノードの設定を保存するのに使用し、ノードホスト上の /etc/origin/node/node-config.yaml い設定ファイルを生成します。デフォルトのノードグループやその ConfigMaps の定義については、『クラスターのインストール』ガイドの「ノードグループとホストマッピングの定義」を参照してください。

ノードブートストラップのワークフロー

自動ノードブートストラップのプロセスでは、以下のワークフローを使用します。

  1. デフォルトでは、クラスターのインストール時に、clusterroleclusterrolebinding および serviceaccount オブジェクトのセットが、ノードブートストラップで使用するために作成されます。

    • system:node-bootstrapper クラスターロールは、ノードのブートストラップ時に、証明書署名要求 (CSR) の作成に使用します。

      # oc describe clusterrole.authorization.openshift.io/system:node-bootstrapper
      
      Name:			system:node-bootstrapper
      Created:		17 hours ago
      Labels:			kubernetes.io/bootstrapping=rbac-defaults
      Annotations:		authorization.openshift.io/system-only=true
      			openshift.io/reconcile-protect=false
      Verbs			Non-Resource URLs	Resource Names	API Groups		Resources
      [create get list watch]	[]			[]		[certificates.k8s.io]	[certificatesigningrequests]
    • 以下の node-bootstrapper サービスアカウントを、openshift-infra プロジェクトに作成します。

      # oc describe sa node-bootstrapper -n openshift-infra
      
      Name:                node-bootstrapper
      Namespace:           openshift-infra
      Labels:              <none>
      Annotations:         <none>
      Image pull secrets:  node-bootstrapper-dockercfg-f2n8r
      Mountable secrets:   node-bootstrapper-token-79htp
                           node-bootstrapper-dockercfg-f2n8r
      Tokens:              node-bootstrapper-token-79htp
                           node-bootstrapper-token-mqn2q
      Events:              <none>
    • 以下の system:node-bootstrapper のクラスターロールのバインディングは、ノードブートストラップのクラスターロールとサービスアカウント向けです。

      # oc describe clusterrolebindings system:node-bootstrapper
      
      Name:			system:node-bootstrapper
      Created:		17 hours ago
      Labels:			<none>
      Annotations:		openshift.io/reconcile-protect=false
      Role:			/system:node-bootstrapper
      Users:			<none>
      Groups:			<none>
      ServiceAccounts:	openshift-infra/node-bootstrapper
      Subjects:		<none>
      Verbs			Non-Resource URLs	Resource Names	API Groups		Resources
      [create get list watch]	[]			[]		[certificates.k8s.io]	[certificatesigningrequests]
  2. また、デフォルトでは、クラスターのインストール時に、openshift-ansible のインストーラーにより、OpenShift Container Platform の証明局とその他のさまざまな証明書、鍵、kubeconfig ファイルが /etc/origin/master ディレクトリーに作成されます。注目すべき 2 つのファイルは以下のとおりです。

    /etc/origin/master/admin.kubeconfig

    system:admin ユーザーを使用します。

    /etc/origin/master/bootstrap.kubeconfig

    マスター以外のノードブートストラップノードに使用します。

    1. etc/origin/master/bootstrap.kubeconfig は、インストーラーが以下のように node-bootstrapper のサービスアカウントを使用するときに作成されます。

      $ oc --config=/etc/origin/master/admin.kubeconfig \
          serviceaccounts create-kubeconfig node-bootstrapper \
          -n openshift-infra
    2. マスターノードでは、ブートストラップファイルとして /etc/origin/master/admin.kubeconfig を使用し、/etc/origin/node/boostrap.kubeconfig にコピーされます。他のマスター以外のノードでは、/etc/origin/master/bootstrap.kubeconfig ファイルは、他のノードすべてに対して、各ノードホストごとに /etc/origin/node/boostrap.kubeconfig にコピーされます。
    3. 次に、/etc/origin/master/bootstrap.kubeconfig は、以下のように、フラグ --bootstrap-kubeconfig を使用して kubelet に渡されます。

      --bootstrap-kubeconfig=/etc/origin/node/bootstrap.kubeconfig
  3. kubelet は、指定の /etc/origin/node/bootstrap.kubeconfig ファイルで先に起動します。内部での初期接続後に、kubelet は証明書署名要求 (CSR) を作成して、マスターに送信します。
  4. CSR はコントローラーマネージャーを使用して検証、承認されます (特に、証明署名コントローラー)。承認された場合には、kubelet クライアントとサーバー証明書は /etc/origin/node/ceritificates ディレクトリーに作成されます。以下に例を示します。

    # ls -al /etc/origin/node/certificates/
    total 12
    drwxr-xr-x. 2 root root  212 Jun 18 21:56 .
    drwx------. 4 root root  213 Jun 19 15:18 ..
    -rw-------. 1 root root 2826 Jun 18 21:53 kubelet-client-2018-06-18-21-53-15.pem
    -rw-------. 1 root root 1167 Jun 18 21:53 kubelet-client-2018-06-18-21-53-45.pem
    lrwxrwxrwx. 1 root root   68 Jun 18 21:53 kubelet-client-current.pem -> /etc/origin/node/certificates/kubelet-client-2018-06-18-21-53-45.pem
    -rw-------. 1 root root 1447 Jun 18 21:56 kubelet-server-2018-06-18-21-56-52.pem
    lrwxrwxrwx. 1 root root   68 Jun 18 21:56 kubelet-server-current.pem -> /etc/origin/node/certificates/kubelet-server-2018-06-18-21-56-52.pem
  5. CSR の承認後に、node.kubeconfig ファイルが /etc/origin/node/node.kubeconfig に作成されます。
  6. kubelet は、/etc/origin/node/certificates/ ディレクトリーにある /etc/origin/node/node.kubeconfig ファイルと証明書で再起動されます。再起動後に、クラスターへの参加の準備ができます。
ノード設定のワークフロー

ノードの設定を取得するには、以下のワークフローを使用します。

  1. 最初に、ノードの kubelet は、/etc/origin/node/ ディレクトリーにあるブートストラップの設定ファイル bootstrap-node-config.yaml を使用して起動され、ノードのプロビジョニング時に作成されます。
  2. 各ノードで、atomic-openshift-node サービスファイルは、/usr/local/bin/ ディレクトリーにあるローカルスクリプト openshift-node を使用して、指定の bootstrap-node-config.yaml で kubelet を起動します。
  3. マスター毎に、/etc/origin/node/pods ディレクトリーには、マスターに静的 Pod として作成された apiservercontroller および etcd の Pod のマニフェストが含まれます。
  4. クラスターのインストール時に、sync DaemonSet が作成され、ノードごとに同期 Pod を作成します。同期 Pod は、/etc/sysconfig/atomic-openshift-node ファイル内の変更をモニタリングします。特に、設定される BOOTSTRAP_CONFIG_NAME を監視します。BOOTSTRAP_CONFIG_NAME は、openshift-ansible インストーラーにより設定され、対象のノードが所属するノード設定グループをもとにした ConfigMap の名前です。

    デフォルトでは、インストーラーは以下のノード設定グループを作成します。

    • node-config-master
    • node-config-infra
    • node-config-compute
    • node-config-all-in-one
    • node-config-master-infra

    各グループの ConfigMap は openshift-node プロジェクトに作成されます。

  5. 同期 Pod は、BOOTSTRAP_CONFIG_NAME の値セットをもとに適切な ConfigMap を抽出します。
  6. 同期 Pod は kubelet 設定に ConfigMap データを変換し、対象のノードホスト用に /etc/origin/node/node-config.yaml を作成します。このファイルに変更が加えられると (またはファイルが初めて作成される場合には)、kubelet が再起動されます。
ノード設定の変更

ノードの設定は、openshift-node プロジェクトの適切な ConfigMap を編集して変更します。/etc/origin/node/node-config.yaml は直接変更しないでください。

たとえば、node-config-compute グループに含まれるノードの場合は、以下のコマンドを使用して ConfigMap を編集します。

$ oc edit cm node-config-compute -n openshift-node

2.2. Container レジストリー

2.2.1. 概要

OpenShift Container Platform は、Docker Hub、サードパーティーによって実行されるプライベートレジストリー、および統合 OpenShift Container Platform レジストリーを含む、イメージのソースとして Docker レジストリー API を実装するすべてのサーバーを利用できます。

2.2.2. 統合 OpenShift Container レジストリー

OpenShift Container Platform には OpenShift Container レジストリー (OCR) という統合コンテナーレジストリーがあり、新規イメージリポジトリーのプロビジョニングをオンデマンドで自動化できるようになります。この OCR を使用することで、組み込みのアプリケーション「ビルド」の保管場所が用意され、作成されたイメージをプッシュできます。

新規イメージが OCR にプッシュされるたびに、レジストリーは OpenShift Container Platform に新規イメージ、および namespace、名前、およびイメージメタデータなどの関連する情報について通知します。OpenShift Container Platform の異なる部分が新規イメージに対応し、新規ビルドおよびデプロイメントを作成します。

また、OCR はビルドおよびデプロイメントの統合なしに単独でコンテナーレジストリーとして機能するスタンドアロンコンポーネントとしてデプロイできます。詳細については、「OpenShift Container レジストリーのスタンドアロンデプロイメントのインストール」を参照してください。

2.2.3. サードパーティーレジストリー

OpenShift Container Platform はサードパーティーのイメージを使用してコンテナーを作成できますが、これらのレジストリーは統合 OpenShift Container Platform レジストリーと同じイメージ通知のサポートがあるわけではありません。取得したタグの更新は、oc import-image <stream> の実行と同程度に簡単です。新規イメージが検出されると、前述のビルドおよびデプロイメントの応答が生じます。

2.2.3.1. 認証

OpenShift Container Platform はユーザーが指定する認証情報を使ってプライベートリポジトリーにアクセスするためにレジストリーと通信します。これにより、OpenShift はベートレジストリーから/へのイメージのプッシュ/プルを行うことができます。「認証」のトピックには詳細が記載されています。

2.3. Web コンソール

2.3.1. 概要

OpenShift Container Platform Web コンソールは、Web ブラウザーからアクセスできるユーザーインターフェースです。開発者は Web コンソールを使用してプロジェクトのコンテンツの可視化、ブラウズ、および管理を実行できます。

注記

Web コンソールを使用するには JavaScript が有効にされている必要があります。WebSocket をサポートする Web ブラウザーを使用することが最も推奨されます。

Web コンソールはマスターで Pod として実行されます。Web コンソールを実行するために必要な静的なアセットは Pod によって提供されます。また、管理者は拡張を使用して 「Web コンソールのカスタマイズ」を実行できます。これにより、Web コンソールの読み込み時にスクリプトを実行し、カスタムスタイルシートを読み込むことができます。

ブラウザーから Web コンソールにアクセスする際に、まず必要な静的アセットをすべて読み込みます。次に、openshift start オプションの --public-master で定義される値、openshift-web-console namespace で定義される webconsole-config 設定マップの関連パラメーター masterPublicURL から定義される値を使用して、OpenShift Container Platform API に要求を行います。Web コンソールは WebSocket を使用して API サーバーとの永続的な接続を維持し、更新情報を利用可能になる時点で受信します。

図2.3 sWeb コンソール要求アーキテクチャー

Web Console Request Architecture

Web コンソール用に設定されたホスト名と IP アドレスは、ブラウザーが要求を クロスオリジン とみなした場合でさえも、安全に API サーバーにアクセスできるように、ホワイトリスト化されます。別のホスト名を使用して、Web アプリケーションから API サーバーにアクセスするには、openshift start--cors-allowed-origins オプションを指定するか、関連の master 設定ファイルパラメーター corsAllowedOrigins から、対象のホスト名をホワイトリスト化する必要があります。

corsAllowedOrigins パラメーターは設定フィールドで制御されます。値に対してピニングやエスケープは実行されません。以下は、ホスト名をピニングし、ドットをエスケープする方法の例を示しています。

corsAllowedOrigins:
- (?i)//my\.subdomain\.domain\.com(:|\z)
  • (?i) は大文字/小文字を区別します。
  • // はドメインの開始にピニングします (または http: または https: の後のダブルスラッシュに一致します)。
  • \. はドメイン名のドットをエスケープします。
  • (:|\z) はドメイン名の終了に一致します (\z) またはポートセパレーター (:)

2.3.2. CLI ダウンロード

Web コンソールのヘルプアイコンから CLI ダウンロードにアクセスできます。

CLI dropdown from Help icon

クラスター管理者は、これらのリンクの追加のカスタマイズを実行できます。

Command Line Tools

2.3.3. ブラウザーの要件

OpenShift Container Platform のテスト済みの統合を確認します。

2.3.4. プロジェクトの概要

「ログイン」後に、Web コンソールは開発者に現在選択されている「プロジェクト」の概要を提供します。

図2.4 Web コンソールのプロジェクト概要

Web Console Project Overview
プロジェクトセレクターを使うと、アクセスできる「プロジェクト間の切り替え」を実行できます。
プロジェクトビューからサービスをすぐに見つけるには、検索条件に入力します。
「ソースリポジトリー」またはサービスカタログのサービスを使用して新規アプリケーションを作成します。
プロジェクトに関連する通知。
Overview タブ (現在選択されている) は各コンポーネントのハイレベルビューと共にプロジェクトのコンテンツを可視化します。
Applications タブ: デプロイメント、Pod、サービスおよびルートでアクションを参照し、実行します。
Builds タブ: ビルドおよびイメージストリームでアクションを参照し、実行します。
Resources タブ: 現在のクォータの消費およびその他のリソースを表示します。
Storage タブ: Persistent Volume Claim (PVC、永続ボリューム要求) を表示し、アプリケーションのストレージを要求します。
Monitoring タブ: ビルド、Pod、デプロイメントのログ、およびプロジェクトのすべてのオブジェクト通知を表示します。
Catalog タブ: プロジェクト内からカタログにすぐに移動します。
注記

Cockpit は OpenShift Container Platform 3.1 以降に自動的にインストールされて有効化されるので、後で開発環境をモニターするのに役立ちます。『Red Hat Enterprise Linux Atomic Host: Getting Started with Cockpit』は Cockpit についての詳細を記載しています。

2.3.5. JVM コンソール

Java イメージをベースとする Pod の場合、Web コンソールは関連する統合コンポーネントを表示し、管理するための hawt.io ベースの JVM コンソールへのアクセスも公開します。Connect リンクは、コンテナーに jolokia という名前のポートがある場合は、Browse → Pods ページの Pod の詳細に表示されます。

図2.5 JVM コンソールへのリンクを持つ Pod

Pod with a Link to the JVM Console

JVM コンソールへの接続当とに、接続されている Pod に関連するコンポーネントに応じて異なるページが表示されます。

図2.6 JVM コンソール

JVM Console

以下のページが利用可能になります。

ページ説明

JMX

JMX ドメインおよび mbeans を表示し、管理します。

スレッド

スレッドの状態を表示し、モニターします。

ActiveMQ

Apache ActiveMQ ブローカーを表示し、管理します。

Camel

Apache Camel ルートおよび依存関係を表示し、管理します。

OSGi

JBoss Fuse OSGi 環境を表示し、管理します。

2.3.6. StatefulSets

StatefulSet コントローラーは Pod の一意のアイデンティティーを提供し、デプロイメントおよびスケーリングの順序を定めます。StatefulSet は一意のネットワークアイデンティティー、永続ストレージ、正常なデプロイメントおよびスケーリング、および正常な削除および停止に役立ちます。

図2.7 OpenShift Container Platform の StatefulSet

StatefulSets view in OpenShift