Hitachi

uCosminexus Application Runtime for Apache Tomcat ユーザーズガイド


7.4 Kubernetes環境で運用する

uCARTを組み込んだDockerイメージを,Kubernetes環境で運用する場合のマニフェストの定義例を次に示します。下線部分は使用する環境に合わせて変更してください。

apiVersion: v1
kind: Service
metadata:
  name: tomcat-ucart
spec:
  selector:
    app: tomcat-ucart
  ports:
  - name: "tomcat-http-port"
    port: 8080
    targetPort: 8080
  - name: "ucart-http-port"                 [1.]
    port: 28081
    targetPort: 28081
  type: NodePort
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: tomcat-ucart
spec:
  replicas: 1
  selector:
    matchLabels:
      app: tomcat-ucart
  template:
    metadata:
      labels:
        app: tomcat-ucart
    spec:
      containers:
      - name: tomcat-ucart
        image: <イメージ名>                 [2.]
        ports:
        - containerPort: 8080
        - containerPort: 28081              [3.]
        volumeMounts:                       [4.]
        - name: snapshot-volume
          mountPath: /ucart-snapshots
        startupProbe:                       [5.]
          httpGet:
            path: /path-to-healthcheck
            port: 8080
        readinessProbe:                     [6.]
          exec:
            command:
            - /bin/sh
            - -c
            - test ! -e /tmp/tomcat-failure-detected
          initialDelaySeconds: 1
          periodSeconds: 1
      terminationGracePeriodSeconds: 60      [7.]
      volumes:                               [4.]
      - name: snapshot-volume
        persistentVolumeClaim:
          claimName: ucart-snapshot-pvc
[説明]
  1. コンテナ外に公開するuCARTのTomcatプロセスモニタが使用するHTTP機能の受付ポートのマッピング先ポート番号を指定します。

  2. 6.4 Dockerイメージをビルドする」でビルドした,「(C)ユーザアプリケーションをデプロイするDockerイメージ」のイメージ名を指定します。

  3. Tomcatプロセスモニタが使用するHTTP機能の受付ポートである28081番ポートを公開ポートとして指定します。

  4. スナップショットログの出力先として指定したパスをPersistent Volumeにマウントします。マウント先のPersistent VolumeとPersistence Volume Claimは,事前に作成するか,またはこのマニフェストファイルに定義を追記してください。

  5. Tomcatの起動完了を検知するためのStartup Probeを定義します。GETリクエストによってユーザアプリケーションの起動完了を確認できるURLを指定してください。

  6. Tomcatの正常稼働を監視するためのReadiness Probeを定義します。詳細は,「5.2.1 コンテナの閉塞を高速化する」を参照してください。

  7. コンテナに正常停止シグナルを送出してから,強制停止に遷移するまでの猶予時間を指定します。ここでは例として60秒を指定していますが,スナップショットの収集と出力を完了させるのに十分な時間を指定してください。