【问题标题】:Trying to install django-defectDojo helm chart and running into StatefulSet version error尝试安装 django-defectDojo helm chart 并遇到 StatefulSet 版本错误
【发布时间】:2020-05-04 11:35:33
【问题描述】:

我正在尝试在我的 CentOS 机器上安装 django-defectDojo 的 helm chart https://github.com/DefectDojo/django-DefectDojo/blob/master/KUBERNETES.md

但是在运行 helm install 命令时,我遇到了这个问题 -

错误:验证失败:[无法识别“”:没有匹配的种类 版本“extensions/v1beta1”中的“部署”,无法识别“”: 版本“apps/v1beta2”中类型“StatefulSet”没有匹配项]

经过进一步检查,我认为这与 postgresql 图表有关,但我无法解决问题。

我的 kubectl 版本是

kubectl 版本

GitVersion:"v1.17.1", GitCommit:"d224476cd0730baca2b6e357d144171ed74192d6", GitTreeState:"clean", BuildDate:"2020-01-14T21:04:32Z", GoVersion:“go1.13.5”,编译器:“gc”,平台:“linux/amd64”} 服务器 版本:version.Info{主要:“1”,次要:“17”,GitVersion:“v1.17.1”, GitCommit:"d224476cd0730baca2b6e357d144171ed74192d6", GitTreeState:"clean", BuildDate:"2020-01-14T20:56:50Z", GoVersion:"go1.13.5", Compiler:"gc", Platform:"linux/amd64"}客户端版本:version.Info{Major:"1", Minor:"17",

对此的任何帮助将不胜感激。

【问题讨论】:

    标签: kubernetes-helm kubectl kubeadm helmfile


    【解决方案1】:

    显然,此图表存在问题,如果不进行额外修改,它将无法与较新版本的 Kubernetes(1.16 及更高版本)一起使用。我在 django-DefectDojo github 页面上发现了 this 问题。 Here 报告了与您相同的问题。

    问题与version 1.16Kubernetes APIs 的一些重大变化有关。

    Changelog since v1.15.0,您可以阅读以下内容:

    默认情况下不再提供以下 API:(#70672,@liggitt) * apps/v1beta1apps/v1beta2 下的所有资源 - 改用 apps/v1 * daemonsetsdeploymentsreplicasets 下的资源 extensions/v1beta1 - 使用 apps/v1 代替 * networkpolicies 资源 在extensions/v1beta1 下 - 改用networking.k8s.io/v1 * podsecuritypoliciesextensions/v1beta1 下的资源 - 使用 改为policy/v1beta1

    甚至还提供了临时解决方案:

    • 可以使用 --runtime-config apiserver 标志。
    • apps/v1beta1=true
    • apps/v1beta2=true
    • extensions/v1beta1/daemonsets=true,extensions/v1beta1/deployments=true,extensions/v1beta1/replicasets=true,extensions/v1beta1/networkpolicies=true,extensions/v1beta1/podsecuritypolicies=true

    • 服务这些资源的能力将在 v1.18 中完全移除。

    由于您的 Kubernetes 版本是 1.17,您仍然可以使用此解决方法。

    或者,您可以按照建议 here 使用旧的 Kubernetes 版本,或者自己手动从 django-DefectDojo 项目修改适当的 yaml 清单,使其与当前 Kubernetes 匹配strong>APIs 结构。

    【讨论】:

    • 设置运行时标志对我有用。谢谢你帮助我。