容器编排——kubernetes中配置文件yaml内apiVersioin如何确定

目录

1、确定kind:

2、寻找group:

3、确定apiVersion:


K8s的apiVersion由group和version组成,不同的kind有对应的不同group,不同的group再根据不同的k8s版本有不同的version。因此在编写不同类型的yaml,如何选择apiVersion,需要以下几个步骤:

1、确定kind:

确定kind就比较方便了,自己需要编写什么类型的yaml就可以确定。比如:namespace、deployment、service、pod等。

2、寻找group:

通过在当前使用的k8s服务器上,执行命令查看所有kind与group的关系,然后选择出自己需要的kind对应的group:

执行命令:

kubectl api-resources -o wide

然后查看结果的KIIND、APIGROUP两列。说明:如果group为空表示没有group。

例如:1.17.0版本的k8s的查询结果:

Kind

group

Binding                       

                            

ComponentStatus               

                            

ConfigMap                     

                            

Endpoints                     

                            

Event                         

                            

LimitRange                    

                            

Namespace                     

                            

Node                          

                            

PersistentVolumeClaim         

                            

PersistentVolume              

                            

Pod                           

                            

PodTemplate                   

                            

ReplicationController         

                            

ResourceQuota                 

                            

Secret                        

                            

ServiceAccount                

                            

Service                       

                            

MutatingWebhookConfiguration  

admissionregistration.k8s.io

ValidatingWebhookConfiguration

admissionregistration.k8s.io

CustomResourceDefinition      

apiextensions.k8s.io        

APIService                    

apiregistration.k8s.io      

ControllerRevision            

apps                        

DaemonSet                     

apps                        

Deployment                    

apps                        

ReplicaSet                    

apps                        

StatefulSet                   

apps                        

TokenReview                   

authentication.k8s.io       

LocalSubjectAccessReview      

authorization.k8s.io        

SelfSubjectAccessReview       

authorization.k8s.io        

SelfSubjectRulesReview        

authorization.k8s.io        

SubjectAccessReview           

authorization.k8s.io        

HorizontalPodAutoscaler       

autoscaling                 

CronJob                       

batch                       

Job                           

batch                       

CertificateSigningRequest     

certificates.k8s.io         

Lease                         

coordination.k8s.io         

EndpointSlice                 

discovery.k8s.io            

Event                         

events.k8s.io               

Ingress                       

extensions                  

Ingress                       

networking.k8s.io           

NetworkPolicy                 

networking.k8s.io           

RuntimeClass                  

node.k8s.io                 

PodDisruptionBudget           

policy                      

PodSecurityPolicy             

policy                      

ClusterRoleBinding            

rbac.authorization.k8s.io   

ClusterRole                   

rbac.authorization.k8s.io   

RoleBinding                   

rbac.authorization.k8s.io   

Role                          

rbac.authorization.k8s.io   

PriorityClass                 

scheduling.k8s.io           

CSIDriver                     

storage.k8s.io              

CSINode                       

storage.k8s.io              

StorageClass                  

storage.k8s.io              

VolumeAttachment              

storage.k8s.io              

3、确定apiVersion:

通过在当前使用的k8s服务器上,执行命令查看所有group对应的apiVersion,然后根据自己需要的group,得到最终需要的apiVersion。

执行命令:

kubectl api-versions

说明:查询结果中斜线前面为group,斜线后面为version,如果没有斜线,那么就是group为空,只有version。

例如:1.17.0版本的k8s的查询结果:

apiVersion

admissionregistration.k8s.io/v1

admissionregistration.k8s.io/v1beta1

apiextensions.k8s.io/v1

apiextensions.k8s.io/v1beta1

apiregistration.k8s.io/v1

apiregistration.k8s.io/v1beta1

apps/v1

authentication.k8s.io/v1

authentication.k8s.io/v1beta1

authorization.k8s.io/v1

authorization.k8s.io/v1beta1

autoscaling/v1

autoscaling/v2beta1

autoscaling/v2beta2

batch/v1

batch/v1beta1

certificates.k8s.io/v1beta1

coordination.k8s.io/v1

coordination.k8s.io/v1beta1

discovery.k8s.io/v1beta1

events.k8s.io/v1beta1

extensions/v1beta1

networking.k8s.io/v1

networking.k8s.io/v1beta1

node.k8s.io/v1beta1

policy/v1beta1

rbac.authorization.k8s.io/v1

rbac.authorization.k8s.io/v1beta1

scheduling.k8s.io/v1

scheduling.k8s.io/v1beta1

storage.k8s.io/v1

storage.k8s.io/v1beta1

v1

k8s官方将apiversion分成了三个大类型,alpha、beta、stable。

Alpha: 未经充分测试,可能存在bug,功能可能随时调整或删除。

Beta: 经过充分测试,功能细节可能会在未来进行修改。

Stable: 稳定版本,将会得到持续支持。

因此,根据最终自己需要的apiVersion,有限选择稳定版本的,其次是选择带有beta版本的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值