kubernetes - 在部署定义中使用 "topologySpreadConstraints"时创建服务失败

标签 kubernetes google-kubernetes-engine minikube kubernetes-deployment

我们正在 GKE 中创建的集群中运行应用程序。我们已经创建了所需的 yaml(由服务和部署定义组成)。我们最近决定使用 Pod Topology,因为我在我的 Deployment yaml 文件的规范部分下添加了以下内容-

 spec:
  topologySpreadConstraints:
  - maxSkew: 1
    topologyKey: node
    whenUnsatisfiable: DoNotSchedule
    labelSelector:
      matchLabels:
        app: foo-app

当我在 minikube 集群内运行该服务时,此更改按预期工作,而同一更改在 GKE 集群内不起作用。它抛出一个错误-

Error: UPGRADE FAILED: error validating "": error validating data: ValidationError(Deployment.spec.template.spec): unknown field "topologySpreadConstraints" in io.k8s.api.core.v1.PodSpec

我搜索了很多,但找不到满意的答案。有人遇到过这个问题吗?请帮助我了解问题及其解决方案。

提前致谢。

最佳答案

我假设您正在 GKE 集群上运行 1.17.7-gke.17。不幸的是,这是您可以通过 rapid channel 升级到的最新版本。 , 在这篇文章的时间。

topologySpreadConstraints 在 Kubernetes v1.18 中可用 FEATURE STATE: [beta]

关于kubernetes - 在部署定义中使用 "topologySpreadConstraints"时创建服务失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63151108/

相关文章:

kubernetes - 无法获取cpu pod指标,k8s-容器-容器-shim-runsc-v1-gvisor

elasticsearch - 为什么 Kubernetes 1.16 上的 elasticsearch-master-headless 搜索名称解析失败?

amazon-web-services - NGINX Ingress 因下载大文件而超时

kubernetes - 在哪里可以找到 kubernetes 集群中 pod/容器的权威资源限制?

google-kubernetes-engine - GKE 随机丢弃连接

spring - 部署到 Istio(使用 Kubernetes)的 Jhipster 无法正确加载

kubernetes - 使用模拟获取 GKE 集群凭据后无法运行 'kubectl' 命令

kubernetes - 在 minikube 中暴露端口

kubernetes - Minikube 无法启动,kubectl 与服务器的连接被拒绝

dns - Pod 不通过 ingress 解析服务的域名