重要
Kubernetes 升级, 主要的API变化在v1.16\v1., 具体说明如下:
v1.16 变化
v1.16版本将停止提供以下不推荐使用的API版本,而支持更新和更稳定的API版本:
NetworkPolicy资源: 由extensions/v1beta1迁移至v1.8以来可用的networking.k8s.io/v1API。PodSecurityPolicy资源: 由extensions/v1beta1迁移至v1.10以来可用的policy/v1beta1API。DaemonSet资源: 由extensions/v1beta1和apps/v1beta2迁移至v1.9以来可用的apps/v1API。spec.templateGeneration字段被删除。spec.selector为必填项, 且在创建后是不变的。使用现有的tmplate labels作为selector无缝升级spec.updateStrategy.type默认值为RollingUpdate(extensions/v1beta1默认值为OnDelete)
Deployment资源: 由extensions/v1beta1apps/v1beta1apps/v1beta2迁移至v1.9以来可用的apps/v1API。spec.rollbackTo字段被删除spec.selector为必填项, 且在创建后是不变的。使用现有的tmplate labels作为selector无缝升级spec.progressDeadlineSeconds默认值为600s(extensions/v1beta1默认值没有截止日期)spec.revisionHistoryLimit默认值为10(apps/v1beta1默认值为2,extensions/v1beta1中默认值为保留所有)maxSurge和maxUnavailable默认值为25%(extensions/v1beta1默认值为1)
Statefulset资源: 由apps/v1beta1和apps/v1beta2迁移至v1.9以来可用的apps/v1API。spec.selector为必填项, 且在创建后是不变的。使用现有的tmplate labels作为selector无缝升级spec.updateStrategy.type默认值为RollingUpdate(extensions/v1beta1默认值为OnDelete)
ReplicaSet资源: 由extensions/v1beta1apps/v1beta1apps/v1beta2迁移至v1.9以来可用的apps/v1API。spec.selector为必填项, 且在创建后是不变的。使用现有的tmplate labels作为selector无缝升级
MutatingWebhookConfiguration和ValidatingWebhookConfiguration资源: 由admissionregistration.k8s.io/v1beta1迁移至v1.16以来可用的admissionregistration.k8s.io/v1APIwebhooks[*].failurePolicy默认值 fromIgnoretoFailwebhooks[*].matchPolicy默认值 fromExacttoEquivalentwebhooks[*].timeoutSeconds默认值 from30sto10swebhooks[*].sideEffects变为必填项 oneofNoneandNoneOnDryRunwebhooks[*].admissionReviewVersions变为必填项webhooks[*].name名称必须唯一
CustomResourceDefinition资源: 由apiextensions.k8s.io/v1beta1迁移至v1.16以来可用的apiextensions.k8s.io/v1API。spec.scope去除默认值Namespaced,变为必须指定。spec.version去除,由spec.versions替换。spec.validation去除,由spec.versions[*].schema替换。spec.subresources去除,由spec.versions[*].subresources替换。spec.additionalPrinterColumns去除,由spec.versions[*].additionalPrinterColumns替换。spec.conversion.webhookClientConfig迁移至spec.conversion.webhook.clientConfig。spec.conversion.conversionReviewVersions迁移至spec.conversion.webhook.conversionReviewVersionsspec.versions[*].schema.openAPIV3Schema为必填项, 并且必须为结构化schema。spec.preserveUnknownFields: true不被允许,必须通过schema中指定x-kubernetes-preserve-unknown-fields: trueadditionalPrinterColumns中,JSONPath字段改为jsonPath(fixes #66531)
APIService资源: 由apiregistration.k8s.io/v1beta1迁移至v1.10以来可用的apiregistration.k8s.io/v1API。TokenReview资源: 由authentication.k8s.io/v1beta1迁移至v1.6以来可用的authentication.k8s.io/v1API。LocalSubjectAccessReview、SelfSubjectAccessReview、SubjectAccessReview由
authentication.k8s.io/v1beta1迁移至v1.6以来可用的authentication.k8s.io/v1API。spec.group字段重命名为spec.groups(fix #32709)
CertificateSigningRequest资源: 由certificates.k8s.io/v1beta1迁移至v1.19以来可用的certificates.k8s.io/v1API。- 请求证书:
spec.signerName为必填项(请参阅Kubernetes signers), 并且不允许通过。certificate.k8s.io/v1API创建对kubernetes.io/legacy-unknown的请求。spec.usages为必填项、不可重复,并且只能包含已知用法。
- 颁发证书:
status.condition不可重复。status.conditions[*].status为必填项。status.certificate必须为PEM-encoded, 并且仅包含CERTIFICATE块。
- 请求证书:
Lease资源: 由coordination.k8s.io/v1beta1迁移至v1.14以来可用的coordination.k8s.io/v1API。Ingress资源: 由extensions/v1beta1迁移至v1.19以来可用的networking.k8s.io/v1beta1API。spec.backend字段名变为spec.defaultBackendspec.rules[*].http.paths[*].backend.serviceName字段变为spec.rules[*].http.paths[*].backend.service.namespec.rules[*].http.paths[*].backend.servicePort字段,值为数字变为spec.rules[*].http.paths[*].backend.service.port.numberspec.rules[*].http.paths[*].backend.servicePort字段,值为字符串变为spec.rules[*].http.paths[*].backend.service.port.namespec.rules[*].http.paths[*].pathType为必填项,oneofPrefix,Exact, andImplementationSpecific.ImplementationSpecific用来对应v1beta1.spec.rules[*].http.paths[*].backend.path为必填项,匹配所有路径值设置为/。
IngressClass资源: 由networking.k8s.io/v1beta1迁移至v1.19以来可用的networking.k8s.io/v1API。ClusterRole,ClusterRoleBinding,Role, andRoleBinding资源由rbac.authorization.k8s.io/v1beta1迁移至v1.8以来可用的rbac.authorization.k8s.io/v1APIPriorityClass资源由scheduling.k8s.io/v1beta1迁移至v1.14以来可用的scheduling.k8s.io/v1APICSIDriver, CSINode, StorageClass, and VolumeAttachment资源由storage.k8s.io/v1beta1迁移至storage.k8s.io/v1APICSIDriver在v1.19可用CSINode在v1.17可用StorageClass在v1.6可用VolumeAttachment在v1.13可用
Event资源: 由events.k8s.io/v1beta1迁移至v1.19以来可用的events.k8s.io/v1APItype仅限于Normal、WarninginvolvedObject被重命名为regardingaction,reason,reportingComponent, andreportingInstance为必填项eventTime替换废弃的字段firstTimestampseries.lastObservedTime替换废弃的字段lastTimestampseries.count替换废弃的字段countreportingComponent替换废弃的字段source.componentreportingInstance替换废弃的字段source.host
RuntimeClass资源: 由node.k8s.io/v1beta1迁移至v1.20以来可用的node.k8s.io/v1API