Kubernetes Liveness/Readiness プローブの設定について質問があります。
現時点では、実稼働環境 (バージョン 1.0.0) でヘルス チェックが構成されていないnetCore 3.1 で開発されたアプリケーションがあります。2 番目のリリース (バージョン 2.0.0) でヘルスエンドポイントを実装しましたが、エンドポイントを持たないバージョン v1 に準拠するために、Kubernetes 展開テンプレート ファイルをどのように管理すればよいですか?
プローブが構成されたテンプレートをデプロイすると、v1 で実行されるすべてのコンテナーが失敗し、エンドポイントに到達できなくなります。v1 (正常性なし) および v2 (正常性あり) と互換性のある 1 つの展開 yml ファイルを維持できるかどうかを理解したいと思います。
ここに、実際の展開 yml の例を投稿します。
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: "#{tenant}#-test-app"
name: "#{tenant}#-test-app"
labels:
app: "#{tenant}#-test-app"
product: "#{tenant}#-test-app"
app.kubernetes.io/name: "#{tenant}#-test-app"
app.kubernetes.io/version: "#{server_image_version}#"
app.kubernetes.io/component: "test-app"
app.kubernetes.io/part-of: "#{tenant}#-test-app"
app.kubernetes.io/managed-by: "#{managed_by}#"
spec:
selector:
matchLabels:
app: "#{tenant}#-test-app"
template:
metadata:
labels:
app: "#{tenant}#-test-app"
spec:
containers:
- name: "#{tenant}#-test-app"
image: mycontainerregistryurl/test-app:#{server_image_version}#
ports:
- containerPort: 80
envFrom:
- configMapRef:
name: "#{tenant}#-test-app-variables-config"
env:
- name: DD_AGENT_HOST
valueFrom:
fieldRef:
fieldPath: status.hostIP
- name: DD_SERVICE_NAME
value: "#{tenant}#-test-app"
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- NET_RAW
imagePullSecrets:
- name: test-registries
server_image_version 変数を使用して、ヘルスチェックを実行する必要があるかどうかを識別できます。
前もって感謝します、デイブ。