Kubernetes YAML文件中的apiVersion应该怎么选?

近期在看K8s的相关文档,看到通过YAML文件创建资源时,对不同资源应该怎么选择apiVersion不太理解,网上查找了一些相关的内容,记录如下:

首先,我们可以通过kubectl api-resources命令获取到 当前K8s集群支持的所有 API 资源

kubectl api-resources -o wide

image.png
  • NAME 资源名称
  • SHORTNAMES 资源名称简写
  • APIGROUP => apiVersion
  • KIND 资源类型
  • VERBS 可用的方法

我们可以通过制定api-group参数来获取特定 API 组的 API 资源

kubectl api-resources --api-group apps -o wide

然后使用kubectl explain命令获取有关资源的详细信息

kubectl explain deploy

image.png

通过上图我们可以看到DeploymentapiVersion对应的版本号为extensions/v1beta1,因此我们通过上述两个命令就基本可以确定对于某个资源来说应该选择哪一个版本号了

需要注意的是 explain命令可能会显示旧的 group/version,我们可以通过 –api-version参数显示设置它

kubectl explain replicaset --api-version apps/v1

另外,我们可以使用kubectl api-versions获取集群支持的所有API版本

kubectl api-versions

image.png

使用以下命令检查特定的 group/version是否可以用于某些资源,如果不可用会返回一个错误信息

kubectl get deployments.v1.apps -n kube-system

你可能感兴趣的:(Kubernetes YAML文件中的apiVersion应该怎么选?)