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秒を指定していますが,スナップショットの収集と出力を完了させるのに十分な時間を指定してください。
-