kubernetes

Kubernetes 1.11: Urgent Upgrade Notes と 既知の問題 (Known Issues)


はじめに

このエントリは、Kubernetes 1.11 の CHANGELOG からUrgent Upgrade Notes と 既知の問題 (Known Issues)についてまとめています。翻訳に合わせて補足を追記しています。その他の内容は次のリンク先を参照してください。


Kubernetes 1.11: Urgent Upgrade Notes

ここでは Kubernetes 1.11 へアップグレード前に必ず確認しなければならない注意事項を扱います。アップグレード前に必ず確認するようにしましょう。


  • 大文字と小文字が間違っているフィールドを含むJSON設定ファイルは有効になりません。 アップグレードする前にこれらのファイルを修正する必要があります。 直接APIサーバー通信中にJSONリソース定義でキーを指定する場合、キーでは大文字と小文字が区別されます。 Kubernetes 1.8で導入されたバグにより、APIサーバーは間違った大文字小文字の要求を受け付け、大文字小文字を修正するよう強制しましたが、この動作は1.11で修正され、APIサーバーは再び正しい大文字小文字を適用します。 この間、kubectl は大文字と小文字を区別したキーを適用し続けていたので、kubectl でリソースを厳密に管理しているユーザーはこの変更の影響を受けません。(#65034)



    • :pencil: APIサーバーに直接リクエストを送っているようなケースの場合に大文字、小文字を区別して扱うようになるので注意しましょう。




  • Pod のプライオリティとプリエンプションの機能がデフォルトで有効になりました。これはすでに動作している Pod に対しても有効になることを意味し、プライオリティクラスやプリエンプションが要求されることがあるため注意してください。この機能を無効にしたい場合はアップグレード前に --feature-gates=PodPriority=false を kube-apiserver, kube-scheduler, kubelet に対して指定してください。PodPriorityを無効にした場合は Critical Pods の機能も無効になります。



    • :pencil: プリエンプションによって Pod が退去させられる可能性があるので、リソースが枯渇気味のクラスタを更新するときは注意しましょう。




Kubernetes 1.11: 既知の問題 (Known Issues)

ここでは Kubernetes 1.11 のリリース時点で確認されている既知の問題を扱います。アップグレードする前に問題内容を把握し、必要であればパッチバージョンリリースでの修正を待ちましょう。


  • IPVS based の kube-proxy はPodの終了時にグレースフルなコネクションのクローズをサポートしていません。これはポイントリリースで修正される予定です。(#57841)

  • いくつかの環境では kube-proxy に hostname を上書きする設定をする必要があります(#857)



    • :pencil: kubelet に --hostname-override を指定している環境で externalTrafficPolicyLocal を指定した Serviceがある場合 nodeIP を default である 127.0.0.1 にしてしまう問題があるようです。暫定的な対処法はこちらに記載されています。



  • 1.12で Vertical Pod Autoscaler の実装を根本的に変更するため、1.11 の VPA の設定を 1.12 に自動的に移行することができなくなります。