0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Kubernetes(k8s)とは 〜Dockerの限界を超えてコンテナを自在に操る〜

Posted at

Kubernetes(k8s)についてまとめ

こんにちは!
インフラを勉強していると、Kubernetesやk8sという単語をよく見かけます。

Dockerのコンテナを管理しているオーケストレーションシステムということは知っていたのですが、正直「Dockerだけでシステム運用できるのでは?」と思っていました。

そこで今回は、これを機にKubernetesについて調べてみました。

Kubernetesの概要

Kubernetesとは一言でいうと、大量のコンテナを自動で管理・制御するプラットフォーム です。

開発者は1台のサーバーにコンテナを立ち上げるだけでなく、複数のサーバー(ノード)にまたがって動くアプリケーションを扱う必要があります。

Kubernetesは、これを自動的に配置・監視・復旧・スケールしてくれます。

dockerだけではダメなの?なぜ必要?

Docker単体でもアプリをコンテナ化し、環境差をなくして動作させることはできます。
しかし、実際の運用環境では次のような課題があります。

1. コンテナの数が増えると管理が煩雑

複数のサーバー上で動くコンテナを手動で管理するのは困難です。
障害が起きた際に、どのノードにどのコンテナが動いているかを把握するのも大変です。

2. 自動復旧ができない

Docker単体では、コンテナが落ちたときに自動的に復旧させる機構がありません。
そのため、運用担当者が手動で再起動する必要があります。

3. 負荷分散が難しい

コンテナが複数ある場合、トラフィックをうまく分散させるには別途ロードバランサーを構築する必要があります。

4. アップデート時にダウンタイムが発生

Dockerコンテナを新しいバージョンに入れ替える際、サービスを止めない工夫をするのは簡単ではありません。

Kubernetesが解決すること

Kubernetesはこれらの問題を自動化・宣言化によって解決します。

自動復旧(Self-Healing)

Pod(コンテナの単位)が落ちた場合でも、Kubernetesが自動的に再スケジュールして復元します。
「3つのPodを常に稼働させたい」とYAMLで宣言すれば、Kubernetesは常にその状態を維持します。
もし1つのPodが落ちても、自動的に再生成してくれます。

負荷分散(Service)

Serviceリソースを利用することで、複数のPodに自動的にトラフィックを分配します。
これにより、ユーザーから見ると1つのIPにアクセスするだけで、裏側では複数のコンテナに均等に負荷が振り分けられます。

ローリングアップデート

Kubernetesはアプリの新バージョンを停止なしで少しずつ置き換えることができます。
これにより、ユーザーへの影響を最小限にしたリリースが可能です。

自動スケーリング

負荷が高くなった場合、Kubernetesは自動的にPod数を増やし、負荷が下がると自動的に減らすことも可能です。
これは Horizontal Pod Autoscaler(HPA) という仕組みで実現されています。

Kubernetesの構成要素

コンポーネント 役割
Pod コンテナの実行単位(1つまたは複数のコンテナを含む)
Node コンテナが動作する物理または仮想マシン
Deployment Podのデプロイ・スケーリングを管理
Service Pod間通信や外部公開を制御
Ingress HTTP/HTTPSルーティングを制御
Namespace 複数のアプリや環境を論理的に分離
ConfigMap / Secret 設定情報や機密情報を管理

まとめ

ここまでまとめて、複数のコンテナを紐つけてくれたり、ロードバランスや復旧を自動で調整してくれているんだなーというイメージをもてました!

が、正直使ってみなきゃなんともなので、今度触ってみようかなと思います!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?