首页 > 解决方案 > 在 kubernetes 部署实现中实现 Liveness 探针时的 Api 版本问题

问题描述

我正在尝试通过定义活性探测和就绪性来部署我的 kubernetes 部署资源。

当我尝试使用 api version 部署我的部署app/v1时,当时我收到如下错误,

Unknown field "readinessProbe" in io.k8s.api.core.v1.ContainerPort

所以在那之后我将我的 api 版本更改为v1. 然后我收到如下错误,

Error: unable to recognize "deployment/deployment.yaml": no matches for kind "Deployment" in version "v1"

我的deployment.yaml是,

apiVersion: v1
kind: Deployment
metadata:
  name: spacestudyadminaccountmaintenance-deployment
  labels:
    app: spacestudyadminaccountmaintenance-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: spacestudyadminaccountmaintenance-deployment
  template:
    metadata:
      labels:
        app: spacestudyadminaccountmaintenance-deployment
      annotations: 
        date: "+%H:%M:%S %d/%m/%y"
    spec:
      imagePullSecrets:
        - name: "regcred"
      containers:
       - name: spacestudyadminaccountmaintenance-deployment-container
         image: spacestudymilletech010/spacestudyadminaccountmaintenance:latest
         imagePullPolicy: Always
         ports:
            - name: http
              containerPort: 7081
              readinessProbe:
                tcpSocket:
                  port: 7081
                initialDelaySeconds: 5
                periodSeconds: 10
             livenessProbe:
               tcpSocket:
                 port: 7081
               initialDelaySeconds: 15
               periodSeconds: 20
        nodeSelector:
          tenantName: tenant1

那么我应该定义哪个 kubernetes 资源 api 版本来使用我的部署的活跃性和就绪性?

标签: kubernetes

解决方案


问题不在于 apiVersion(app/v1 可以正常工作),而在于您如何缩进。readinessProbe 和 livenessProbe 应该与端口处于同一级别,如下所示:

apiVersion: app/v1
kind: Deployment
metadata:
  name: spacestudyadminaccountmaintenance-deployment
  labels:
    app: spacestudyadminaccountmaintenance-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: spacestudyadminaccountmaintenance-deployment
  template:
    metadata:
      labels:
        app: spacestudyadminaccountmaintenance-deployment
      annotations: 
        date: "+%H:%M:%S %d/%m/%y"
    spec:
      imagePullSecrets:
        - name: "regcred"
      containers:
       - name: spacestudyadminaccountmaintenance-deployment-container
         image: spacestudymilletech010/spacestudyadminaccountmaintenance:latest
         imagePullPolicy: Always
         ports:
            - name: http
              containerPort: 7081
         readinessProbe:
           tcpSocket:
             port: 7081
           initialDelaySeconds: 5
           periodSeconds: 10
         livenessProbe:
           tcpSocket:
             port: 7081
           initialDelaySeconds: 15
           periodSeconds: 20
         nodeSelector:
           tenantName: tenant1

推荐阅读