kubernetes

Kubernetes v1.8: Before Upgrading

このエントリは、Kubernetes v1.8 CHANGELOG から Before Upgrading の内容をまとめています。その他の項目は下記リンク先を参照してください。


ノードの swap が有効な場合、kubelet が起動しないようになった

ノードで swap が有効な場合 kubelet が起動しないようになりました。swap を有効にして起動したい場合は、--fail-swap-on=false フラグを付加する必要があります。--experimental-fail-swap-on は deprecated になり、将来のリリースで削除される予定です。

Swap を無効にする理由は Kubelet needs to allow configuration of container memory-swap #7294 という issue で議論されているようです。swap を無効にすることである Pod がメモリを消費しすぎて、他の Pod のメモリが swap して遅くなる、といった状況が避けられるようです。

autoscaling/v2alpha1 API が autoscaling/v2beta1 になった

autoscaling/v2alpha1 API が autoscaling/v2beta1 になりました。API の形式には変更はありません。Horizontal Pod Autoscaler の変更にはメモリやカスタムメトリクスによるオートスケールのサポートなどが含まれています。

Metrics API のアップデート

Metrics API が v1alpha1 から v1beta1 になり custom-metrics.metrics.k8s.iocustom.metrics.k8s.io に、 metricsmetrics.k8s.io にリネームされました。もしカスタムメトリクスのアダプターをデプロイしている場合は、新しい API バージョンをサポートしているか確認する必要があります。また Heapster を aggregated API server モードでデプロイしている場合は、新しい API バージョンをサポートするため Heapster をアップグレードする必要があります。

Advanced auditing の仕様変更

Advanced auditing が v1beta1 になりデフォルトの監査メカニズムになりました。新しいバージョンでは以下の変更が入っています。

  • AdvancedAudit 機能を明示的にオフ (--feature-gates=AdvancedAudit=false) にしない限り --audit-policy-file オプションが必須になりました。
  • Advanced auditing が有効な場合、ログファイルのデフォルトは JSON 形式になりました。
  • --audit-policy-file オプションは Policy のバージョンを表すため kind, apiVersion のフィールドが必須になりました。
  • webhook と ログ・ファイルの出力形式が、v1beta1 event 形式になりました。
  • 詳細は Advanced audit をご覧ください

TPR の削除

depcreated だった ThirdPartyResource (TPR) が削除されました。TPR のデータを失わないためには、CustomResourceDefinition への移行が必要です

kube-controller-manager の deprecated だったフラグが削除

kube-controller-manager の deprecated だった以下のフラグが削除されました。

  • replication-controller-lookup-cache-size
  • replicaset-lookup-cache-size
  • daemonset-lookup-cache-size

StatefulSets の pod.alpha.kubernetes.io/initialized アノテーションが無視されるようになった

StatefulSets で deprecated だった pod.alpha.kubernetes.io/initialized アノテーションが無視されるようになりました。

CronJob のオブジェクトがデフォルトで有効になった

CronJob のオブジェクトは v1beta1 になりデフォルトで有効になりました。CronJob v2alpha1 はまだ有効ですが、こちらは明示的に有効にする必要があります。現在の CronJob のオブジェクトは batch/v1beta1.CronJob に移行することを推奨します。deprecated なバージョンを指定した場合 Resource Not Found のエラーが発生する可能性があるので注意してください。このエラーは新しいコントローラーがローリングアップデート時に新しいバージョンを参照することによって起こります。

batch/v2alpha1.ScheduledJob が削除された

batch/v2alpha1.ScheduledJob は削除されました。batch/v1beta.CronJob に移行してください。

古い API グループがデフォルトで無効になった

  • rbac/v1alpha1, settings/v1alpha1, scheduling/v1alpha1 の API はデフォルトで無効になりました。

RBAC: system:node ロール は system:nodes グループとして扱われることがなくなった

  • system:node ロールは system:nodes グループとして自動的に扱われることはなくなりました。Node の認可には Node Authorization モードを利用してください。引き続き system:node ロール を system:nodes グループのメンバーとして扱いたい場合は、ClusterRoleBinding を設定する必要があります。