13.4 Kubernetes環境で運用する
本製品を組み込んだDockerイメージを,Kubernetes環境で運用する場合のマニフェストの定義例を次に示します。下線部分は使用する環境に合わせて変更してください。
apiVersion: v1 kind: Service metadata: name: tomcat-ucars spec: selector: app: tomcat-ucars ports: - name: "tomcat-http-port" port: 8080 targetPort: 8080 - name: "ucars-http-port" [1.] port: 28081 targetPort: 28081 type: NodePort --- apiVersion: apps/v1 kind: Deployment metadata: name: tomcat-ucars spec: replicas: 1 selector: matchLabels: app: tomcat-ucars template: metadata: labels: app: tomcat-ucars spec: containers: - name: tomcat-ucars image: <イメージ名> [2.] ports: - containerPort: 8080 - containerPort: 28081 [3.] volumeMounts: [4.] - name: snapshot-volume mountPath: /ucars-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: ucars-snapshot-pvc
- [説明]
-
-
コンテナ外に公開するマッピング先ポート番号を指定します。マッピング先ポート番号は,プロセスモニタが使用するHTTP機能の受付ポートのマッピング先ポート番号を指します。
-
「12.4 Dockerイメージをビルドする」でビルドした,「(C) アプリケーションをデプロイするDockerイメージ」のイメージ名を指定します。
-
プロセスモニタが使用するHTTP機能の受付ポートである28081番ポートを公開ポートとして指定します。
-
スナップショットログの出力先として指定したパスをPersistent Volumeにマウントします。マウント先のPersistent VolumeとPersistence Volume Claimは,事前に作成するか,またはこのマニフェストファイルに定義を追記してください。
-
Tomcatの起動完了を検知するためのStartup Probeを定義します。GETリクエストによってアプリケーションの起動完了を確認できるURLを指定してください。
-
Tomcatの正常稼働を監視するためのReadiness Probeを定義します。詳細は,「11.2.1 コンテナの閉塞を高速化する」を参照してください。
-
コンテナに正常停止シグナルを送信してから,強制停止に遷移するまでの猶予時間を指定します。ここでは例として60秒を指定していますが,スナップショットの収集と出力を完了させるのに十分な時間を指定してください。
-