kubernetes - 批量更新所有 Kubernetes 部署 API 版本
问题描述
我apiversion : apps/v1beta2
在大多数部署中都使用,但是1.14
建议使用Kubernetes 集群版本apiversion : apps/v1
。v1beta2 也将从Kubernetes 1.16
.
有没有更好的选择来减少手动工作并更新所有版本apps/v1beta2
为v1
.
或者我可以使用patch
所有部署。
解决方案
您可以尝试使用 move2kube ( https://github.com/konveyor/move2kube ) 工具来实现上述功能。
要实现上述目标,请执行以下操作:
创建一个定义集群类型的 yaml 文件,如下所示(调用是 clusterconfig.yaml):
apiVersion: move2kube.konveyor.io/v1alpha1
kind: ClusterMetadata
metadata:
name: Kubernetes
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
Binding:
- v1
CSIDriver:
- storage.k8s.io/v1beta1
CSINode:
- storage.k8s.io/v1
- storage.k8s.io/v1beta1
CatalogSource:
- operators.coreos.com/v1alpha1
CertificateSigningRequest:
- certificates.k8s.io/v1beta1
ClusterImagePolicy:
- securityenforcement.admission.cloud.ibm.com/v1beta1
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
HorizontalPodAutoscaler:
- autoscaling/v1
- autoscaling/v2beta1
- autoscaling/v2beta2
ImagePolicy:
- securityenforcement.admission.cloud.ibm.com/v1beta1
Ingress:
- networking.k8s.io/v1beta1
- extensions/v1beta1
InstallPlan:
- operators.coreos.com/v1alpha1
Job:
- batch/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
Node:
- 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
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
然后运行:
move2kube translate -s <folder containing your clusterconfig.yaml file and kubernetes yaml files>
交互式工具将询问所需的信息并进行翻译。
推荐阅读
- r - 这个错误代码是什么意思?: backsolve中的奇点
- javascript - Node JS 在非管理员应用程序中获取 CPU 温度
- python - 获取 vc discord.py 中的成员列表
- javascript - 使用 React 路由器时将 props 传递给另一个组件下面的进一步说明
- typescript - NestJS 将 DTO 传递给扩展控制器并使用 ValidationPipe 进行验证
- python - 从 Django 中恢复的数据库中将 IntegerField 转换为 ForeignKey
- installation - 如何在安装过程中设置 pgAdmin 4 主密码?
- reactjs - react 使用了错误的 cookie
- reactjs - 我的 git 在反应时没有被识别,我不知道为什么
- java - 如何在android中使用GraphView绘制实时数据