apiVersion 与 helm 模板中的不同

apiVersion is not the same as in the helm template

我正在使用 consul helm chart repo 安装领事代理。我正在我的 minikube 集群(版本 1.10)上安装图表。 consul 客户端的 daemonSet 模板显示 apiVersion: apps/v1。 当我安装领事并检查 api 版本时,我得到一个不同的版本:

❯ kubectl edit ds consul-agent-consul

apiVersion: extensions/v1beta1

我似乎不明白这是为什么? 当我 运行ning helm install in dry-运行 模式时,我看到正确的 api 版本:

❯ helm install consul-agent . --debug --dry-run
# Source: consul/templates/client-daemonset.yaml
# DaemonSet to run the Consul clients on every node.
apiVersion: apps/v1
kind: DaemonSet

使用 helm 版本:

❯ helm version                                                                                                                                                                                                                         
version.BuildInfo{Version:"v3.2.4", GitCommit:"0ad800ef43d3b826f31a5ad8dfbb4fe05d143688", GitTreeState:"dirty", GoVersion:"go1.14.3"}

编辑: kubectl 版本:

Client Version: version.Info{Major:"1", Minor:"16+", GitVersion:"v1.16.6-beta.0", GitCommit:"e7f962ba86f4ce7033828210ca3556393c377bcc", GitTreeState:"clean", BuildDate:"2020-01-15T08:26:26Z", GoVersion:"go1.13.5", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.0", GitCommit:"fc32d2f3698e36b93322a3465f63a14e9f0eaead", GitTreeState:"clean", BuildDate:"2018-03-26T16:44:10Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

Kubernetes API 服务器版本为 1.10.0,kubectl 客户端版本为 1.16。在 Kubernetes API 服务器版本 1.16 DaemonSet 之前,extensions/v1beta1 在 Kubernetes API 服务器版本 1.16 中更改为 apps/v1。如果你想使用 DaemonSet apps/v1

,你应该将 Kubernetes API 服务器版本升级到 1.16 或更高版本