0

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 変数を使用して、ヘルスチェックを実行する必要があるかどうかを識別できます。

前もって感謝します、デイブ。

4

1 に答える 1