OpenShiftデプロイメント管理の基本
0.はじめに:OpenShiftのデプロイメント管理とは?
OpenShiftのアプリケーションデプロイメント管理は、アプリケーションのライフサイクルを効果的に制御するためのプロセスです。
これには、デプロイメントの更新、スケーリング、ロールバック、停止などの操作が含まれ、アプリケーションを安定かつ効率的に稼働させることを目的としています。
この記事では、OpenShiftでアプリケーションを作成し、デプロイメントを管理する方法について詳細に解説します。
では、次の章から具体的な解説を進めます!
1.デプロイメント戦略
デプロイメント戦略は、アプリケーションを新しいバージョンに更新する際の方法を定義します。OpenShiftでは主に以下の2つの戦略が利用されます:
1. ローリングアップデート
-
概要:
Podを段階的に新しいバージョンに置き換える戦略。 -
メリット:
更新中もアプリケーションは常に利用可能(ダウンタイムなし)。 -
動作:
- 古いPodを少しずつ削除しながら、新しいPodを追加。
- デフォルトのデプロイメント戦略として使用されます。
2. 再作成戦略
-
概要:
既存のPodをすべて停止してから、新しいPodを作成する戦略。 -
メリット:
シンプルで、互換性のない更新に適している。 -
デメリット:
更新中に短時間のダウンタイムが発生。 -
使用例:
- YAMLファイルで以下を指定して利用します。
以降では、一般的かつデフォルトのデプロイメント戦略である、「ローリングアップデート」の管理手順を解説します。
2.アプリケーションデプロイメントの管理手順
以下に具体的な手順を示します。
1. 新しいプロジェクトの作成
デプロイメント管理のテスト用にプロジェクトを作成します。
oc new-project deployment-demo
2. httpdサーバのデプロイ
YAMLファイルを使用してDeploymentリソースを作成します。
oc apply -f httpd-deployment.yaml
httpd-deployment.yamlの例:
apiVersion: apps/v1
kind: Deployment
metadata:
name: httpd-deployment
spec:
replicas: 2
selector:
matchLabels:
app: httpd
template:
metadata:
labels:
app: httpd
spec:
containers:
- name: httpd
image: httpd:2.4
ports:
- containerPort: 80
3. ローリングアップデート
YAMLファイルを更新し、新しいイメージ(例: httpd:2.4.54
)に変更して適用します。
vi httpd-deployment.yaml
oc apply -f httpd-deployment.yaml
更新がローリングアップデートで進行していることを確認します。
oc rollout status deployment/httpd-deployment
実行結果の例:
deployment "httpd-deployment" successfully rolled out
4. ロールバック
更新が問題を引き起こした場合、以前のリビジョンにロールバックします。
oc rollout undo deployment/httpd-deployment --to-revision=1
ロールバックの状態を確認します。
oc describe pod <podname>
5. リビジョン履歴の確認
特定のリビジョン情報を表示します。
oc rollout history deployment/httpd-deployment --revision=2
履歴全体の確認:
oc rollout history deployment/httpd-deployment
実行結果の例:
deployment.apps/httpd-deployment
REVISION CHANGE-CAUSE
1 Initial deployment
2 Updated image to httpd:2.4.54
6. デプロイメントのスケーリング
レプリカ数を増やしてPodの負荷分散能力を強化します。
oc scale deployment/httpd-deployment --replicas=5
結果確認:
oc get pods
7. ロールアウトの停止と再開
デプロイメントの更新プロセスを一時停止します。
oc rollout pause deployment/httpd-deployment
再開する場合:
oc rollout resume deployment/httpd-deployment
3.OpenShiftデプロイメント管理で使用するコマンドまとめ
以下、使用コマンドのまとめです。
操作 | コマンド例 |
---|---|
プロジェクトの作成 | oc new-project deployment-demo |
Deploymentの作成 | oc apply -f httpd-deployment.yaml |
ローリングアップデート |
oc apply -f httpd-deployment.yaml → oc rollout status deployment/httpd-deployment
|
ロールバック | oc rollout undo deployment/httpd-deployment --to-revision=1 |
リビジョン履歴の確認 | oc rollout history deployment/httpd-deployment |
スケーリング | oc scale deployment/httpd-deployment --replicas=5 |
ロールアウト停止 | oc rollout pause deployment/httpd-deployment |
ロールアウト再開 | oc rollout resume deployment/httpd-deployment |
4.おわりに:デプロイメント管理の重要性
今回はデプロイメント管理の重要性について理解を深めるために、以下を学びました。
-
継続的な更新:
ローリングアップデートにより、ダウンタイムなしでアプリケーションを最新の状態に保てます。 -
安定した運用:
ロールバックやスケーリングにより、トラブル発生時でも迅速に復旧・調整できます。 -
効率的なリソース利用:
スケーリング機能を活用することで、需要に応じたリソース割り当てが可能です。
1回で覚えるのは難しいと思うので、何度かトライして覚えるで全然大丈夫です。
今後もOpenShiftについて解説していきます。
おわりっ!
Discussion