※本ページにはプロモーション(広告)が含まれています
多数のコンテナを複数サーバー上で自動配置・スケール・復旧させる運用基盤。通称『K8s』で、大規模システム運用のデファクト標準。
詳しい解説
Kubernetesは、多数のコンテナ(主にDockerコンテナ)を複数サーバーにまたがって配置・スケール・管理するためのオーケストレーションシステムです。元々Googleが社内で使っていた『Borg』という基盤を基に、2014年にオープンソースとして公開されました。名前が長いため、K と s の間に8文字あることから『K8s』と略記されます。
Dockerはコンテナを動かす技術ですが、『100台のサーバーに500個のコンテナを配って、死んだらすぐ復旧、アクセスが増えたら自動で台数を増やす』といった大規模運用はDocker単体では困難です。Kubernetesはこの自動化を担う『上位のレイヤー』にあたります。
主要な概念は、コンテナを包む最小単位の『Pod』、Pod群の設計図である『Deployment』、外部からのアクセス窓口である『Service』、設定を注入する『ConfigMap』『Secret』、そしてこれらを入れる論理的な仕切りである『Namespace』などです。すべてYAMLファイルで宣言的に記述し、`kubectl apply` で適用します。
『宣言的(Declarative)』が設計思想の中核で、ユーザーは『こういう状態であるべき』と書くだけ。Kubernetesが常に現状と差分を監視し、差があれば自動で修復します。Podが落ちれば自動で再起動、サーバーが落ちれば別サーバーへ再配置、という動作が標準で備わっています。
AWS(EKS)・Google Cloud(GKE)・Azure(AKS)などのマネージドサービスで手軽に使え、クラウドネイティブ時代のインフラのデファクトスタンダードになっています。学習コストは高めですが、大規模運用では必須の技術です。
ECサイトで大型セール開始の瞬間、アクセスが普段の100倍に跳ね上がる場面を想像してください。Kubernetesなら『CPU使用率70%を超えたらPod数を増やす』と設定しておけば、秒単位で自動的にサーバーが拡張され、セール終了後は自動で縮小します。サーバーが1台壊れても別のサーバーが即座に引き継ぐため、夜中に人間が起きて対応する必要もなくなります。
別の呼び方
K8s
コンテナオーケストレーション
minto.tech スマホ(Android/iPhone)・PC(Mac/Windows)の便利情報をお届け! 月間アクセス160万PV!スマートフォン、タブレット、パソコン、地デジに関する素朴な疑問や、困ったこと、ノウハウ、コツなどが満載のお助け記事サイトはこちら!