Kubernetes 1.14 新機能徹底解説

Kubernetes 1.14が2019/3/26にリリースされました。

本記事では、公式ドキュメントを読み解きながら、その新機能についてまとめます。

とはいえ、基本的にはBeta→GAのものなので既に使ったことのある機能も多いかもしれません。

「これらの機能が正式サポートされた」ということがポイントです。

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.14.md#114-whats-new

Windows Node

WindowsのNodeをKubernetesクラスターとして組み込めるようになりました。

以前からBetaとしては存在しましたが、今回から正式サポートされるようになり、従来のLinux Nodeに近い形でKubernetesの機能が使用できるようになっています。

注意点としては、

  • サポートされるのはWindows Server 2019
  • サポートされるネットワーク・プラグインはAzure-CNI、OVN-Kubernetes、Flannel

という部分です。

kubectl プラグイン

kubectl の機能を強化するプラグインを導入するための仕組みが正式サポートとなりました。

プラグインの作成方法など、詳しくは公式ドキュメントを参照してください。機会があれば当ブログでも書きたいですね。

https://kubernetes.io/docs/tasks/extend-kubectl/kubectl-plugins/

Local Persistent Volume

Persistent Volumeの種類として「Local」を使用できるようになりました。その名の通り、Podが動作するノードのファイルシステムを使用します。

hostPathと似ているようにも思えますが、local persistent volumeはhostPathとは違い、「マルチノードに対応し、本番環境での使用を想定されている」点が大きく異なります。今後はhostPathではなく、localを積極的に使っていきましょう。

hostPathとlocal pvの違いについては以下が詳しいです。

https://qiita.com/sotoiwa/items/09d2f43a35025e7be782

https://kubernetes.io/blog/2018/04/13/local-persistent-volumes-beta/

PID制限(Beta)

NodeやPod上で動作するプロセス数を制限することができます。

Node全体のPID数を制限するには、以下ドキュメントを参照してください。(pidで検索するとそこにジャンプできます)

https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/

PodごとのPID数を制限するには、NodeにSupportPodPidsLimitというパラメーターを与えることで指定することができそうです。が、ドキュメントが見当たらず・・・

Podに対する優先度の設定

Podに対して優先度(Priority)を作成し、

  • システム上重要なPod(=優先度の高いPod)から順番にScheduleする
  • ノードのリソースが不足する場合、優先度の低いPodを削除する

ことができるようになります。

これも以下のドキュメントにまとまっています。

https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/

PodReadinessGates

Podに spec.readinessGatesを指定することができるようになりました。

Podを作成する際にはReadiness Probeを指定することが多いと思いますが、「Podが準備できているのにIngress/Serviceの反映が終っておらず、実態とは違う」という場合があると思います。

readinessGatesを指定することで、サービスを提供するURLへの接続がReadyになった状態で、PodのステータスをRunningにすることができるようになります。

こちらもドキュメントが見つからなかったので、こちらを参照ください。

https://github.com/kubernetes/enhancements/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md

kubeadmでの証明書自動コピー

Masterとなるノード(Control Planeと言ったりします)をHA構成する際、証明書を自動的にコピーできるようになりました。

これまで手動コピーが必要だったため、HA構成が少し楽になると思います。

これに伴い、HA構成の手順も変更されています。

https://kubernetes.io/docs/setup/independent/high-availability/#common-tasks-after-bootstrapping-control-plane

kubectl join phase コマンド

kubectl join phase コマンドが使用できるようになりました。

kubectl join の各ステップを細かく実行したい場合に使います。

アップデート時の注意

「よっしゃ!早速アップデートしたろ!」と思った場合、以下のKnown IssuesとUrgent Upgrade Notesは必ず確認しましょう。特に本番環境に適用する場合は絶対です。

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.14.md#known-issues

その他

沢山のバグフィックスや機能の微調整が加えられています。

現バージョンのKubernetesで問題を感じていて1.14で修正されている場合は積極的にアップデートを検討しましょう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です