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

Failure in creating service when using "topologySpreadConstraints" in Deployment definition

我们是 运行 我们在 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。不幸的是,这是您可以在 post.

期间通过 rapid channel 升级到的最新版本

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