Kubernetes で動作させる際の Manifest サンプル(コンテナ版)
Tunaclo AC を Kubernetes で動作させる際の Manifest ファイルのサンプルを公開します。
ご利用されている Kubernetes 環境に合わせ、適宜修正してご利用ください。
サンプルユースケース:
- Back Agent とアプリケーション(Web API)は同じ Pod での動作を想定しています
- アプリケーションへの監視(ReadinessProbe/LivenessProbe)について
- アプリケーションが死んだ場合、 通信の振り分けをしないようにするのは Tunaclo AC でも有効です
- ローリングアップデートは、Front Agent または Back Agent のレプリカ数を3とし、3多重で構成しています
- アップデート時に、自動で追加される Pod 数は1(0.25 * 3 = 0.75 -> 1:切り上げ)となります
- このサンプルでは Agent の不正な接続を防ぐため、Service/Client の ReplicaNum は4を推奨しています
- 実際に利用する際は、Agent の ReplicaNum はレプリカ数とローリングアップデート時に追加される Pod 数を考慮して設定してください
-
Front Agent の YAML ファイル:sample-frontagent.yaml
# Example: Front Agent Deployment apiVersion: v1 kind: Secret metadata: name: client-secret type: Opaque data: PROJECT_ID: <base64 encoded project id> CLIENT_ID: <base64 encoded client id> CLIENT_KEY: <base64 encoded client key> --- apiVersion: apps/v1 kind: Deployment metadata: name: frontagent-deployment labels: app: frontagent spec: replicas: 3 selector: matchLabels: app: frontagent template: metadata: labels: app: frontagent spec: containers: - name: frontagent image: tunacloac/frontagent:latest ports: - containerPort: 30000 command: ["front_agent"] args: - -controller=https://api.kuroshio.tunaclo.net - -projectID=$(PROJECT_ID) - -agentID=$(CLIENT_ID) - -agentKey=$(CLIENT_KEY) envFrom: - secretRef: name: client-secret --- apiVersion: v1 kind: Service metadata: name: frontagent-service labels: app: frontagent spec: ports: - port: 30000 protocol: TCP selector: app: frontagent
-
Back Agent の YAML ファイル:sample-backagent.yaml
# Example: Back Agent Deployment with app(nginx) apiVersion: v1 kind: Secret metadata: name: service-secret type: Opaque data: PROJECT_ID: <base64 encoded project id> SERVICE_ID: <base64 encoded service id> SERVICE_KEY: <base64 encoded service key> --- apiVersion: apps/v1 kind: Deployment metadata: name: backagent-deployment labels: app: backagent spec: replicas: 3 selector: matchLabels: app: backagent template: metadata: labels: app: backagent spec: containers: - name: backagent image: tunacloac/backagent:latest command: ["back_agent"] args: - -controller=https://api.kuroshio.tunaclo.net - -projectID=$(PROJECT_ID) - -agentID=$(SERVICE_ID) - -agentKey=$(SERVICE_KEY) envFrom: - secretRef: name: service-secret - name: nginx image: nginx:latest ports: - containerPort: 80 readinessProbe: httpGet: path: / port: 80 initialDelaySeconds: 1 timeoutSeconds: 3 periodSeconds: 1