Kubernetes 1.16 - 何も壊さずにアップグレードする方法

Kubernetes 1.16 - 何も壊さずにアップグレードする方法

本日 18 月 1.16 日、Kubernetes の次のバージョン XNUMX がリリースされます。 いつものように、多くの改善と新製品が私たちを待っています。 ただし、ファイルの「Action Required」セクションに注目していただきたいと思います。 変更履歴-1.16.md。 これらのセクションでは、アプリケーションやクラスター メンテナンス ツールを破損したり、構成ファイルの変更を必要としたりする可能性のある変更を公開します。

一般に、手動による介入が必要です...

長く Kubernetes を使ってきたすべての人に影響を与える可能性が高い変更から、すぐに始めましょう。 Kubernetes API は、従来のリソース API バージョンをサポートしなくなりました。

知らない人、忘れた人がいたら…リソースの API バージョンはマニフェストのフィールドに示されています。 apiVersion: apps/v1

すなわち:

リソースの種類
古いバージョン
何を置き換えるべきか

すべてのリソース
アプリ/v1beta1
アプリ/v1beta2
apps / v1

配備
デーモンセット
レプリカセット
拡張子/v1beta1
apps / v1

ネットワークポリシー
拡張機能/v1beta1
networking.k8s.io/v1

ポッドセキュリティポリシー
拡張機能/v1beta1
ポリシー/v1beta1

また、次のタイプのオブジェクトが存在するという事実にも注意していただきたいと思います。 Ingress も変わりました apiVersion на networking.k8s.io/v1beta1。 古い意味 extensions/v1beta1 は引き続きサポートされていますが、マニフェストでこのバージョンを同時に更新する十分な理由があります。

ノードにインストールされるさまざまなシステム ラベル (ノード ラベル) には非常に多くの変更があります。

Kubelet は任意のラベルを設定することを禁止されました (以前は起動キーを介して設定できました) kubelet --node-labels)、彼らはこのリストだけを残しました 許可される:

kubernetes.io/hostname
kubernetes.io/instance-type
kubernetes.io/os
kubernetes.io/arch

beta.kubernetes.io/instance-type
beta.kubernetes.io/os
beta.kubernetes.io/arch

failure-domain.beta.kubernetes.io/zone
failure-domain.beta.kubernetes.io/region

failure-domain.kubernetes.io/zone
failure-domain.kubernetes.io/region

[*.]kubelet.kubernetes.io/*
[*.]node.kubernetes.io/*

タグ beta.kubernetes.io/metadata-proxy-ready、beta.kubernetes.io/metadata-proxy-ready および beta.kubernetes.io/kube-proxy-ds-ready は新しいノードに追加されなくなり、さまざまな追加コンポーネントがノード セレクターとしてわずかに異なるラベルを使用し始めました。

コンポーネント
旧ラベル
現在のラベル

キューブプロキシ
beta.kubernetes.io/kube-proxy-ds-ready
node.kubernetes.io/kube-proxy-ds-ready

IPマスクエージェント
beta.kubernetes.io/masq-agent-ds-ready
node.kubernetes.io/masq-agent-ds-ready

メタデータプロキシ
beta.kubernetes.io/metadata-proxy----
Cloud.google.com/metadata-proxy-ready

kubeadm は、その背後にある初期 kublet 構成ファイルを削除するようになりました bootstrap-kubelet.conf。 ツールがこのファイルにアクセスしていた場合は、次の使用に切り替えます。 kubelet.conf、現在のアクセス設定が保存されます。

Cadvisor はメトリクスを提供しなくなりました pod_name и container_namePrometheus で使用した場合は、メトリクスに移動してください pod и container それぞれ。

次の行コマンドを使用してキーを削除しました。

コンポーネント
格納されたキー

ハイパーキューブ
--make-symlink

キューブプロキシ
--リソースコンテナ

スケジューラは、イベント API のバージョン v1beta1 の使用を開始しました。 サードパーティのツールを使用してイベント API を操作する場合は、最新バージョンに切り替えてください。

ユーモアたっぷりのひととき。 リリース 1.16 の準備中に、次の変更が加えられました。

  • 注釈を削除しました scheduler.alpha.kubernetes.io/critical-pod バージョン v1.16.0-alpha.1 では
  • 注釈を返しました scheduler.alpha.kubernetes.io/critical-pod バージョン v1.16.0-alpha.2 では
  • 注釈を削除しました scheduler.alpha.kubernetes.io/critical-pod バージョン v1.16.0-beta.1 では

フィールドを使用する spec.priorityClassName ポッドの重要性を示します。

出所: habr.com

コメントを追加します