orangeitems’s diary

クラウドで働くインフラエンジニアの日々の感想です(ほぼ毎日更新)。

現段階のKubernetesに望むこと

f:id:orangeitems:20191028151420j:plain

 

デスクトップにもKubernetesの波が来る

Docker Desktopは、コンテナをはじめて扱うときにほとんどの人が選ぶ個人端末上のコンテナ動作環境だと思います。

一方で、本番環境でコンテナを動かすときは、パブリッククラウド上のマネージドKubernetesを利用することが最近はトレンドとなっていると思います。

・AWSならAmazon EKS(Amazon Elastic Kubernetes Service)
・AzureならAKS(Azure Kubernetes Service)
・GoogleならGKE(Google Kubernetes Engine)
・IBM CloudならIKS(IBM Cloud Kubernetes Service)
・Oracle CloudならOKE(Oracle Cloud Ingrastructure Container Engine for Kubernetes)

全部Kubernetesを使いたいだけなのに、各社で名前が違うのでウーンと言ったところです。なかなかおぼえられない。

 

で、デスクトップにもKubernetesがいよいよ本格的に来てくれそうです。

 

www.publickey1.jp

同社はそのWSL 2対応Docker DesktopにおいてKubernetes対応などの機能強化を進めていることを、同社のブログ記事「Introducing the Docker Desktop WSL 2 Backend」で表明しました。

 

なお、すでにKubernetesは現行のDocker Desktopで動きます。下記のように1年前から利用できました。

 

qiita.com

3日ほど前、kubernetes on Docker Desktop(mac,windows)がstableになりました。

KUBERNETES IS NOW AVAILABLE IN DOCKER DESKTOP STABLE CHANNEL
個人で勉強するために、GCP登録するのは気がひけるので、ずっとDocker Desktopで使えるのを待ってました。

 

重要なことは、これまでDocker Desktop for WindowsでLinuxコンテナを動かすときはHyper-V上の仮想マシンでLinuxを動かしたうえでコンテナエンジンが動くという状態だったので、デスクトップには重荷だったということです。

WSL2によってLinuxカーネルが超軽量に動作するということで、これを使ってLinuxコンテナやKubernetesが動くということで期待されているのです。

WSL2の概要は以下が詳しいです。

 

www.atmarkit.co.jp

「Hyper-V仮想マシンサービスを使ったLinuxの仮想マシンならば、これまでもあったではないか!」と思われる方もいるかもしれない。だが、この軽量ユーティリティーVMを使ったWSL 2では、仮想マシン環境が起動し、bashがコマンドを受け付けるまで2秒程度という速度で起動できる。

(中略)

また、本物のLinux実行環境であるため、これまで正しく動作できなかったアプリケーション、例えばコンテナシステム(Dockerなど)やユーザーファイルシステム(FUSEなど)も動作させることができる。その上で、現在のWSL 1と同等の機能と使い勝手を実現するという。

 

過去、手元のデスクトップでDocker Desktopを動かしたとき、Hyper-Vで仮想マシンが勝手に動きメモリを占有してくるのでイヤになって使わなかった思い出があるのですが、次期バージョンではこれがなくなるとのことで大変期待しています。

開発者がデスクトップでKubernetesに慣れて、各クラウドのマネージドKubernetesで動かすという流れがスムーズになれば、もっとコンテナを使う人が増えるのではないかと思っています。

 

Kubernetesに望むこと

今のKubernetesって、Microsoftの世界で言うMS-DOSのような段階だと思うんですよね。あの頃はCONFIG.SYSとAUTOEXEC.BAT、そしてコマンドとバッチファイルの世界でした。Windows95が来るまで技術者はコマンドとコンフィグファイルの世界で生きていくと本気で思っていたはずです。

当時、OSをインストールすることすら一苦労で、ドライバファイルを入手したりパラメータを変えたりしてやっと動くのがパソコンの世界でした。今は、OSのインストーラーなんてクリック数回で完了してしまいます。随分ユーザーフレンドリーになったなあと思います。

KubernetesはKubernetes DashBoardというweb UIが、UIの世界ではデファクトスタンダードですが、多分これを使って管理している人は少ないんじゃないかと思います。まだkubectlコマンドを叩いている人の方が多数派ではないかと。

どうもまだkubernetesはコマンドで動かすものだという文化が中心ではないかと思うのです。

Windowsは95で完全にGUI化を行い、昨今のWindowsの地位を確立しました。今やコマンドプロンプトやPowerShellの存在を知らない人がユーザーの大部分だと思います。

別の例を挙げれば、VMwareがあれだけ市場を席捲した理由に、vSphere Clientの出来のよさにあったと思います。コマンドを徹底的に隠ぺいして、GUIからしか操作できなくしたため、ユーザーフレンドリーであることで利用者が爆発的に増え、近年のVMwareの今の地位があると思っています。

Kubernetesもぜひ、コマンドを隠蔽してGUIでユーザーフレンドリーな管理画面を用意してほしいものです。その操作をバッチ化するときにはじめてコマンドを動かすぐらいのほうが今のITの感覚に合っています。

 

概念は分かるが実働がつかみにくい

Kubernetesの構築、運用を一通りやったことはあるのですが、コマンドを全部丸暗記するフリースペースが私の脳にないようです(残念)。

毎回、マニュアルを引いたり、手順書を見たりして思い出すのですが、安定しだすとまた忘れてしまいます(残念)。

GUIで稼働状況の確認から、設定変更まで行うことがもっと洗練され、新機能追加時にはGUIがリフレッシュするような・・。そう、iOS、MacOSやWindows 10のように、分かりやすいインターフェースがあればKubernetesはもっと誰も使いたくなると思います。

yamlファイルもやめてほしい・・。ぜひGUIの中に収めて頂きたい。

 

なお、このニーズについてはVMwareが興味深い動きをしていて、Octantというオープンソースのツールを開発しています。

 

www.infoq.com

 

日本語記事も同時に。

 

qiita.com

 

VMwareは私の気持ちをわかってくれるはず・・・!

使いやすいGUIがKubernetesに振ってくることを期待しています。