重要
Kubernetes 升级, 主要的API变化在v1.16\v1., 具体说明如下:
v1.16 变化
v1.16版本将停止提供以下不推荐使用的API版本,而支持更新和更稳定的API版本:
NetworkPolicy
资源: 由extensions/v1beta1
迁移至v1.8以来可用的networking.k8s.io/v1
API。PodSecurityPolicy
资源: 由extensions/v1beta1
迁移至v1.10以来可用的policy/v1beta1
API。DaemonSet
资源: 由extensions/v1beta1
和apps/v1beta2
迁移至v1.9以来可用的apps/v1
API。spec.templateGeneration
字段被删除。spec.selector
为必填项, 且在创建后是不变的。使用现有的tmplate labels
作为selector
无缝升级spec.updateStrategy.type
默认值为RollingUpdate
(extensions/v1beta1
默认值为OnDelete
)
Deployment
资源: 由extensions/v1beta1
apps/v1beta1
apps/v1beta2
迁移至v1.9以来可用的apps/v1
API。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/v1
API。spec.selector
为必填项, 且在创建后是不变的。使用现有的tmplate labels
作为selector
无缝升级spec.updateStrategy.type
默认值为RollingUpdate
(extensions/v1beta1
默认值为OnDelete
)
ReplicaSet
资源: 由extensions/v1beta1
apps/v1beta1
apps/v1beta2
迁移至v1.9以来可用的apps/v1
API。spec.selector
为必填项, 且在创建后是不变的。使用现有的tmplate labels
作为selector
无缝升级
MutatingWebhookConfiguration
和ValidatingWebhookConfiguration
资源: 由admissionregistration.k8s.io/v1beta1
迁移至v1.16以来可用的admissionregistration.k8s.io/v1
APIwebhooks[*].failurePolicy
默认值 fromIgnore
toFail
webhooks[*].matchPolicy
默认值 fromExact
toEquivalent
webhooks[*].timeoutSeconds
默认值 from30s
to10s
webhooks[*].sideEffects
变为必填项 oneofNone
andNoneOnDryRun
webhooks[*].admissionReviewVersions
变为必填项webhooks[*].name
名称必须唯一
CustomResourceDefinition
资源: 由apiextensions.k8s.io/v1beta1
迁移至v1.16以来可用的apiextensions.k8s.io/v1
API。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.conversionReviewVersions
spec.versions[*].schema.openAPIV3Schema
为必填项, 并且必须为结构化schema。spec.preserveUnknownFields: true
不被允许,必须通过schema中指定x-kubernetes-preserve-unknown-fields: true
additionalPrinterColumns
中,JSONPath
字段改为jsonPath
(fixes #66531)
APIService
资源: 由apiregistration.k8s.io/v1beta1
迁移至v1.10以来可用的apiregistration.k8s.io/v1
API。TokenReview
资源: 由authentication.k8s.io/v1beta1
迁移至v1.6以来可用的authentication.k8s.io/v1
API。LocalSubjectAccessReview
、SelfSubjectAccessReview
、SubjectAccessReview
由
authentication.k8s.io/v1beta1
迁移至v1.6以来可用的authentication.k8s.io/v1
API。spec.group
字段重命名为spec.groups
(fix #32709)
CertificateSigningRequest
资源: 由certificates.k8s.io/v1beta1
迁移至v1.19以来可用的certificates.k8s.io/v1
API。- 请求证书:
spec.signerName
为必填项(请参阅Kubernetes signers), 并且不允许通过。certificate.k8s.io/v1
API创建对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/v1
API。Ingress
资源: 由extensions/v1beta1
迁移至v1.19以来可用的networking.k8s.io/v1beta1
API。spec.backend
字段名变为spec.defaultBackend
spec.rules[*].http.paths[*].backend.serviceName
字段变为spec.rules[*].http.paths[*].backend.service.name
spec.rules[*].http.paths[*].backend.servicePort
字段,值为数字变为spec.rules[*].http.paths[*].backend.service.port.number
spec.rules[*].http.paths[*].backend.servicePort
字段,值为字符串变为spec.rules[*].http.paths[*].backend.service.port.name
spec.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/v1
API。ClusterRole
,ClusterRoleBinding
,Role
, andRoleBinding
资源由rbac.authorization.k8s.io/v1beta1
迁移至v1.8以来可用的rbac.authorization.k8s.io/v1
APIPriorityClass
资源由scheduling.k8s.io/v1beta1
迁移至v1.14以来可用的scheduling.k8s.io/v1
APICSIDriver, CSINode, StorageClass, and VolumeAttachment
资源由storage.k8s.io/v1beta1
迁移至storage.k8s.io/v1
APICSIDriver
在v1.19
可用CSINode
在v1.17
可用StorageClass
在v1.6
可用VolumeAttachment
在v1.13
可用
Event
资源: 由events.k8s.io/v1beta1
迁移至v1.19以来可用的events.k8s.io/v1
APItype
仅限于Normal
、Warning
involvedObject
被重命名为regarding
action
,reason
,reportingComponent
, andreportingInstance
为必填项eventTime
替换废弃的字段firstTimestamp
series.lastObservedTime
替换废弃的字段lastTimestamp
series.count
替换废弃的字段count
reportingComponent
替换废弃的字段source.component
reportingInstance
替换废弃的字段source.host
RuntimeClass
资源: 由node.k8s.io/v1beta1
迁移至v1.20以来可用的node.k8s.io/v1
API