Kubernetes:更新pod活性探测timeoutSeconds

Kubernetes:更新pod活性探测timeoutSeconds,kubernetes,jenkins-x,Kubernetes,Jenkins X,我正在与Kubernetes和Jenkins-x合作,我需要创建一个具有自定义属性的devpod。 特别是,我需要一个timeoutSeconds,以使livenessProbe与默认的不同。 在创建pod之前,我不知道如何自定义此属性,所以我正在尝试在pod运行后对其进行更新。 我试过了 kubectl编辑pod/ 但它告诉我,我不能更新该属性 你对我如何做到这一点有什么建议吗 谢谢。虽然这可能不是您在生产中真正想要做的事情,但您可以遵循以下步骤 从集群获取yamlkubectl Get po

我正在与Kubernetes和Jenkins-x合作,我需要创建一个具有自定义属性的devpod。 特别是,我需要一个timeoutSeconds,以使livenessProbe与默认的不同。 在创建pod之前,我不知道如何自定义此属性,所以我正在尝试在pod运行后对其进行更新。 我试过了

kubectl编辑pod/

但它告诉我,我不能更新该属性

你对我如何做到这一点有什么建议吗


谢谢。

虽然这可能不是您在生产中真正想要做的事情,但您可以遵循以下步骤

  • 从集群获取yaml
    kubectl Get pod pod name-o yaml--export>pod.yaml

  • 删除正在运行的吊舱
    kubectl耗尽吊舱podname

  • 编辑
    pod.yaml
    并将其应用于集群


  • 虽然这可能不是您在生产中真正想要做的事情,但您可以遵循以下步骤

  • 从集群获取yaml
    kubectl Get pod pod name-o yaml--export>pod.yaml

  • 删除正在运行的吊舱
    kubectl耗尽吊舱podname

  • 编辑
    pod.yaml
    并将其应用于集群


  • 您可以使用kubectl
    --覆盖
    标志。类似这样的东西,

    kubectl run busybox --image=busybox --restart=Never --overrides='
          {
             "apiVersion": "v1",
             "kind": "Pod",
             "metadata": {
                "labels": {
                   "test": "liveness"
                },
                "name": "liveness-exec"
             },
             "spec": {
                "containers": [
                   {
                      "name": "liveness",
                      "image": "k8s.gcr.io/busybox",
                      "livenessProbe": {
                         "exec": {
                            "command": [
                               "cat",
                               "/tmp/healthy"
                            ]
                         },
                         "initialDelaySeconds": 5,
                         "periodSeconds": 5
                      }
                   }
                ]
             }
          }
          '
    

    您可以使用kubectl
    --覆盖
    标志。类似这样的东西,

    kubectl run busybox --image=busybox --restart=Never --overrides='
          {
             "apiVersion": "v1",
             "kind": "Pod",
             "metadata": {
                "labels": {
                   "test": "liveness"
                },
                "name": "liveness-exec"
             },
             "spec": {
                "containers": [
                   {
                      "name": "liveness",
                      "image": "k8s.gcr.io/busybox",
                      "livenessProbe": {
                         "exec": {
                            "command": [
                               "cat",
                               "/tmp/healthy"
                            ]
                         },
                         "initialDelaySeconds": 5,
                         "periodSeconds": 5
                      }
                   }
                ]
             }
          }
          '
    

    我无法控制yaml的流程和应用yaml的流程。你知道应用后更新yaml的方法吗?如果你能从集群中获取yaml并保存它、编辑和重新应用,可以吗?我用kubectl edit pod/做了这件事,这会打开yaml并让你编辑,但当你保存和关闭它时,给了我这个错误“pod”laptop-n5oengpg-luca-nodejs2无效:规范:禁止:pod更新不能更改
    spec.containers[*]以外的字段。image
    spec.initContainers[*]。image
    ,`。。。。。“.在谷歌云用户界面编辑yaml时尝试了相同的方法,但我有相同的错误Kubectl edit不允许您编辑。您必须保存在yaml中并编辑它,删除旧的pod,重新应用编辑过的YAMLY,我尝试删除并应用新的yaml,但这样会丢失指向原始jenkins-x cr的其他pod的指针eate devpod命令create。因此,我正在尝试在不破坏的情况下更新它。我无法控制yaml进程和应用yaml的进程。您知道应用yaml后更新的方法吗?如果您可以从集群获取yaml并保存、编辑和重新应用,可以吗?我使用kubectl edit pod/完成了此操作,这将打开yaml并让s您可以编辑,但当您保存并关闭它时出现此错误“Pod”laptop-n5oengpg-luca-nodejs2”无效:规范:禁止:Pod更新不能更改除
    spec.containers[*]以外的字段。image
    spec.initContainers[*]。image
    ,`。。。。。“.在谷歌云用户界面编辑yaml时尝试了相同的方法,但我有相同的错误Kubectl edit不允许您编辑。您必须保存在yaml中并编辑它,删除旧的pod,重新应用编辑过的YAMLY,我尝试删除并应用新的yaml,但这样会丢失指向原始jenkins-x cr的其他pod的指针eate devpod命令create。所以我尝试在不销毁的情况下更新它