我使用Kubernetes官方文档中的yaml file在Kubernetes中创建部署,并在顶部使用apiVersion: apps/v1beta1
。然后我输入kubectl create -f deployment.yaml
来创建此部署,但它发生了如下错误:
error: error validating "deployment.yaml": error validating data: couldn't find type: v1beta1.Deployment; if you choose to ignore these errors, turn validation off with --validate=false`
经过一些搜索,我将apiVersion: apps/v1beta1
更改为extensions/v1beta1
,然后使用yaml文件重新创建部署,并且工作正常。
所以,我想知道apps/v1beta1
和extensions/v1beta1
之间的区别。是否与Kubernetes版本相关?
# kubectl version Client Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.4", GitCommit:"7243c69eb523aa4377bce883e7c0dd76b84709a1", GitTreeState:"clean", BuildDate:"2017-03-07T23:53:09Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.4", GitCommit:"7243c69eb523aa4377bce883e7c0dd76b84709a1", GitTreeState:"clean", BuildDate:"2017-03-07T23:34:32Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"}
答案 0 :(得分:33)
apps
API组将是v1部署类型所在的位置。 {1.6}中添加了apps/v1beta1
版本,因此如果您有1.5.x客户端或服务器,则仍应使用extensions/v1beta1
版本。
apps/v1beta1
和extensions/v1beta1
部署类型相同,但在通过apps
API创建时,会使用一些改进的默认值