LoginSignup
5
1

More than 3 years have passed since last update.

Kubernetes 1.18: アップグレード時の注意事項

Last updated at Posted at 2020-04-07

はじめに

このエントリは、Kubernetes 1.18 の CHANGELOG からアップグレード時に確認すべき内容をまとめています。
具体的には以下の項目を翻訳し、適宜補足やコメントを追加しています。

  • Urgent Upgrade Notes
  • Known Issues

その他の内容は Kubernetes 1.18 の変更点まとめを参照ください。

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

アップグレード時に確認すべき注意事項

kube-apiserver:

  • Kubernetes 1.17 以前では --encryption-provider-config で指定する設定ファイルの cacheSize パラメータは指定がないまたは0を設定した場合デフォルト値が設定され 1000 が設定されていましたが、 Kubernetes 1.18 以降はエラーとなるようになりました。また 1.18 からキャッシュを無効にすることもできるようになり、その場合は負の値を設定してください。
    • :pencil: 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 フラグが削除されました: PodPriorityTaintNodesByConditionResourceQuotaScopeSelectors および 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]
    • :pencil: 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]

:pencil: 詳細は https://qiita.com/superbrothers/items/eef275853b0c2d14e95c#deprecations-and-removals-%E5%BB%83%E6%AD%A2%E3%81%8A%E3%82%88%E3%81%B3%E5%89%8A%E9%99%A4 を参照下さい。

client-go:

  • 生成された clientsetdynamic/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]

既知の問題点(Known Issues)

問題点は報告されていません。

5
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
5
1