Ederor

コンテナ管理のデファクトスタンダード Kubernetes とは

コンテナ管理のデファクトスタンダード Kubernetes とは

Kubernetesをご存知でしょうか。Kubernetesは、コンテナを管理するためのオープンソースオーケストレーションシステムです。近年、特に注目されている技術の一つですので、ぜひ最後まで読んでみてください。

  • Kubernetesとは
  • Kubernetesのアーキテクチャ
  • Kubernetesを使用するメリット
  • まとめ

Kubernetesとは

Kubernetesは、ギリシャ語で操縦士やパイロットという意味を持ち、「クバネティス」や「クーベネティス」と読みます。

また、Kubernetesという表記は、長く綴りを間違いやすいため、K8sと略されることもあります。

K8sの役割を一言で表すと、Dockerをはじめとするコンテナホストのクラスタ管理を自動化するシステムです。

通常、Dockerコンテナは、一台のホストノード上で稼働しており、同一ホストノード内のコンテナ同士では通信が可能ですが、別のホストノードとの通信にはネットワークの設定が不可欠で、ホストノード間の連携が煩雑になっていました。

そのため、コンテナ数が増えた場合などに容易にスケールアウトできず、この点は運用環境での課題とされてきていました。

K8sでは、複数のホストで構成されている環境をクラスターとして処理し、コンテナ数が増えてリソースが不足した場合でも、ノードを簡単に増やしてスケールアウトすることが可能になっています。

Kubernetesのアーキテクチャ

K8sを実現するためのアーキテクチャとしては、マスターサーバーとノードサーバーの大きく分けて2種類のコンポーネントに分けることができます。

マスターサーバー

K8sでは、稼働しているコンテナへの操作は、全てマスターサーバー上で稼働している「kube API サーバー」を経由する必要があります。

「kube API サーバー」は、受け付けた命令を元にノードサーバー上の「kubelet」を通じてコンテナの管理をしています。

ノードサーバー

ノードサーバーでは、実際にコンテナが稼働しています。

各ノードサーバー上には、kubeletが配置されており、マスターサーバーからの命令を受けて、コンテナの作成や削除、更新などの動作を行います。

管理コマンド

管理者がK8sへ命令を実行するときには、「kube APIサーバー」に対して、「kubelet」コマンドを実行する必要があります。

K8sで管理する最小単位のPodなどのリソースを作成するときには、マニュフェストと呼ばれるYAML形式のファイルを使用して、「kube APIサーバー」へ指示を送ります。

Kubernetesを使用するメリット

K8sを使用することで、様々なメリットを享受することができます。

スケールアウトが容易

K8sでは、複数台の物理ノードを使って構成されている環境を自動でまとめて管理することが可能です。

そのため、コンテナ数が増えてノードのリソースが不足したときにも、ノードのを増やしたりコンテナの配置を変えたりすることが容易にできます。

システムのローリングアップデート

システムを無停止でバージョンアップするローリングアップデートですが、K8sを使用することで、コンテナのアップデートを自動かつ容易に実行することが可能です。

K8sでは、コンテナのアップデートを行うと、一部のコンテナから順番に更新したものと置き換えるようにアップデートを行っていくため、システムを止めることなくアップデートを自動で実行することができます。

障害に自動で対応

K8sでは、コンテナの数などをあるべき姿として設定することができます。

例えば、3つのコンテナが常に稼働しているように設定した場合、1つのコンテナが障害などにより稼働できなくなった場合は、マスターサーバーでそれを検知して、新しいコンテナを自動で生成します。

これにより、障害などが発生した場合にも、人の手を介することなく、自動でサービスの品質を下げることなく運用することが可能になります。

まとめ

いかがだったでしょうか?

K8sは、ネットワークやサーバー、コンテナなど様々な分野の技術を使って実現されています。

そのため、使用するには幅広い知識が必要とされ、新しい技術であることもあり、まだまだ運用できる技術者は少ないのが現状です。

逆に、K8sを扱える技術者になれば、希少価値となりますので、ぜひ勉強してみてください。

Leave A Reply

*
*
* (公開されません)

Share / Subscribe
Facebook Likes
Tweets
Hatena Bookmarks
Pinterest
Pocket
Evernote
Feedly
Send to LINE
03-6869-9610
UA-177436415-1