Kubernetes-如何了解受支持的最新API版本
如果是k8s集群版本,是否有一个表可以告诉我应该使用哪套API版本?Kubernetes docs总是认为我总是有一个很好的、最新的集群(在撰写本文时为1.12),但平台提供商并不总是生活在这一前沿,因此很快就会令人沮丧Kubernetes-如何了解受支持的最新API版本,kubernetes,kubectl,Kubernetes,Kubectl,如果是k8s集群版本,是否有一个表可以告诉我应该使用哪套API版本?Kubernetes docs总是认为我总是有一个很好的、最新的集群(在撰写本文时为1.12),但平台提供商并不总是生活在这一前沿,因此很快就会令人沮丧 更好的是,我是否可以运行一个kubectl命令,让我集群告诉我每种资源类型及其最新支持的API版本?这将是kubectl explain命令。例如,对于吊舱: $ kubectl explain pod KIND: Pod VERSION: v1 <==
更好的是,我是否可以运行一个
kubectl
命令,让我集群告诉我每种资源类型及其最新支持的API版本?这将是kubectl explain
命令。例如,对于吊舱:
$ kubectl explain pod
KIND: Pod
VERSION: v1 <== API version
DESCRIPTION:
Pod is a collection of containers that can run on a host. This resource is
created by clients and scheduled onto hosts.
FIELDS:
apiVersion <string>
APIVersion defines the versioned schema of this representation of an
object. Servers should convert recognized schemas to the latest internal
value, and may reject unrecognized values. More info:
https://git.k8s.io/community/contributors/devel/api-conventions.md#resources
...
$kubectl解释pod
种类:豆荚
版本:v1要获取所有资源类型及其最新支持版本的列表,请运行以下命令:
for kind in `kubectl api-resources | tail +2 | awk '{ print $1 }'`; do kubectl explain $kind; done | grep -e "KIND:" -e "VERSION:"
它应该能产生像这样的产出
KIND: Binding
VERSION: v1
KIND: ComponentStatus
VERSION: v1
KIND: ConfigMap
VERSION: v1
KIND: Endpoints
VERSION: v1
KIND: Event
VERSION: v1
...
正如@Rico所提到的,它们的键在kubectl explain
命令中。这可能有点脆弱,因为它取决于打印输出的格式,但它适用于kubernetes 1.9.6
此外,可以从这里找到的kubernetes API文档(每个版本都有链接)以较低的效率收集信息-我认为kubectl API版本
是一个更简单的选择:
kubectl api版本
许可注册.k8s.io/v1beta1
apiextensions.k8s.io/v1beta1
apiregistration.k8s.io/v1
apiregistration.k8s.io/v1beta1
应用程序/v1
应用程序/v1beta1
应用程序/v1beta2
authentication.k8s.io/v1
authentication.k8s.io/v1beta1
authorization.k8s.io/v1
authorization.k8s.io/v1beta1
自动缩放/v1
自动缩放/v2beta1
自动缩放/v2beta2
批次/v1
批次/v1beta1
证书.k8s.io/v1beta1
coordination.k8s.io/v1
coordination.k8s.io/v1beta1
events.k8s.io/v1beta1
扩展/v1beta1
networking.k8s.io/v1
networking.k8s.io/v1beta1
node.k8s.io/v1beta1
政策/v1beta1
rbac.authorization.k8s.io/v1
rbac.authorization.k8s.io/v1beta1
调度.k8s.io/v1
scheduling.k8s.io/v1beta1
storage.k8s.io/v1
storage.k8s.io/v1beta1
kubernetes-1.17.x的v1
(与上面发布的格式不同)
将显示每种类型的api如果要将集群升级到该版本,您可以使用一个工具-kubepug作为升级前检查,以了解给定Kubernetes版本中发生了哪些更改。Link-您可以在上下文中使用Kubernetes集群并执行
move2kube collect
,以获得集群支持的所有种类的版本。它以从最新到最旧的顺序给出了一个种类支持的所有版本的有序列表
它将为您提供以下信息:
apiVersion: move2kube.konveyor.io/v1alpha1
kind: ClusterMetadata
metadata:
name: IBM-IKS
spec:
storageClasses:
- default
- ibmc-block-bronze
- ibmc-block-custom
- ibmc-block-gold
- ibmc-block-retain-bronze
- ibmc-block-retain-custom
- ibmc-block-retain-gold
- ibmc-block-retain-silver
- ibmc-block-silver
- ibmc-file-bronze
- ibmc-file-bronze-gid
- ibmc-file-custom
- ibmc-file-gold
- ibmc-file-gold-gid
- ibmc-file-retain-bronze
- ibmc-file-retain-custom
- ibmc-file-retain-gold
- ibmc-file-retain-silver
- ibmc-file-silver
- ibmc-file-silver-gid
apiKindVersionMap:
APIService:
- apiregistration.k8s.io/v1
BGPConfiguration:
- crd.projectcalico.org/v1
BGPPeer:
- crd.projectcalico.org/v1
Binding:
- v1
BlockAffinity:
- crd.projectcalico.org/v1
CSIDriver:
- storage.k8s.io/v1
- storage.k8s.io/v1beta1
CSINode:
- storage.k8s.io/v1
- storage.k8s.io/v1beta1
CatalogSource:
- operators.coreos.com/v1alpha1
CertificateSigningRequest:
- certificates.k8s.io/v1beta1
ClusterInformation:
- crd.projectcalico.org/v1
ClusterRole:
- rbac.authorization.k8s.io/v1
- rbac.authorization.k8s.io/v1beta1
ClusterRoleBinding:
- rbac.authorization.k8s.io/v1
- rbac.authorization.k8s.io/v1beta1
ClusterServiceVersion:
- operators.coreos.com/v1alpha1
ComponentStatus:
- v1
ConfigMap:
- v1
ControllerRevision:
- apps/v1
CronJob:
- batch/v1beta1
- batch/v2alpha1
CustomResourceDefinition:
- apiextensions.k8s.io/v1
DaemonSet:
- apps/v1
Deployment:
- apps/v1
EndpointSlice:
- discovery.k8s.io/v1beta1
Endpoints:
- v1
Event:
- events.k8s.io/v1beta1
- v1
FelixConfiguration:
- crd.projectcalico.org/v1
GlobalNetworkPolicy:
- crd.projectcalico.org/v1
GlobalNetworkSet:
- crd.projectcalico.org/v1
HorizontalPodAutoscaler:
- autoscaling/v1
- autoscaling/v2beta1
- autoscaling/v2beta2
HostEndpoint:
- crd.projectcalico.org/v1
IPAMBlock:
- crd.projectcalico.org/v1
IPAMConfig:
- crd.projectcalico.org/v1
IPAMHandle:
- crd.projectcalico.org/v1
IPPool:
- crd.projectcalico.org/v1
Ingress:
- networking.k8s.io/v1
- networking.k8s.io/v1beta1
- extensions/v1beta1
IngressClass:
- networking.k8s.io/v1
- networking.k8s.io/v1beta1
InstallPlan:
- operators.coreos.com/v1alpha1
Job:
- batch/v1
KubeControllersConfiguration:
- crd.projectcalico.org/v1
Lease:
- coordination.k8s.io/v1beta1
- coordination.k8s.io/v1
LimitRange:
- v1
LocalSubjectAccessReview:
- authorization.k8s.io/v1
- authorization.k8s.io/v1beta1
MutatingWebhookConfiguration:
- admissionregistration.k8s.io/v1beta1
- admissionregistration.k8s.io/v1
Namespace:
- v1
NetworkPolicy:
- networking.k8s.io/v1
NetworkSet:
- crd.projectcalico.org/v1
Node:
- v1
Operator:
- operators.coreos.com/v1
OperatorGroup:
- operators.coreos.com/v1
PersistentVolume:
- v1
PersistentVolumeClaim:
- v1
Pod:
- v1
PodDisruptionBudget:
- policy/v1beta1
PodSecurityPolicy:
- policy/v1beta1
PodTemplate:
- v1
PriorityClass:
- scheduling.k8s.io/v1beta1
- scheduling.k8s.io/v1
RBACSync:
- ibm.com/v1alpha1
ReplicaSet:
- apps/v1
ReplicationController:
- v1
ResourceQuota:
- v1
Role:
- rbac.authorization.k8s.io/v1
- rbac.authorization.k8s.io/v1beta1
RoleBinding:
- rbac.authorization.k8s.io/v1
- rbac.authorization.k8s.io/v1beta1
Secret:
- v1
SelfSubjectAccessReview:
- authorization.k8s.io/v1
- authorization.k8s.io/v1beta1
SelfSubjectRulesReview:
- authorization.k8s.io/v1
- authorization.k8s.io/v1beta1
Service:
- v1
ServiceAccount:
- v1
StatefulSet:
- apps/v1
StorageClass:
- storage.k8s.io/v1
- storage.k8s.io/v1beta1
SubjectAccessReview:
- authorization.k8s.io/v1
- authorization.k8s.io/v1beta1
Subscription:
- operators.coreos.com/v1alpha1
TokenReview:
- authentication.k8s.io/v1
- authentication.k8s.io/v1beta1
ValidatingWebhookConfiguration:
- admissionregistration.k8s.io/v1beta1
- admissionregistration.k8s.io/v1
VolumeAttachment:
- storage.k8s.io/v1
- storage.k8s.io/v1beta1
您还可以启动
kubectl proxy
并在swagger中检查api版本。当使用的名称很明显时,这很方便,但是您如何从输出中知道部署应该使用extensions/v1beta1,这在公认的答案中非常清楚。是的,我同意ken,这并不是一个很好的解决问题的方法,但是要小心。有时,同一对象在两个不同的API中可用(例如,当前extensions
中的ingres
和networking.k8s.io
),它可能默认为较旧的(例如,ingres显示extensions/v1beta1
,但networking.k8s.io/v1beta1
更合适)..此外,文档仅显示了1.18版本中的入口
为联网.k8s.io/v1beta1
,但该规范显然自1.14以来有效。要查找所有不推荐的api版本,脚本:
for i in `kubectl api-resources | grep -v KIND | awk '{print $NF}'`;do kubectl explain ${i} | grep -e "KIND:" -e "VERSION:"; echo '----'; done
apiVersion: move2kube.konveyor.io/v1alpha1
kind: ClusterMetadata
metadata:
name: IBM-IKS
spec:
storageClasses:
- default
- ibmc-block-bronze
- ibmc-block-custom
- ibmc-block-gold
- ibmc-block-retain-bronze
- ibmc-block-retain-custom
- ibmc-block-retain-gold
- ibmc-block-retain-silver
- ibmc-block-silver
- ibmc-file-bronze
- ibmc-file-bronze-gid
- ibmc-file-custom
- ibmc-file-gold
- ibmc-file-gold-gid
- ibmc-file-retain-bronze
- ibmc-file-retain-custom
- ibmc-file-retain-gold
- ibmc-file-retain-silver
- ibmc-file-silver
- ibmc-file-silver-gid
apiKindVersionMap:
APIService:
- apiregistration.k8s.io/v1
BGPConfiguration:
- crd.projectcalico.org/v1
BGPPeer:
- crd.projectcalico.org/v1
Binding:
- v1
BlockAffinity:
- crd.projectcalico.org/v1
CSIDriver:
- storage.k8s.io/v1
- storage.k8s.io/v1beta1
CSINode:
- storage.k8s.io/v1
- storage.k8s.io/v1beta1
CatalogSource:
- operators.coreos.com/v1alpha1
CertificateSigningRequest:
- certificates.k8s.io/v1beta1
ClusterInformation:
- crd.projectcalico.org/v1
ClusterRole:
- rbac.authorization.k8s.io/v1
- rbac.authorization.k8s.io/v1beta1
ClusterRoleBinding:
- rbac.authorization.k8s.io/v1
- rbac.authorization.k8s.io/v1beta1
ClusterServiceVersion:
- operators.coreos.com/v1alpha1
ComponentStatus:
- v1
ConfigMap:
- v1
ControllerRevision:
- apps/v1
CronJob:
- batch/v1beta1
- batch/v2alpha1
CustomResourceDefinition:
- apiextensions.k8s.io/v1
DaemonSet:
- apps/v1
Deployment:
- apps/v1
EndpointSlice:
- discovery.k8s.io/v1beta1
Endpoints:
- v1
Event:
- events.k8s.io/v1beta1
- v1
FelixConfiguration:
- crd.projectcalico.org/v1
GlobalNetworkPolicy:
- crd.projectcalico.org/v1
GlobalNetworkSet:
- crd.projectcalico.org/v1
HorizontalPodAutoscaler:
- autoscaling/v1
- autoscaling/v2beta1
- autoscaling/v2beta2
HostEndpoint:
- crd.projectcalico.org/v1
IPAMBlock:
- crd.projectcalico.org/v1
IPAMConfig:
- crd.projectcalico.org/v1
IPAMHandle:
- crd.projectcalico.org/v1
IPPool:
- crd.projectcalico.org/v1
Ingress:
- networking.k8s.io/v1
- networking.k8s.io/v1beta1
- extensions/v1beta1
IngressClass:
- networking.k8s.io/v1
- networking.k8s.io/v1beta1
InstallPlan:
- operators.coreos.com/v1alpha1
Job:
- batch/v1
KubeControllersConfiguration:
- crd.projectcalico.org/v1
Lease:
- coordination.k8s.io/v1beta1
- coordination.k8s.io/v1
LimitRange:
- v1
LocalSubjectAccessReview:
- authorization.k8s.io/v1
- authorization.k8s.io/v1beta1
MutatingWebhookConfiguration:
- admissionregistration.k8s.io/v1beta1
- admissionregistration.k8s.io/v1
Namespace:
- v1
NetworkPolicy:
- networking.k8s.io/v1
NetworkSet:
- crd.projectcalico.org/v1
Node:
- v1
Operator:
- operators.coreos.com/v1
OperatorGroup:
- operators.coreos.com/v1
PersistentVolume:
- v1
PersistentVolumeClaim:
- v1
Pod:
- v1
PodDisruptionBudget:
- policy/v1beta1
PodSecurityPolicy:
- policy/v1beta1
PodTemplate:
- v1
PriorityClass:
- scheduling.k8s.io/v1beta1
- scheduling.k8s.io/v1
RBACSync:
- ibm.com/v1alpha1
ReplicaSet:
- apps/v1
ReplicationController:
- v1
ResourceQuota:
- v1
Role:
- rbac.authorization.k8s.io/v1
- rbac.authorization.k8s.io/v1beta1
RoleBinding:
- rbac.authorization.k8s.io/v1
- rbac.authorization.k8s.io/v1beta1
Secret:
- v1
SelfSubjectAccessReview:
- authorization.k8s.io/v1
- authorization.k8s.io/v1beta1
SelfSubjectRulesReview:
- authorization.k8s.io/v1
- authorization.k8s.io/v1beta1
Service:
- v1
ServiceAccount:
- v1
StatefulSet:
- apps/v1
StorageClass:
- storage.k8s.io/v1
- storage.k8s.io/v1beta1
SubjectAccessReview:
- authorization.k8s.io/v1
- authorization.k8s.io/v1beta1
Subscription:
- operators.coreos.com/v1alpha1
TokenReview:
- authentication.k8s.io/v1
- authentication.k8s.io/v1beta1
ValidatingWebhookConfiguration:
- admissionregistration.k8s.io/v1beta1
- admissionregistration.k8s.io/v1
VolumeAttachment:
- storage.k8s.io/v1
- storage.k8s.io/v1beta1