コンテナ・クラウド基盤

Kubernetesとはできること・できないこと・導入の判断基準

Kubernetesとは、コンテナ化されたアプリを管理するオープンソースの基盤です。自己修復・スケーリング・ロールアウトなどの機能と、提供しないもの、導入を検討する判断基準を整理します。

公的機関・公式資料などの一次情報と照合して作成しています。このサイトについて

Kubernetesとは

Kubernetes(クバネティス、略して K8s)とは、コンテナ化されたアプリケーションやサービスを管理するための、オープンソースのプラットフォームです。公式ドキュメントでは、宣言的な構成管理と自動化を促進し、持ち運びやすく拡張しやすいものとされています。名称はギリシャ語で操舵手を意味し、K と s の間に8文字あるため、K8s と略されます。公式の説明では、Google が2014年にオープンソース化したものとされています。

Docker のようなコンテナ技術で、アプリを動かす部品を1つずつ包んだあと、多数のコンテナを、複数のサーバーにわたって、止めずに運用し続ける課題が出てきます。その課題を扱うのが Kubernetes です。コンテナ1〜2個を動かす段階では必要ありませんが、規模が大きくなると、効果が出やすくなります。

基本(できること・できないこと)

公式ドキュメントが挙げる主な機能を整理します。

機能 内容
サービスディスカバリと負荷分散 コンテナをDNS名やIPで公開し、負荷が高いときは自動で分散する
自動ロールアウトとロールバック 新しい版への切り替えを、制御された速度で行い、問題があれば戻す
自動ビンパッキング 必要なCPUやメモリを宣言すると、適切なサーバーに配置する
自己修復 失敗したコンテナの再起動、応答しないコンテナの置き換え
機密情報と設定の管理 パスワードやトークンなどを管理し、イメージを作り直さずに更新する
水平スケーリング 負荷に応じて、コンテナの数を増減する

一方で、公式ドキュメントは、Kubernetes が「何でも入りの PaaS」ではないことも明記しています。次のものは、Kubernetes 自体では提供されません。

提供されないもの 補足
アプリのソースコードのビルドと配置 別のCI/CDの仕組みが必要
ミドルウェア、データベース、キャッシュ 別途用意する
ログ、監視、アラート 別のツールを組み合わせる
機械の構成管理・保守の統合システム 別途用意する

つまり、Kubernetes は「部品を並べる土台」であり、周辺のツールを自分で組み合わせる必要があります。

Kubernetesの具体例

導入を検討する状況の目安です。

状況 検討の方向性
コンテナが数個で、1台のサーバーで足りる Docker Compose など、より簡単な方法
複数のサーバーで、止めずに更新したい Kubernetes を検討
負荷の変動が大きく、自動で増減させたい Kubernetes のスケーリングを検討
専任の運用担当者がいない クラウドのマネージドサービスを検討
小さなチームで、学習コストを抑えたい まず簡単な方法で始める

3つのサービスを、それぞれ2個ずつ動かすなら、コンテナは合計6個です。この規模なら、手作業や簡単なツールでも管理できますが、サービスが30個、コンテナが数百個になると、手作業では更新や障害対応が追いつきません。このような規模で、自動化の価値が出ます。ただし、運用の知識の習得と、構成の保守という負担も伴います。

Kubernetesの実践ステップ

  1. 現在のアプリの規模と、止められない度合い(可用性の要件)を整理する。
  2. コンテナの基本(Docker など)を、先に理解する。
  3. Kubernetes が必要か、より簡単な方法で足りるかを比べる。
  4. 導入するなら、クラウドのマネージドサービスと、自前の構築のどちらにするか決める。
  5. 小さなアプリで試し、デプロイ、更新、障害時の動きを確認する。
  6. 監視、ログ、バックアップの仕組みを、別途整える。
  7. 運用の担当者と、学習の計画を決める。

Kubernetesの注意点

  • 学習コストが大きいです。基本の概念が多く、運用には専門の知識が必要です。
  • 設定の誤りで、障害や情報漏えいが起きる可能性があります。権限と、ネットワークの設定には注意します。
  • ログ、監視、データベースなどは別に用意する必要があります。公式ドキュメントが示すとおり、Kubernetes 単体では完結しません。
  • クラウドのマネージドサービスは、費用と、責任の分担が、サービスごとに異なります。公式の説明で確認します。
  • 小規模なシステムでは、構成が過剰になり、かえって運用が重くなることがあります。

Kubernetesでよくあるミス

  • 流行を理由に導入し、運用の担当者がいない。
  • コンテナの基本を理解しないまま、Kubernetes から始める。
  • 監視やログを後回しにして、障害の原因が分からない。
  • 小規模なアプリに、大がかりな構成を作る。

Kubernetesのチェックリスト

  • 本当に Kubernetes が必要な規模か、検討したか。
  • コンテナの基本を理解しているか。
  • 運用の担当者と、学習の計画があるか。
  • 監視、ログ、バックアップの計画があるか。
  • マネージドか自前かを、費用と責任の面で比べたか。

KubernetesのFAQ(よくある質問)

Q. Docker と Kubernetes の違いは何ですか。
A. Docker はコンテナを作って動かす技術、Kubernetes は多数のコンテナを、複数のサーバーにわたって管理する仕組みです。役割が違い、併用されます。

Q. 初心者が学ぶ順番はありますか。
A. コンテナ(Docker)の基本、次に Docker Compose、そのあとで Kubernetes という順が、無理が少ないです。

Q. 小さなWebサイトにも必要ですか。
A. 多くの場合は不要です。規模と、止められない度合いで判断します。

筆者の見解(Kubernetes)

Kubernetes は、できることの多さに目を奪われがちですが、導入の判断で最も大切なのは、運用する人を確保できるかだと考えます。強力な仕組みは、運用の知識がないと、むしろ障害の原因になりやすいからです。私見では、まず簡単な方法で足りるかを検証し、規模や可用性の要件が明確に必要としたときに、はじめて導入を検討するのが、遠回りに見えて堅実です。

Kubernetesの関連項目

出典(一次情報)

本記事は一般的な情報の提供を目的としています。SaaS・ツールの機能・料金・無料枠・仕様は頻繁に更新されるため、最新の内容は各社の公式ページでご確認ください。契約・法務・セキュリティに関する判断は、専門家や社内の担当部門にご相談ください。「筆者の見解」は一つの考え方です。