Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

17.2.2. 手順 2: サービスの消費

サービスおよびエンドポイントが定義されたので、適切なコンテナーの環境変数を設定し、適切な Pod が認証情報にアクセスしてサービスを使用できるようにします。

kind: "DeploymentConfig"
apiVersion: "v1"
metadata:
  name: "my-app-deployment"
spec: 1
  strategy:
    type: "Rolling"
    rollingParams:
      updatePeriodSeconds: 1 2
      intervalSeconds: 1 3
      timeoutSeconds: 120
  replicas: 2
  selector:
    name: "frontend"
  template:
    metadata:
      labels:
        name: "frontend"
    spec:
      containers:
        -
          name: "helloworld"
          image: "origin-ruby-sample"
          ports:
            -
              containerPort: 3306
              protocol: "TCP"
          env:
            -
              name: "MYSQL_USER"
              value: "${MYSQL_USER}" 4
            -
              name: "MYSQL_PASSWORD"
              value: "${MYSQL_PASSWORD}" 5
            -
              name: "MYSQL_DATABASE"
              value: "${MYSQL_DATABASE}" 6
1
DeploymentConfig の他のフィールドは省略されます。
2
各 Pod が次に更新されるまで待機する時間。
3
更新後に実行されるデプロイメントステータスのポーリング間の待機時間です。
4
サービスで使用するユーザー名です。
5
サービスで使用するパスフレーズです。
6
データベース名です。

外部データベースの環境変数

アプリケーションで外部サービスを使用することは内部サービスを使用することに似ています。アプリケーションには、直前の手順で説明されている認証情報と共に、サービスの環境変数と追加の環境変数が割り当てられます。たとえば、MySQL コンテナーは以下の環境変数を受信します。

  • EXTERNAL_MYSQL_SERVICE_SERVICE_HOST=<ip_address>
  • EXTERNAL_MYSQL_SERVICE_SERVICE_PORT=<port_number>
  • MYSQL_USERNAME=<mysql_username>
  • MYSQL_PASSWORD=<mysql_password>
  • MYSQL_DATABASE_NAME=<mysql_database>

アプリケーションは環境からサービスの位置情報 (coordinate) および認証情報を読み取り、サービス経由でデータベースとの接続を確立します。