はじめに
このエントリは、Kubernetes 1.18 の CHANGELOG からアップグレード時に確認すべき内容をまとめています。
具体的には以下の項目を翻訳し、適宜補足やコメントを追加しています。
- Urgent Upgrade Notes
- Known Issues
その他の内容は Kubernetes 1.18 の変更点まとめを参照ください。
このエントリでは補足などの追加のコメントは のあとに追加するようにしています。
アップグレード時に確認すべき注意事項
kube-apiserver:
- Kubernetes 1.17 以前では
--encryption-provider-config
で指定する設定ファイルのcacheSize
パラメータは指定がないまたは0を設定した場合デフォルト値が設定され 1000 が設定されていましたが、 Kubernetes 1.18 以降はエラーとなるようになりました。また 1.18 からキャッシュを無効にすることもできるようになり、その場合は負の値を設定してください。- etcd の暗号化機能を利用する際に設定するファイルの話です。
- certificatesigningrequests/approval APIのコンシューマはCSRsに指定されたsignerに対するapproveの権限を持つ必要があります。
新しく追加されたsignerName
フィールドおよび必要な権限については https://kubernetes.io/docs/reference/access-authn-authz/certificate-signing-requests/#authorization を参照してください。(#88246, @munnerz) [SIG API Machinery, Apps, Auth, CLI, Node and Testing] - 次の機能は無条件に有効になり、対応する
--feature-gates
フラグが削除されました:PodPriority
、TaintNodesByCondition
、ResourceQuotaScopeSelectors
およびScheduleDaemonSetPods
(#86210, @draveness) [SIG Apps and Scheduling]
kubelet:
-
--enable-cadvisor-endpoints
はデフォルトで無効になりました。もし cAdvisor v1 JSON API にアクセスが必要な場合は明示的に kubelet のフラグで有効にして下さい。このフラグは 1.15 で廃止予定となり、1.19 で削除される予定です。(#87440, @dims) [SIG Instrumentation, Node and Testing] - CSIMigrationOpenStack がベータに昇格しました。(OpenStack Cinder CSI Driver のインストールが必要なためデフォルトでは無効となっています)in-tree の AWS OpenStack Cinder driver
kubernetes.io/cinder
は 1.16 で廃止予定となり、1.20 で削除される予定です。ユーザーは、CSIMigration + CSIMigrationOpenStack機能を有効にし、OpenStack Cinder CSIドライバー (https://github.com/kubernetes-sigs/cloud-provider-openstack )をインストールして、その時点での既存のポッドおよびPVCオブジェクトの中断を回避する必要があります。ユーザーは、OpenStack Cinder CSI Driverを新しいボリュームに直接使用する必要があります。
(#85637, @dims) [SIG Cloud Provider]- AWS OpenStack Cinder driver が何を示しているのかわからないのでわかる方がいたら教えて下さい。
kubectl:
-
kubectl
と k8s.io/client-go は、http://localhost:8080
のサーバアドレスをデフォルトとして使用しなくなりました。もしこのようなレガシーなクラスタを所有している場合は、サーバのセキュリティを確保することを強く推奨します。サーバのセキュリティを確保できない場合は、$KUBERNETES_MASTER
環境変数にhttp://localhost:8080
を設定することで、サーバアドレスのデフォルト設定を引き続き使用できます。kubectl
のユーザは、--server
フラグまたは--kubeconfig
か$KUBECONFIG
で指定した kubeconfig ファイルのなかで、サーバアドレスを指定することもできます。(#86173, soltysh) [SIG API Machinery, CLI and Testing] -
kubectl run
は、以前から非推奨だったジェネレータと Pods の作成に関連しないフラグを削除しました。kubectl run
コマンドは Pods を作成するだけになりました。Pods 以外のオブジェクトを作成するには、特定のkubectl create
サブコマンドを参照してください。 (#87077, soltysh) [SIG Architecture, CLI and Testing] - 廃止予定だった
kubectl rolling-update
コマンドが削除されました。 (#88057, julianvmodesto) [SIG Architecture, CLI and Testing]
client-go:
-
生成された
clientset
、dynamic/metadata/scale
クライアントのメソッドは第一引数にcontext.Context
をとるようになりました。また、Create、Update、Patchメソッドはそれぞれ引数にCreateOptions、UpdateOptions、PatchOptionsをとります。Delete及びDeleteCollectionメソッドはDeleteOptionsを参照ではなく値として受け付けるようになりました。
以前のインタフェースで生成されたclientsetは、新しいAPIへの逐次的な移行を可能にするために、新しい「非推奨」パッケージで追加されました。非推奨パッケージは1.21のリリース時に削除されます。この移行をサポートするためのツールは http://sigs.k8s.io/clientgofix で提供されています。 -
次のメトリクスが削除されました。対応するメトリクスに変更して下さい:
- v1.14.0 から利用可能なメトリクス:
-
rest_client_request_latency_seconds
->rest_client_request_duration_seconds
-
scheduler_scheduling_latency_seconds
->scheduler_scheduling_duration_seconds
-
docker_operations
->docker_operations_total
-
docker_operations_latency_microseconds
->docker_operations_duration_seconds
-
docker_operations_errors
->docker_operations_errors_total
-
docker_operations_timeout
->docker_operations_timeout_total
-
network_plugin_operations_latency_microseconds
->network_plugin_operations_duration_seconds
-
kubelet_pod_worker_latency_microseconds
->kubelet_pod_worker_duration_seconds
-
kubelet_pod_start_latency_microseconds
->kubelet_pod_start_duration_seconds
-
kubelet_cgroup_manager_latency_microseconds
->kubelet_cgroup_manager_duration_seconds
-
kubelet_pod_worker_start_latency_microseconds
->kubelet_pod_worker_start_duration_seconds
-
kubelet_pleg_relist_latency_microseconds
->kubelet_pleg_relist_duration_seconds
-
kubelet_pleg_relist_interval_microseconds
->kubelet_pleg_relist_interval_seconds
-
kubelet_eviction_stats_age_microseconds
->kubelet_eviction_stats_age_seconds
-
kubelet_runtime_operations
->kubelet_runtime_operations_total
-
kubelet_runtime_operations_latency_microseconds
->kubelet_runtime_operations_duration_seconds
-
kubelet_runtime_operations_errors
->kubelet_runtime_operations_errors_total
-
kubelet_device_plugin_registration_count
->kubelet_device_plugin_registration_total
-
kubelet_device_plugin_alloc_latency_microseconds
->kubelet_device_plugin_alloc_duration_seconds
-
scheduler_e2e_scheduling_latency_microseconds
->scheduler_e2e_scheduling_duration_seconds
-
scheduler_scheduling_algorithm_latency_microseconds
->scheduler_scheduling_algorithm_duration_seconds
-
scheduler_scheduling_algorithm_predicate_evaluation
->scheduler_scheduling_algorithm_predicate_evaluation_seconds
-
scheduler_scheduling_algorithm_priority_evaluation
->scheduler_scheduling_algorithm_priority_evaluation_seconds
-
scheduler_scheduling_algorithm_preemption_evaluation
->scheduler_scheduling_algorithm_preemption_evaluation_seconds
-
scheduler_binding_latency_microseconds
->scheduler_binding_duration_seconds
-
kubeproxy_sync_proxy_rules_latency_microseconds
->kubeproxy_sync_proxy_rules_duration_seconds
-
apiserver_request_latencies
->apiserver_request_duration_seconds
-
apiserver_dropped_requests
->apiserver_dropped_requests_total
-
etcd_request_latencies_summary
->etcd_request_duration_seconds
-
apiserver_storage_transformation_latencies_microseconds
->apiserver_storage_transformation_duration_seconds
-
apiserver_storage_data_key_generation_latencies_microseconds
->apiserver_storage_data_key_generation_duration_seconds
-
apiserver_request_count
->apiserver_request_total
apiserver_request_latencies_summary
-
- v1.15.0 から利用可能なメトリクス:
-
apiserver_storage_transformation_failures_total
->apiserver_storage_transformation_operations_total
(#76496, @danielqsj) [SIG API Machinery, Cluster Lifecycle, Instrumentation, Network, Node and Scheduling]
-
- v1.14.0 から利用可能なメトリクス:
既知の問題点(Known Issues)
問題点は報告されていません。