【问题标题】:Creating kubernetes ReplicationController fails due to restartPolicy由于 restartPolicy,创建 kubernetes ReplicationController 失败
【发布时间】:2016-03-30 07:44:10
【问题描述】:

我尝试通过 JSON 文件创建 复制控制器,并且我提到 restartPolicypod restartPolicy 的“从不”。

但我收到一个错误,

错误: ReplicationController "ngnix-rc" 无效。 *spec.template.spec.restartPolicy:不支持的值:“从不”:支持的值:始终

v1.2 中是否有任何变化,它仅支持“Always”作为restartPolicy 的选项?我很困惑。

我尝试了另一种情况,我遇到了一种奇怪的行为。 我将重启策略指定为“never”,我得到的错误是,

错误: ReplicationController "ngnix-rc" 无效。 *spec.template.spec.restartPolicy:不支持的值:“never”:支持的值:Always、OnFailure、Never *spec.template.spec.restartPolicy:不支持的值:“从不”:支持的值:始终

如发现,在这种情况下有两个错误。 我不知道具体是什么问题。

我用来创建 RC 的 JSON 文件如下所示

{
  "kind":"ReplicationController",
  "apiVersion":"v1",
  "metadata":{
    "name":"ngnix-rc",
    "labels":{
      "app":"webserver"
    }
  },
  "spec":{
    "replicas":1,
    "selector":{
      "app":"webserver1"
    },
    "template":{
      "metadata":{
        "name":"ngnix-pod",
        "labels":{
          "app":"webserver1"
        }
      },
      "spec":{
        "containers":[
          {
            "image":"ngnix",
            "name":"nginx"
          }
        ],
        "restartPolicy":"Never"
      } 
    }
  }
}

【问题讨论】:

  • 我发现 ReplicationController 将只允许一个等于 "Always"restartPolicy。这是一个有效的吗?否则我需要将 Job 用于 OnFailureNever 选项。但是我需要部署一个无法部署为 Job 的 Web 服务器,它应该部署为 RC。在这种情况下,当部署为 RC 时,容器会频繁重启,这使得 Web 服务器无用。有什么办法解决这个问题?

标签: kubernetes restart policy google-kubernetes-engine


【解决方案1】:

扩展 zhb 的回答:虽然不同的重启策略对单个 pod 甚至对于运行到完成的作业都有意义,但复制控制器的全部目的是保持一个 pod 的 N 个实例运行,所以说你不要'不希望重新启动 pod 与这个概念不符。

解释这一点的文档部分是:http://kubernetes.io/docs/user-guide/pod-states/#restartpolicy

【讨论】:

  • 我明白了。但是这里的问题是pod经常重启。我之前一直在使用与 v1.1 相同的容器映像,我没有遇到这个问题。现在我使用与 v1.2 相同的图像,并且容器经常重新启动。如果存在任何问题,我将调试并尝试找出网络服务器的问题。
  • 如果 pod 正在重新启动,那么它肯定有问题,禁用重新启动无法解决问题。我建议查看故障排除指南:kubernetes.io/docs/user-guide/…
  • 我尝试调试 pod,发现节点中运行的 docker 守护进程本身正在重启,导致容器重启。
  • 嗯。我建议重新启动机器以使 Docker 进入更健康的状态。我们注意到 1.2 中 Docker 进入不良状态的罕见情况。如果您愿意,可以在此处关注:github.com/kubernetes/kubernetes/issues/23556
【解决方案2】:

仅允许等于 Always 的 RestartPolicy,如果未指定,则为默认值。

引用自这里:http://kubernetes.io/docs/user-guide/replication-controller/#pod-template

【讨论】:

    猜你喜欢
    • 2018-04-30
    • 1970-01-01
    • 2021-08-07
    • 2012-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-14
    • 2018-05-10
    相关资源
    最近更新 更多