LoginSignup
8
2

More than 5 years have passed since last update.

Kubernetes 1.13: 新機能 (New features)

Last updated at Posted at 2018-12-21

はじめに

このエントリは、Kubernetes 1.13 の CHANGELOG からKubernetes 1.13: 主な変更点 (Major Themes) についてまとめています。翻訳に合わせて補足を追記しています。その他の内容は次のリンク先を参照してください。

新機能 (New features)

New Features

  • kubelet: NodeLease 新機能が有効の場合は、kubelet は Node のステータスを直前の報告が存在しないまたは変更があるときのみ送るようになりました。 (#69753, @wangzhen127)
    • :pencil: NodeLease は v1.12 で追加された API サーバの負荷対策に Node のハートビートの部分のみを切り出した機能ですね
  • vSphereVolume は Raw Block Volume Support を実装しました (#68761, @fanzhangio)
  • CRD の multi-version Schema でも Subresource, AdditionalPrintColumns がサポートされました。v1.13 より以前に additionalPrinterColumns を設定していた場合はデフォルトで top-level フィールドに設定されます。各バージョン毎に additionalPrinterColumns を設定するように変更する場合は top-level additionalPrinterColumns のフィールドに null を指定する必要があります。
  • CSIDRIverRegistry または CSINodeInfo 機能が有効の場合に CSI CRD を自動的にインストールするアドオンが追加されました。(#70193, @saad-ali)
  • kube-apiserver のような system:masters の無制限アクセスを許可できるようになりました (#70671, @deads2k)
    • :pencil: パフォーマンス向上のために無制限のグループを指定できるようにしたようです
  • Windows CNI プラグインのために DNS の機能を指定できるようになりました (#67435, @feiskyer)
    • :pencil: Windows では Pod の DNSPolicy が無視されていた問題があるようで、それの対策として追加されたようです
  • kube-apiserver: --audit-webhook-version--audit-log-version のフラグのデフォルト値が audit.k8s.io/v1 に変更になりました (#70476, @charrywanganthony)
    • :pencil: デフォルト値が audit.k8s.io/v1beta1 から audit.k8s.io/v1 に変更になったようです
  • kubeadm: API Server の設定に timeoutForControlPlane オプションが追加されました。これにより Control Plane が立ち上がるまでのタイムアウトの時間をコントロールできるようになりました。デフォルトは 4 分です。(#70480, @rosti)
    • :pencil: これまでは、コントロールプレーンのタイムアウトが4分に固定されていたため、ユーザーは変更できませんでしたが、ユーザがこのタイムアウト値を変更できるようになったようです
  • audience の指定がなかった場合 --api-audiences のデフォルト値が --service-account-issuer に指定した値となりました (#70308, @mikedanese)
  • describe コマンドで Projected Volume の表示がサポートされました (#70158, @WanLinghao)
  • kubeadm で新たな control plane Node を追加するときに新たな stacked etcd のメンバーを自動的に作成するようになりました (外部 etcd を除く) (#69486, @fabriziopandini)
  • kubectl describe node で ephemeral-storage の利用率が表示されるようになりました (#70268, @Pingan2017)
  • Docker 以外の CRI ランタイムのサポートのために Debian パッケージに br_netfilter と ip_forward を有効にする設定が追加されました (#70152, @ashwanikhemani)
  • よく利用される AWS リージョンのリストに、p-northeast-3 と eu-west-3 のリージョンを追加しました (#70252, @nckturner)
  • kubeadm: CPU のコア数を確認する事前チェックが実装されました (#70048, @bart0sh)
  • kube-up で CoreDNS がデフォルトの DNS サーバになりました (#69883, @chrisohaver)
  • kubectl cp でコピーする際に所有者と権限を保持する機能を無効化するオプションを追加しました(#69573, @bjhaid)
    • :pencil: --no-preserve でできるようです
  • Azure file plugin で Azure premium file をサポートしました (#69718, @andyzhangx)
    • :pencil: ChangeLog に乗っているの文章がピックアップミスされていて、別のフィールドの内容が ChangeLog に書かれている :cry: (この文は本来の内容を訳しています)
  • TaintBasedEvictions 新機能がベータに移行されました (#69824, @Huang-Wei)
  • client-go/dynamic/fake パッケージで JSON Patch をサポートしました (#69330, @vaikas-google)
  • dry-run がベータとなりデフォルトで有効になりました (#69644, @apelisse)
  • kubectl get priorityclass でデフォルトの表示カラムが設定されました (#69431, @Huang-Wei)
    • :pencil: Priority の具体的な値などが表示されるようになりました
  • e2e テストを実行するための新たなベースコンテナイメージが追加されました (#69368, @dims)
  • LC_ALLLC_MESSAGES の環境変数は LANG を変更しないで kubectl に必要なロケールを設定するために使うことができるようになりました (#69500, @m1kola)
  • NodeLifecycleController: Node の Lease 更新は、従来の NodeStatus 更新に加えて、ノードからのハートビート信号として扱われるように変更されました(#69241, @wangzhen127)
    • :pencil: NodeLifecycleController の判定として Lease オブジェクトの更新もハートビート扱いになったということのようです
  • Informer と Lister が動的なクライアントに対応しました (#69308, @p0lyn0mial)
    • :pencil: 今までは静的なクライアントのみの対応でしたが、GC コントローラで CRD で作成されたリソースのウォッチなどを行うために動的なクライアントでリソースをウォッチできるようになるようです
  • Kubernetes 内部で利用されている etcd client が v3.3 にアップグレードされました (#69322, @jpbetz)
  • kubectl port-forward で名前付きポートを利用できるようになりました (#69477, @m1kola)
    • :pencil: 名前付きポートというのは Pod のマニフェスト上で定義されたポートの名前です
  • kubectl wait の wait の条件指定に --for condition=available=false といった指定で true 以外の値を指定できるようになりました (#69295, @deads2k)
  • defaultbackend のイメージが 1.5 にアップデートされました。 (#69120, @aledbf)
    • :pencil: defaultbackend は Ingress のフォワード先がない場合に 404 ページをレンダリングするバックエンドです
    • :pencil: 1.5 で /metrics で公開されていたメトリクスが 80 ポートで公開されなくなりました
  • Kubernetes Dashboard のバージョンが v1.10.0 にアップデートされました (#68450, @jeefy)
  • kube-controller-manager と kube-scheduler の Pod のマニフェストの requests.cpu を環境変数から設定できるようにしました (#68823, @loburm)
  • PodSecurityPolicy オブジェクトは fsGroupsupplementalGroups オプションの MayRunAs ルールをサポートするようになりました。 これにより、 MustRunAs のようにデフォルトの GID を強制することなく、ポッド/コンテナに対する許可された GID の範囲を指定することができます。 つまり、このようなポリシーが適用されるコンテナは、明示的に指定されていない場合は fsGroupsupplementalGroup オプションの GID を使用しませんが、指定された GID はポリシーに従って GID 範囲に収まる必要があります。 (#65135, @stlaz)
  • Stackdriver Logging Agent のアドオンのイメージが Fluentd v1.2 を利用している 0.6-1.6.0-1 にアップグレードされました。これはナノ秒の精度のタイムスタンプを提供します。 (#70954, @qingling128)
  • BoundServiceAccountTokenVolumes のアルファの機能を有効にしたとき、ServiceAccount のボリュームは Projected Volume として作成され、 kube-api-access のプレフィックスがついた名前となるようになりました (#69848, @mikedanese)
    • :pencil: Proposal は こちらのようで、これを有効にすると以前は Secret リソースに保持されていた ServiceAccount の token が ServiceAccount の /token サブリソースに POST して発行するようになり、Pod 単位で別の token となるようです
  • raw ブロックデバイスのサポートがベータに移行し、デフォルトで有効になりました。これは Pod.spec.containers.volumeDevices と PersistentVolume と PersistentVolumeClaim の volumeMode フィールドからアクセスできます。 (#71167, @msau42)
  • TokenReview は audience 検証をサポートするようになり、その kube-apiserver 以外が発行したトークンを防げるようになりました。(#62692, @mikedanese)
    • :pencil: audience を指定するとその audience 専用の token が発行されるので token の使い回しなどを防げるようになるようです
    • :pencil: API server では audience が指定されていない token は API server が発行した token とみなすようです
  • StatefulSet で kubectl autoscale コマンドがサポートされました (#71103, @Pingan2017)
  • Container Storage Interface (CSI) が v1.13 から GA になりました。この動きの一環として、 Kubernetes は CSI v1.0.0 をサポートし、CSI 0.3 およびそれ以前のリリースのサポートを廃止しました。 以前の CSI ドライバは、Kubernetes 1.15+ で動作するためには、CSI 1.0 にアップデートし、新しい kubelet プラグイン登録ディレクトリに移動する必要があります。 (#71020, @saad-ali)
  • kubeadm init phase certskubeadm alpha certs renew で作成される証明書の代わりに CSR を作成するオプションを追加しました (#70809, @liztio)
  • kubelet にノード上のコンテナによって使用されるデバイスの情報を提供する grpc サービスを追加しました。 (#70508, @dashpole)
    • :pencil: これは、デバイスとコンテナを相関させる必要がある監視エージェントのサポートのために追加されたようです。デバイスIDとコンテナ、Podなどが紐付いた情報が取得できるようです。
  • AuditSink オブジェクトによって監査 Webhook の設定を可能にする DynamicAuditing 機能が追加されました。(#67257, @pbarker)
  • kube-apiserver の /healthz にオプショナルなパラメータが追加されました。このパラメータで一部のヘルスチェックを無効化できます
    • :pencil: kube-apiserver のヘルスチェックから etcd のチェックを無効化することを目的として追加されたようです。 readinessProbe は /healthz で livenessProbe は/healthz?exclude=etcd にするとよさそうです。
  • Node に DNS キャッシュを動作させるようにしました。これはデフォルトでは無効となっており、KUBE_ENABLE_NODELOCAL_DNS=true を設定すると有効になります
  • kubectl describekubectl get pod -o wide で readiness gates の内容が表示されるようになりました (#70775, @freehan)
  • kubectl get deployment/statefulset で Ready のカラムが表示されるようになりました (#70466, @Pingan2017)
  • kubelet にコンテナのログサイズを出力する新たなメトリクス kubelet_container_log_size_bytes が追加されました (#70749, @brancz)
  • NodeLifecycleController: Node Lease 機能を有効にした場合、対応する Node が削除されると、Node Lease オブジェクトも削除されます (#70034, @wangzhen127)
  • GCERegionalPersistentDisk が GA になりました (#70716, @jingxu97)
  • kube-scheduler に 10259 のセキュアポートが追加され、デフォルトで有効になりました。10251 の非セキュアポートは非推奨になりました。明示的にフラグを設定しない場合は自己署名の証明書をメモリ上に作成して起動します。 (#69663, @sttts)
8
2
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
8
2