概要
自宅のサーバーで提供しているサービスをKubernetesで管理していたのですが、仮想マシンを作成してそれで提供するように変更しました。
ここでは、個人がKubernetesを使ってみて感じたこと、なぜKubernetesの利用をやめたのかを書いていきます。
Kubernetesを使っていた理由
最初に、Kubernetesを使っていた理由について述べていきます。
KubernetesはDockerに代表されるようなコンテナ技術を使ってサービスを提供します。つまりコンテナ技術の利点を享受できるということです。コンテナがどのようなものかは、ここでは書きませんが仮想マシンよりも起動が早く、環境を使い捨てしやすいという利点があるとされます。
Kubernetesは、コンテナ技術単体では難しい可用性や冗長性などを向上させて、コンテナを利用できます。私は、この部分に魅力を感じてKubernetesを使い始めました。これは仮想マシンでは実現が難しい部分を解決することができるとも考えていました。
Kubernetesのつらいところ
ここからは、私がKubernetesを使っていてつらいと思っていたところを述べていきます。
一番つらいと思っているところは、Kubernetesの管理です。例えばKubernetesの更新があります。私はなるべくKuberenetsの管理で直接コマンドを打ちたくないので、Rancherという無料で利用できるソフトウェアを利用していたのですが、更新がうまくいくときもあれば、うまくいかないというときもあり、とても対応に苦労しました。特に苦労したものとしては、Rancherが内部で使用しているSSL証明書の有効期限が切れたため、通信がうまくいかないということがあったのですが、これは解決方法がよく分からないまま、色々といじっていたら問題が解決していました。よくわからないまま問題が解決していたというのが怖いです。他にも、コンテナ間で通信ができないという問題も、何度か発生しました。
次につらいと思っているところは、Kubernetesの情報が少ないということです。上記の問題の解決にも関わるのですが、そもそも情報がほとんどなく、調べても問題の解決が難しいです。
Kubernetesのよいところ
つらいことも多いですが、よかったところもあります。
特に、負荷に応じたコンテナを増減やKubernetesのノードの障害が発生した時に別のノードでコンテナが起動する冗長性などの処理はとても便利で、仮想マシンなどの従来の方法では、このような処理を実現するのが難しいので、とても重宝していました。
他にも、イメージのアップデートなどでコンテナの更新をしたいときにも、kubectlコマンドを用いてリモートで変更可能というのも便利で、よくCI/CDと組み合わせて使っていました。
なぜやめたのか
ここからは、Kubernetesをやめた理由を書いていきます。
一番のやめた理由は、KubernetesのつらいところがKubernetesのよいところを上回ったためです。もうKubernetesを管理し続けるのが辛くなってきました。
さらに、Kubernetesはたくさんのサービスを動かすのに向いているのですが、最近動かしていたサービスの整理をして、ほとんどのサービスを削除してしまったということがあります。これでは、Kubernetesを利用するメリットがあまりありません。
ちなみにKubernetesをやめたあとにどうしたのかというと、動かしたいサービスの量が少ないため外部のVPSを借りてそこで動かすことにしました。
さいごに
Kubernetesを否定するような内容ばかりになってしまいましたが、Kubernetesは悪いものと私は思っていません。適材適所だと思っています。例えば、クラウドサービスなどでKubernetesの管理を任せることができ、たくさんのサービスや複雑な連携を必要とするサービスを公開したいときにはKubernetesは便利だと思います。
また、Kubernetesの勉強ということであれば、実際にKubernetesを動かしてみるというのも悪い選択肢とはいえないでしょう。
みなさんのKubernetes利用の参考になれば幸いです。