无法在 EKS 集群上创建 PodPreset

Unable to create a PodPreset on EKS cluster

环境: AWS 管理的 Kubernetes 集群 (EKS)

行动: 通过应用以下内容创建 PodPreset 对象:

apiVersion: settings.k8s.io/v1alpha1
kind: PodPreset
meta data:
  name: sample
  spec:
    selector:
      matchLabels:
        app: microservice
    env:
      - name: test_env
        value: "6379"
    volumeMounts:
      - name: shared
        mountPath: /usr/shared
    volumes:
      - name: shared
        emptyDir: {}

观察:

unable to recognize "podpreset.yaml": no matches for kind "PodPreset" in version "settings.k8s.io/v1alpha1"

看起来 EKS 默认不支持 API 版本 settings.k8s.io/v1alpha1。 我也在使用 EKS,我只是 运行 这个命令来检查它:

$ kubectl proxy
Starting to serve on 127.0.0.1:8001

我运行

curl localhost:8001/apis

显然在我的情况下 settings.k8s.io/v1alpha1 不受支持。我推荐 运行ning 相同的检查。 同时检查 here 提到

You should have enabled the API type settings.k8s.io/v1alpha1/podpreset

我不知道如何在 EKS 中启用 settings.k8s.io/v1alpha1

EKS 不启用任何 k8s Alpha 功能,截至今天,PodPreset 是 k8s Alpha 功能。因此,如果您想实现上述目标,您必须创建一个 EKS 现在支持的 Mutating Admission webhook。但不确定简单用例,PodPreset 可以处理大部分简单用例,希望它能尽快进入 Beta 阶段。

截至 2020 年 11 月 3 日,仍有一个 open GitHub 请求。