21
10

More than 3 years have passed since last update.

Kubernetes 1.18: 変更点まとめ

Last updated at Posted at 2020-04-09

このエントリは、Kubernetes 1.18 の CHANGELOG から 各変更点についてまとめたページをまとめています。

1.18 の主な変更点(What’s New)

Topology Manager がベータになりました

Topology Manager を利用すると、CPU とデバイス(SR-IOV VFs など)のリソース割り当てを調整し、低レイテンシ用に最適化された環境でワークロードが実行できます。

Topology Manager が導入される前は、CPU とデバイスマネージャーのリソース割り当て方法はお互いに独立していたため、複数の CPU を搭載したマルチソケットのサーバーで望ましくないリソースの割り当てが発生し、アプリケーション性能を低下させる可能性がありました。

  • :pencil: KEP の表題は Node Topology Manager となっています。
  • :pencil: 現在のところ CPU Managerstatic なっているノード上で動作します。

Serverside Apply - ベータ 2

Server-side Apply が v1.18 で ベータ 2 になりました。
このバージョンで、全ての Kubernetes オブジェクトのフィールドに対する変更を追跡、管理するために、リソースがいつ変更されたかを知ることができるようになりました。

Ingress が拡張され、IngressClass リソースの導入

Kubernetes 1.18 の Ingress には、2 つの重要な追加である pathType フィールドとIngressClass リソースの追加がありました。

pathType フィールドはパスの一致方法を指定できます。デフォルト値として使われる ImplementationSpecific に加えて、完全一致の Exact 、前方一致の PrefixpathType として指定できます。

  • :pencil: Prefix の設定例
   apiVersion: networking.k8s.io/v1beta1
   kind: Ingress
   metadata:
     name: test-ingress
   spec:
     rules:
     - http:
         paths:
         - path: /v1
           pathType: Prefix
           backend:
             serviceName: test
             servicePort: 80
  • :pencil: 現状は Proxy vendors の実装方法で結構違うようです。

IngressClass リソースは、Kubernetes クラスター内の Ingress タイプを指定するために使用されます。Ingress の ingressClassName フィールドに、関連付けたい IngressClass を指定できます。この新しいリソースとフィールドは、非推奨となった kubernetes.io/ingress.class アノテーションに代わるものとして利用されます。

  • :pencil: kubernetes.io/ingress.class は複数の Ingress コントローラーが実行されている場合に、どのコントローラーを使用するかを指定できるアノテーションでした。
  • :pencil: IngressClass の設定例
  apiVersion: networking.k8s.io/v1beta1
  kind: IngressClass
  metadata:
    name: external-lb
  spec:
    controller: example.com/ingress-controller
    parameters:
      apiGroup: k8s.example.com/v1alpha
      kind: IngressParameters
      name: external-lb
  ---
  apiVersion: networking.k8s.io/v1beta1
  kind: Ingress
  metadata:
    name: nginx
  spec:
    ingressClassName: external-lb
    rules:
    - host: nginx.test
      http:
        paths:
        - backend:
            serviceName: nginx
            servicePort: 80

SIG CLI introduces kubectl debug

SIG CLI はとても長い間、デバッグユーティリティの必要性について議論されてきましたが、エフェメラルコンテナ の開発に伴い、kubectl exec 上に構築されたツールで開発者をサポートする方法がより明確になりました。

kubectl debug という非常に有用なコマンドの追加により、開発者はクラスタ内にある Pod のデバッグが簡単になりました。このコマンドは、調査対象の Pod 内に一時的なコンテナを作成し、そのコンテナのコンソールへ接続することで調査対象の Pod を調べることができます。

Kubernetes の Windows CSI サポート(アルファ)の紹介

Kubernetes v1.18 のリリースにともない、CSI Proxy for Windows のアルファバージョンがリリースされました。CSI Proxy for Windows を使用すると 事前に承認しておくことで non-privileged なコンテナで Windows 上の privileged なストレージの操作を実行できます。また CSI Proxy for Windows を利用することで、CSI ドライバーを Windows でサポートできるようになりました。

他にも SIG Storage は v1.18 のリリースで多くの進捗があり、次のストレージ機能が GA となりました。

  • Raw Block のサポート: マウントされたファイルシステムだけでなく、コンテナー内のブロックデバイスとしてボリュームを表示できるようになりました。
  • ボリュームの複製: CSI 経由の Kubernetes API を使用し、PersistentVolumeClaim の元となるストレージボリュームを複製します。
  • CSIDriver Kubernetes API オブジェクト: CSI ドライバーの検出を簡素化し、CSI ドライバーが Kubernetes の動作をカスタマイズできるようになりました。

SIG Storage は、Kubernetes v1.18 でアルファとして次の新しいストレージ機能も導入しています。

  • Windows CSI のサポート: CSI Proxy を利用して、Windows 上でコンテナー化された CSI ノードプラグインを有効にする
  • ボリューム所有権の OnRootMismatch オプション: fsGroupChangePolicy に OnRootMismatch ポリシーを利用すると、所有権の変更を必要とするたくさんのディレクトリとファイルを持つボリュームのマウント時間が短くなります。
    • :pencil: fsGroupChangePolicy に Always を設定すると現在の動作が維持されます。

その他の注目すべき機能

SIG Network

SIG Network では、新しい CI ジョブでテストカバレッジを大幅に増やし、IPv6 がベータになりました。

NodeLocal DNSCache は v1.18 で GA となりました。NodeLocal DNSCache は dnsCache ポッドを DaemonSet として実行し、ClusterDNS のパフォーマンスと信頼性を向上させるアドオンです。#1351

既知の問題点と重大なアップグレードに関する通達

SIG (Special Interest Group) 毎の変更点

21
10
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
21
10