第9章 デプロイメント


9.1. デプロイメントの仕組み

9.1.1. デプロイメントの概要

OpenShift Container Platform デプロイメントでは、一般的なユーザーアプリケーションに対して詳細にわたる管理ができます。デプロイメントは、3 つの異なる API オブジェクトを使用して記述します。

  • デプロイメント設定。 Pod テンプレートとして、アプリケーションの特定のコンポーネントに対する状態を記述します。
  • 1 つまたは複数のレプリケーションコントローラー。 このコントローラーには、Pod テンプレートとしてデプロイメント設定のある時点の状態が含まれます。
  • 1 つまたは複数の Pod。 特定バージョンのアプリケーションのインスタンスを表します。
重要

デプロイメント設定が所有するレプリケーションコントローラーまたは Pod を操作する必要はありません。デプロイメントシステムにより、デプロイメント設定への変更は適切に伝搬されます。既存のデプロイメントストラテジーがユースケースに適さない場合や、デプロイメントのライフサイクルで手動の手順を実行する必要がある場合には、「カスタムストラテジー」の作成を検討してください。

デプロイメント設定を作成すると、レプリケーションコントローラーが、デプロイメント設定の Pod テンプレートとして作成されます。デプロイメント設定が変更されると、最新の Pod テンプレートで新しいレプリケーションコントローラーが作成され、デプロイメントプロセスが実行され、以前のレプリケーションコントローラーにスケールダウンされるか、新しいレプリケーションコントローラーにスケールアップされます。

アプリケーションのインスタンスは、作成時にサービスローダーバランサーやルーターに対して自動的に追加/削除されます。アプリケーションが正常なシャットダウン機能をサポートしている限り、アプリケーションが TERM シグナルを受け取ると、実行中のユーザー接続が通常通り完了できるようにすることができます。

デプロイメントシステムで提供される機能:

  • 実行中のアプリケーションのテンプレートとなるデプロイメント設定
  • イベントへの対応として自動化されたデプロイメントを駆動するトリガー
  • 以前のバージョンから新しいバージョンに移行するための、ユーザーによるカスタマイズが可能なストラテジー。ストラテジーは、デプロイメントプロセスと一般的に呼ばれる Pod 内で実行されます。
  • デプロイメントのライフサイクル中のさまざまなポイントで、カスタムの動作を実行するための フック セット。
  • デプロイメントの失敗時に手動または自動でロールバックをサポートするためのアプリケーションのバージョン管理。
  • レプリケーションの手動および自動スケーリング

9.1.2. デプロイメント設定の作成

デプロイメント設定は、OpenShift Container Platform API リソースの deploymentConfig で、他のリソースのように oc コマンドで管理できます。以下は、deploymentConfig リソースの例です。

kind: "DeploymentConfig"
apiVersion: "v1"
metadata:
  name: "frontend"
spec:
  template: 1
    metadata:
      labels:
        name: "frontend"
    spec:
      containers:
        - name: "helloworld"
          image: "openshift/origin-ruby-sample"
          ports:
            - containerPort: 8080
              protocol: "TCP"
  replicas: 5 2
  triggers:
    - type: "ConfigChange" 3
    - type: "ImageChange" 4
      imageChangeParams:
        automatic: true
        containerNames:
          - "helloworld"
        from:
          kind: "ImageStreamTag"
          name: "origin-ruby-sample:latest"
  strategy: 5
    type: "Rolling"
  paused: false 6
  revisionHistoryLimit: 2 7
  minReadySeconds: 0 8
1
単純な Ruby アプリケーションを記述する frontend デプロイメント設定の Pod テンプレート。
2
frontend のレプリカは 5 つとなります。
3
Pod テンプレートが変更されるたびに、新規レプリケーションコントローラーが作成されるようにする設定変更トリガー
4
origin-ruby-sample:latest イメージストリームタグの新規バージョンが利用できるようになると、新しいレプリケーションコントローラーが作成されるようにするイメージ変更トリガー
5
ローリングストラテジーは、Pod をデプロイするデフォルトの方法です。このストラテジーは、Pod をデプロイするデフォルトの方法で、省略可能です。
6
デプロイメント設定を一時停止します。これにより、すべてのトリガー機能が無効になり、実際にロールアウトされる前に Pod テンプレートに複数の変更を加えることができます。
7
改訂履歴の制限。ロールバック用に保持する、以前のレプリケーションコントローラー数の上限です。これは省略可能です。省略した場合には、以前のレプリケーションコントローラーは消去されません。
8
(Readiness チェックにパスした後) Pod が利用可能とみなされるまでに待機する最低期間 (秒)。デフォルト値は 0 です。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.