更新Pod定义以在现有kubernetes部署上定义就绪探针

时间:2020-04-16 04:23:31

标签: kubernetes kubernetes-pod azure-kubernetes

我创建了一个Kubernetes部署,其中包含由模板定义的Pod。我需要更新Pod定义以包括准备就绪和生动的探针,因为据我所知,模板不允许创建这些探针。有什么想法吗?

部署的问题在于,它不允许我添加探针定义。如果我使用如下所示的探针定义:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: <appdeployment>
  labels:
    app: <appname>
spec:
  replicas: 3
  selector:
    matchLabels:
      app: <appname>
  template:
    metadata:
      labels:
        app: <appname>
    spec:
      containers:
      - image: "registry.hub.docker.com/imagename"
        name: <appname>-image
        readinessProbe:
          httpGet:
              path: /healthz
              port: 80
          initialDelaySeconds: 90
          periodSeconds: 5
          failureThreshold: 20
        ports:
        - containerPort: 80
          protocol: TCP
        resources:
          requests:
            cpu: 1000m
          limits:
            cpu: 4000m

它失败并显示以下错误:错误解析.yaml:将YAML转换为JSON时发生错误:yaml:第22行:找到了无法启动任何令牌的字符

该行是就绪探针的定义。

3 个答案:

答案 0 :(得分:1)

您可以使用命令kubectl get deployment deploymentname -n namespacename -o yaml > deployment.yaml将打开一个编辑器,您可以在其中编辑yaml以添加准备就绪探针和活动探针,并将其保存直接将更改应用于集群。

或者,您可以使用kubectl apply -f deployment.yaml将部署保存在yaml文件中,并对其进行编辑以添加准备就绪探针和活动探针,然后{{1}}将更改部署到集群。

答案 1 :(得分:0)

您可以使用:

kubectl edit deploy <deployment name> --namespace <namespace name>

然后内联

答案 2 :(得分:0)

感谢所提供的一切。你不能救我脱离我自己。这是我从Textpad剪切和粘贴中引入的一个非法字符,它位于空白区域。我应该先检查一下。抱歉打扰了。