4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Kubernetes 1.16: API Changes

Last updated at Posted at 2019-10-02

はじめに

このエントリは、Kubernetes 1.16 の CHANGELOG からにAPI Changes についてまとめています。翻訳に合わせて補足を追記しています。その他の内容は Kubernetes 1.16 の変更点まとめを参照ください。

このエントリでは補足などの追加のコメントは :pencil: のあとに追加するようにしています。

API Changes

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?