This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.4.2. デプロイメントプロセスの管理
4.2.1. DeploymentConfig の管理
					DeploymentConfig は、OpenShift Container Platform Web コンソールの Workloads ページからか、または oc CLI を使用して管理できます。以下の手順は、特に指定がない場合の CLI の使用法を示しています。
				
4.2.1.1. デプロイメントの開始
アプリケーションのデプロイメントプロセスを開始するために、ロールアウト を開始できます。
手順
- 既存の DeploymentConfig から新規デプロイメントプロセスを開始するには、以下のコマンドを実行します。 - oc rollout latest dc/<name> - $ oc rollout latest dc/<name>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注記- デプロイメントプロセスが進行中の場合には、このコマンドを実行すると、メッセージが表示され、新規 ReplicationController はデプロイされません。 
4.2.1.2. デプロイメントの表示
アプリケーションの利用可能なすべてのリビジョンについての基本情報を取得するためにデプロイメントを表示できます。
手順
- 現在実行中のデプロイメントプロセスを含む、指定した DeploymentConfig についての最近作成されたすべての ReplicationController についての詳細を表示するには、以下を実行します。 - oc rollout history dc/<name> - $ oc rollout history dc/<name>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- リビジョンに固有の詳細情報を表示するには、 - --revisionフラグを追加します。- oc rollout history dc/<name> --revision=1 - $ oc rollout history dc/<name> --revision=1- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- デプロイメント設定およびその最新バージョンの詳細については、 - oc describeコマンドを使用します。- oc describe dc <name> - $ oc describe dc <name>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
4.2.1.3. デプロイメントの再試行
現行リビジョンの DeploymentConfig がデプロイに失敗した場合、デプロイメントプロセスを再起動することができます。
手順
- 失敗したデプロイメントプロセスを再起動するには、以下を実行します。 - oc rollout retry dc/<name> - $ oc rollout retry dc/<name>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 最新リビジョンのデプロイメントに成功した場合には、このコマンドによりメッセージが表示され、デプロイメントプロセスはこれ以上試行されません。 注記- デプロイメントを再試行すると、デプロイメントプロセスが再起動され、新しいデプロイメントリビジョンは作成されません。再起動された ReplicationController は、失敗したときと同じ設定を使用します。 
4.2.1.4. デプロイメントのロールバック
ロールバックすると、アプリケーションを以前のリビジョンに戻します。この操作は、REST API、CLI または Web コンソールで実行できます。
手順
- 最後にデプロイして成功した設定のリビジョンにロールバックするには、以下を実行します。 - oc rollout undo dc/<name> - $ oc rollout undo dc/<name>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - DeploymentConfig のテンプレートは、undo コマンドで指定されたデプロイメントのリビジョンと一致するように元に戻され、新規 ReplicationController が起動します。 - --to-revisionでリビジョンが指定されない場合には、最後に成功したデプロイメントのリビジョンが使用されます。
- ロールバックの完了直後に新規デプロイメントプロセスが誤って開始されないように、DeploymentConfig のイメージ変更トリガーがロールバックの一部として無効にされます。 - イメージ変更トリガーを再度有効にするには、以下を実行します。 - oc set triggers dc/<name> --auto - $ oc set triggers dc/<name> --auto- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
DeploymentConfig は、最新のデプロイメントプロセスが失敗した場合の、設定の最後に成功したリビジョンへの自動ロールバックもサポートします。この場合、デプロイに失敗した最新のテンプレートはシステムで修正されないので、ユーザーがその設定の修正を行う必要があります。
4.2.1.5. コンテナー内でのコマンドの実行
						コマンドをコンテナーに追加して、イメージの ENTRYPOINT を却下してコンテナーの起動動作を変更することができます。これは、指定したタイミングでデプロイメントごとに 1 回実行できるライフサイクルフックとは異なります。
					
手順
- commandパラメーターを、DeploymentConfig の- specフィールドを追加します。- commandコマンドを変更する- argsフィールドも追加できます (または- commandが存在しない場合には、- ENTRYPOINT)。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - たとえば、 - -jarおよび- /opt/app-root/springboots2idemo.jar引数を指定して、- javaコマンドを実行するには、以下を実行します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
4.2.1.6. デプロイメントログの表示
手順
- 指定の DeploymentConfig に関する最新リビジョンのログをストリームするには、以下を実行します。 - oc logs -f dc/<name> - $ oc logs -f dc/<name>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 最新のリビジョンが実行中または失敗した場合には、コマンドが、Pod のデプロイを行うプロセスのログを返します。成功した場合には、アプリケーションの Pod からのログを返します。 
- 以前に失敗したデプロイメントプロセスからのログを表示することも可能です。 ただし、これらのプロセス (以前の ReplicationController およびデプロイヤー Pod) が存在し、手動でプルーニングまたは削除されていない場合に限ります。 - oc logs --version=1 dc/<name> - $ oc logs --version=1 dc/<name>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
4.2.1.7. デプロイメントトリガー
DeploymentConfig には、クラスター内のイベントに対応する新規デプロイメントプロセスの作成を駆動するトリガーを含めることができます。
							トリガーが DeploymentConfig に定義されていない場合は、ConfigChange トリガーがデフォルトで追加されます。トリガーが空のフィールドとして定義されている場合には、デプロイメントは手動で起動する必要があります。
						
ConfigChange デプロイメントトリガー
						ConfigChange トリガーにより、DeploymentConfig の Pod テンプレートで設定の変更が検出されるたびに、新規の ReplicationController が作成されます。
					
							ConfigChange トリガーが DeploymentConfig に定義されている場合は、DeploymentConfig 自体が作成された直後に、最初の ReplicationController が自動的に作成され、一時停止されません。
						
ConfigChange デプロイメントトリガー
triggers: - type: "ConfigChange"
triggers:
  - type: "ConfigChange"ImageChange デプロイメントトリガー
						ImageChange トリガーにより、イメージストリームタグの内容の変更時に常に新規 ReplicationController が生成されます (イメージの新規バージョンがプッシュされるタイミング)。
					
ImageChange デプロイメントトリガー
- 1
- imageChangeParams.automaticフィールドが- falseに設定されると、トリガーが無効になります。
						上記の例では、origin-ruby-sample イメージストリームの latest タグの値が変更され、新しいイメージの値が DeploymentConfig の helloworld コンテナーに指定されている現在のイメージと異なる場合に、helloworld コンテナーの新規イメージを使用して、新しい ReplicationController が作成されます。
					
							ImageChange トリガーが DeploymentConfig (ConfigChange トリガーと automatic=false、または automatic=true) で定義されていて、ImageChange トリガーで参照されている ImageStreamTag がまだ存在していない場合には、ビルドにより、イメージが ImageStreamTag にインポートまたはプッシュされた直後に初回のデプロイメントプロセスが自動的に開始されます。
						
4.2.1.7.1. デプロイメントトリガーの設定
手順
- oc set triggersコマンドを使用して、DeploymentConfig にデプロイメントトリガーを設定することができます。たとえば、- ImageChangeTriggerを設定するには、以下のコマンドを使用します。- oc set triggers dc/<dc_name> \ --from-image=<project>/<image>:<tag> -c <container_name>- $ oc set triggers dc/<dc_name> \ --from-image=<project>/<image>:<tag> -c <container_name>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
4.2.1.8. デプロイメントリソースの設定
このリソースはクラスター管理者が一時ストレージのテクノロジープレビュー機能を有効にしている場合にのみ利用できます。この機能はデフォルトでは無効にされています。
デプロイメントは、ノードでリソース (メモリー、CPU および一時ストレージ) を消費する Pod を使用して完了します。デフォルトで、Pod はバインドされていないノードのリソースを消費します。ただし、プロジェクトにデフォルトのコンテナー制限が指定されている場合には、Pod はその上限までリソースを消費します。
デプロイメントストラテジーの一部としてリソース制限を指定して、リソースの使用を制限することも可能です。デプロイメントリソースは、Recreate (再作成)、Rolling (ローリング) または Custom (カスタム) のデプロイメントストラテジーで使用できます。
手順
- 以下の例では、 - resources、- cpu、- memory、および- ephemeral-storageはそれぞれオプションです。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - ただし、クォータがプロジェクトに定義されている場合には、以下の 2 つの項目のいずれかが必要です。 - 明示的な - requestsで設定した- resourcesセクション:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- requestsオブジェクトは、クォータ内のリソース一覧に対応するリソース一覧を含みます。
 
- 
										プロジェクトで定義される制限の範囲。LimitRangeオブジェクトのデフォルト値がデプロイメントプロセス時に作成される Pod に適用されます。
 - デプロイメントリソースを設定するには、上記のいずれかのオプションを選択してください。それ以外の場合は、デプロイ Pod の作成は、クォータ基準を満たしていないことを示すメッセージを出して失敗します。 
4.2.1.9. 手動のスケーリング
ロールバック以外に、手動スケーリングにより、レプリカの数を詳細に管理できます。
							Pod は oc autoscale コマンドを使用して自動スケーリングすることも可能です。
						
手順
- DeploymentConfig を手動でスケーリングするには、 - oc scaleコマンドを使用します。たとえば、以下のコマンドは、- frontendDeploymentConfig のレプリカを- 3に設定します。- oc scale dc frontend --replicas=3 - $ oc scale dc frontend --replicas=3- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - レプリカの数は最終的に、DeploymentConfig の - frontendで設定した希望のデプロイメントの状態と現在のデプロイメントの状態に伝播されます。
4.2.1.10. DeploymentConfig からのプライベートリポジトリーへのアクセス
シークレットを DeploymentConfig に追加し、プライベートリポジトリーからイメージにアクセスできるようにします。この手順では、OpenShift Container Platform Web コンソールを使用する方法を示します。
手順
- 新規プロジェクトを作成します。
- Workloads ページから、プライベートイメージリポジトリーにアクセスするための認証情報を含むシークレットを作成します。
- DeploymentConfig を作成します。
- DeploymentConfig エディターページで、Pull Secret を設定し、変更を保存します。
4.2.1.11. 特定のノードへの Pod の割り当て
ラベル付きのノードと合わせてノードセレクターを使用し、Pod の配置を制御することができます。
クラスター管理者は、プロジェクトに対して デフォルトのノードセレクターを設定して 特定のノードに Pod の配置を制限できます。開発者は、Pod 設定にノードセレクターを設定して、ノードをさらに制限することができます。
手順
- Pod の作成時にノードセレクターを追加するには、Pod 設定を編集し、 - nodeSelectorの値を追加します。これは、単一の Pod 設定や、Pod テンプレートに追加できます。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - ノードセレクターが有効な場合に作成される Pod は指定されたラベルを持つノードに割り当てられます。ここで指定されるラベルは、クラスター管理者によって追加されるラベルと併用されます。 - たとえば、プロジェクトに - type=user-nodeと- region=eastのラベルがクラスター管理者により追加され、上記の- disktype: ssdラベルを Pod に追加した場合に、Pod は 3 つのラベルすべてが含まれるノードにのみスケジュールされます。注記- ラベルには値を 1 つしか設定できないので、 - region=eastが管理者によりデフォルト設定されている Pod 設定に- region=westのノードセレクターを設定すると、Pod が全くスケジュールされなくなります。
4.2.1.12. 異なるサービスアカウントでの Pod の実行
デフォルト以外のサービスアカウントで Pod を実行できます。
手順
- DeploymentConfig を編集します。 - oc edit dc/<deployment_config> - $ oc edit dc/<deployment_config>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- serviceAccountと- serviceAccountNameパラメーターを- specフィールドに追加し、使用するサービスアカウントを指定します。- spec: securityContext: {} serviceAccount: <service_account> serviceAccountName: <service_account>- spec: securityContext: {} serviceAccount: <service_account> serviceAccountName: <service_account>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow