
Kubernetesサービス選定のポイント
kubernetesについて語る前提知識としてコンテナの知識が必要なので、コンテナについて簡単に説明します。
コンテナとは、OS上にコンテナと呼ばれる隔離されたアプリケーション実行環境を作成し、ホスト上であたかも複数のホストが動いているかのような環境を実現するのが、コンテナ型仮想化技術です。
そのコンテナ仮想化技術でよく使われるのがDockerとなります。
本題のKubernetesはネットで調べても「コンテナ自動化の為のプラットフォーム」「コンテナオーケストレーションシステム」のようなとっつきにくい説明がよく出てくると思います。
簡単に言うと、コンテナ運用を自動化してくれるツールと言ったところでしょう。
OSSなので無料で使用でき、運用を自動化してくれるので、運用コスト削減が計れます。
比較的新しい技術で上記の運用コスト削減の観点から注目されていて、導入する企業も増えています。
ちなみに、コンテナオーケストレーションツールはkubernetes以外にもありますが、本記事ではKubernetesのサービス選定のポイントについて解説していこうと思います。
目次
1.Kubernetesの強みと特徴
そもそも、なぜkubernetesのようなOSSが出てきたかと言うと、簡単に言うとコンテナの管理が大変だからです。
筆者もコンテナを使ったマイクロサービスのアプリの開発に携わったことがありますが、そこまで規模が大きいものではなかったですが、コンテナ数は100弱存在したと記憶しています。
運用や保守を行ったことがある方なら聞いただけでゾッとすることでしょう。
そのようなコンテナを使ったアプリが増えてきているので、その管理を統合的かつ自動的いたいという想いがあったことにより、kubernetesなどのコンテナオーケストレーションツールが注目されるようになりました。
代表的な機能としてはコンテナが落ちた際に自動で起動するオートヒーリング機能やステータス監視機能、ローリングアップデート機能、スケーリング機能などが存在します。
なのでコンテナを統語管理かつ、自動運用できるといった点が1番の強みとして挙げられると思います。
2.Kubernetesの種類
kubernetesはOSSなので、VMwareやRedhat、Ciscoなどのベンダーが商用でサービスを出していたり、AWSやAzure、GCPなどと組み合わせて使用するパターンがあり、各ベンダー各クラウドで特徴が異なります。
実際にどのパターンのkubernetesを使用するのかで、構築や運用を委託する場合の会社選定についても大きく変わってくると思われます。
3.Kubernetesの難しさ
そんな便利な機能満載なkubernetesですが、実際に触るとわかりますが、機能が満載な為、かなり複雑です。
podやkubelet等、kubernetesのみで使うサービスがあったり、kibanaやgrafana、Prometheus等のログ収集ツール、監視ツールと組み合わせて使うことが多いので、その辺りの知識も必要になります。
この辺りの知識は使用する際というよりは構築が必要な場合、ネックになる項目と思われます。
特にPrometheusで独自で監視項目設定する場合、promqlという独自の言語で設定が必要となります。
筆者はkubernetesの運用設計の案件に携わったことがありますが、kubernetesの経験者がいなかったので、周りと協力して手探りで作業を進めていました。
1からkubernetesのことを学習しながらの作業でしたので、なかなか厳しかった記憶があります。
※ kibana、grafana、Prometheusも kubernetesと同様にOSSとなります。
4. サービス選定ポイント
これまで解説してきた上記のポイントを踏まえサービス選定ポイントとしては、まず本当に導入できるのか、知識がある人間が社内にいればよいですが、いなければ他の会社に委託する必要があるでしょう。
次にkubernetesと各ベンダーの商用版を使用するのか、各クラウドのどれを使用するのかを決める必要がありますが、各ベンダー各クラウドで特徴が違うのでそれらの違いを洗い出しどのパターンを使用するのか決める必要があります。
最後に、実際に導入する際は導入実績がある会社に委託した方が良いと思われます。
理由としては、上記でも述べましたが、kubernetes自体が複雑で各ベンダー各クラウドのどれを使うのかと言う問題がありますので、使う組み合わせの導入実績がある会社が選定できれば良いでしょう。
5.kubernetesのサービス選定をされるのであれば
kubernetesのサービス選定をされるのであれば「システム開発コンシェルジュ」で是非ご相談いただければと思います。
以下のフォームより開発でご相談いただきたい内容などご相談ください。