はじめに
このエントリは、Kubernetes 1.16 の CHANGELOG からにAPI Changes についてまとめています。翻訳に合わせて補足を追記しています。その他の内容は Kubernetes 1.16 の変更点まとめを参照ください。
このエントリでは補足などの追加のコメントは  のあとに追加するようにしています。
 のあとに追加するようにしています。
API Changes
- 
MutatingWebhookConfigurationとValidatingWebhookConfigurationの API がadmissionregistration.k8s.io/v1に昇格しました- v1 から failurePolicyのデフォルト値がIgnoreからFailに変更されました- 
 Fail になったことによって Pod の ValidatingWebhookConfiguration を追加して Webhook 先起動しなくなると Pod がデプロイできなくなり修正も行えない問題が報告されています。移行するときは注意しましょう。 Fail になったことによって Pod の ValidatingWebhookConfiguration を追加して Webhook 先起動しなくなると Pod がデプロイできなくなり修正も行えない問題が報告されています。移行するときは注意しましょう。
 
- 
- v1 から matchPolicyのデフォルト値がExactからEquivalentに変更されました
- v1 から timeoutのデフォルト値が30sから10sに変更されました
- v1 から sideEffectsのデフォルト値が削除され、必須フィールドとなりました。 v1 ではNoneかNoneOnDryRunのみが許可されています- 
  UnknownとSomeが削除されたようです。Unknownは以前はデフォルト値になっていましたがUnknownだと dryRun が動作せずkubectl diffなどを使うとエラーになっていましたが今後はそういったことはなくなりそうです。
 
- 
- 
admissionReviewVersionsのデフォルト値が削除され、必須フィールドとなりました。v1またはv1betaがサポートされています。
- 
nameフィールドがadmissionregistration.k8s.io/v1のMutatingWebhookConfigurationとValidatingWebhookConfigurationオブジェクトの中でユニークな値を設定しなければいけないように変更されました
 
- v1 から 
- admission webhook から送られる AdmissionReviewAPI がadmission.k8s.io/v1に昇格しました。 Webhookは、admissionReviewVersions:["v1"、"v1beta1"]でv1AdmissionReviewオブジェクトを受信するための設定を指定でき、送信されるのと同じapiVersionのAPIオブジェクトで応答する必要があります。admission.k8s.io/v1を利用している webhooks はそのレスポンスで追加のバリデーションが行われます。- validating admission webhooks では response.patchとresponse.patchTypeは許可されなくなりました
- 
apiVersion: "admission.k8s.io/v1"が必須になりました
- 
kind: "AdmissionReview"が必須になりました
- 
response.uid: "<value of request.uid>"が必須になりました
- 
response.patchが設定されている場合はresponse.patchType: "JSONPatch"が必須になりました (#80231, @liggitt)
- 
 上記の 上記のMutatingWebhookConfigurationとValidatingWebhookConfigurationにあったadmissionReviewVersionsで指定して、Webhook はリクエストのオブジェクトと同じバージョンのレスポンスを返す必要があるようです
 
- validating admission webhooks では 
- 
CustomResourceDefinitionAPIがapiextensions.k8s.io/v1に昇格しました。変更点は以下のとおりです。- Validattion Schema による新しい Defaulting 機能の使用はv1に制限されています
- 
spec.scopeのデフォルト値はNamespacedではなくなり、明示的な指定が必須になりました
- 
spec.versionは v1 で削除されました。代わりにspec.versionsを利用してください。
- 
spec.validationは v1 で削除されました。代わりにspec.versions[*].schemaを利用してください。
- 
spec.subresourcesは v1 で削除されました。代わりにspec.versions[*].subresourcesを利用してください。
- 
spec.additionalPrinterColumnsは v1 で削除されました。代わりにspec.versions[*].additionalPrinterColumnsを利用してください。
- 
spec.conversion.webhookClientConfigはspec.conversion.webhook.clientConfigに移動されました。
- 
spec.conversion.conversionReviewVersionsはspec.conversion.webhook.conversionReviewVersionsに移動されました
- 
spec.versions[*].schema.openAPIV3Schemaは v1 の CustomResourceDefinitions を作成するときに必須になりました
- 
spec.preserveUnknownFields: trueは v1 の CustomResourceDefinitions を作成するときに許可されなくなりました。 代わりにスキーマの定義にx-kubernetes-preserve-unknown-fields: trueを追加してください。- 
 スキーマを定義するほうに定義するようになったようです。ソース スキーマを定義するほうに定義するようになったようです。ソース
 
- 
- 
additionalPrinterColumnsの各カラム定義のJSONPathフィールドが削除され、v1 からjsonPathに変更されました。 (fixes https://github.com/kubernetes/kubernetes/issues/66531)
- 
apiextensions.k8s.io/v1beta1のCustomResourceDefinitionが廃止予定となり、 v1.19 で廃止される予定になりました。 (#79604, @liggitt)
 
- CR の変換のために CustomResourceDefinition conversion webhook との間で送受信される ConversionReviewAPI がapiextensions.k8s.io/v1に昇格しました。 CustomResourceDefinition conversion webhook は、CustomResourceDefinition の conversionReviewVersions リストに v1 を含めることで、apiextensions.k8s.io/v1バージョンのConversionReviewAPIオブジェクトでの受信および応答をサポートすることを示すことができるようになりました。 conversion webhook は、受け取ったのと同じ apiVersion の ConversionReview オブジェクトで応答する必要があります。apiextensions.k8s.io/v1ConversionReviewのレスポンスは、送信されたオブジェクトのrequest.uidと一致するresponse.uidを指定する必要があります。 (#81476 、@liggitt)
- RuntimeClasses を考慮したスケジューリングがサポートされました。RuntimeClasses は tolarations と nodeSelector で指定でき、RuntimeClass を使った Pod を作成すると PodSpec にそれらの指定がマージされます。
- CloudProvider によって報告される Node IP のセットが変更された場合でも、 kubelet は同じプライマリ Node IP をより確実に報告するようになりました。
 (#79391, @danwinship)- 
 マージの方法に問題があったようでマージ方式に変更があったようです。 マージの方法に問題があったようでマージ方式に変更があったようです。
 
- 
- ハッシュの変更を回避するために、コンテナハッシュ値を計算するときにnilまたは空のフィールドを省略します。 コンテナ仕様にゼロ以外のデフォルト値を持つ新しいフィールドの場合、ハッシュは変更されます。(#57741, @dixudx)
- 
apiextensions.v1beta1.CustomResourceDefinitionStatusとapiextensions.v1.CustomResourceDefinitionStatusの conditions は必須ではなくなりオプショナルになりました。(#64996, @roycaihw)
- CustomResourceDefinition の condition ステータスが変更されたときに lastTransitionTimeが更新されるようになりました。(#69655, @CaoShuFeng)