Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
28
Help us understand the problem. What is going on with this article?
@ryu-yama

Kubernetesの基本用語

More than 1 year has passed since last update.

Kubernetesの基本用語について図も使用してまとめます。
記載内容は基礎中の基礎になる部分です。

前提

Dockerの使用経験あり、又はどのようなものなのか基本部分は分かっていること。

Kubernetesとは

Kubernetesは、多数のコンテナに対する運用管理作業(コンテナオーケストレーション)を自動化するシステム。
運用管理とは、例えば1つのコンテナにアクセスが集中しないように複数コンテナにアクセスを分配するなど。

Kubernetesの基本概要図

以降、以下の図を元に基本用語を解説します。

kube.png

基本用語

Cluster

ClusterはKubernetesのリソースを管理する集合体のこと。
リソースとは、図にあるようなNodeやPodのことです。

その中のリソースで一番大きな概念がNodeになります。
Clusterは1つのMaster Node複数のNodeから構成されます。

Node

Nodeとはホストのことです。ホストとは、GCPであればCompute Engineのインスタンス、AWSであればEC2のインスタンスになります。

上記の通り、NodeにはMaster NodeとNodeがあります。

Master NodeはKubernetesを管理する以下の管理コンポーネントで構成されています。

  • Kube apierver:KubernetesのAPIを公開する。kubectl(※1)からの操作を受け付ける役割があります。
  • etcd:分散KVS。クラスタのバッキングストアとして使用される。
  • Kube scheduler:コンテナを配置する最適なNodeを選択する。
  • Kube controller manager:リソースを制御する。

尚、GCPのKubernetes(GKE)を使用する場合は、Master Nodeを意識する必要はないです。

Nodeはコンテナ化されたアプリケーションなどを実際に実行するホストになります。

※1 kubectl:クラスタ内のリソースの情報を取得したり操作したりするコマンドラインツール。例えば、クラスタ内のNodeの一覧を取得したりできる。

Pod

Podはコンテナの集合体です。
PodはNodeの中で動作し、1つ以上のコンテナを持っています。
Kubernetesにデプロイする場合は、Pod単位に行います。

Container

Dockerコンテナのことです。

ReplicaSet

図にはないですが、押さえておくべき用語です。

ReplicaSetとは、同一仕様のPodを複数生成する仕組みです。
図で言えば、コンテナA、Bが動作するPodを必要な数(レプリカ数)生成して管理します。

Service

これも図にはないです。

Serviceは、Podにアクセスするための経路を定義します。
Serviceにはいくつか種類があり、以下のようなものがあります。LoadBalancerなんかは有名ですよね。

  • ClusterIP:クラスタ内の内部IPアドレスでServiceを公開可能にする。Pod間のアクセスをServiceを介して可能にする。
  • NodePort:基本はClusterIPと同じ。但し、グローバルにポートを開放する。
  • LoadBalancer:各クラウドで提供されているロードバランサーと連携する。
  • ExternalName:クラスタ内から外部ホストに接続する時の名前解決を可能にする。

Deployment

最後にDeployment。こちらも図にはないです。

DeploymentはReplicaSetの上位リソースになり、ReplicaSetを管理します。
ReplicaSetがPodを管理・操作するのと同様に、ReplicaSetはDeploymentに管理・操作されます。

関係としては以下のようになります。
Deployment → ReplicaSet → Pod

DeploymentはReplicaSetの新しいバージョンのリリースを可能とし、世代管理も可能にします。
世代管理しているので、前のバージョンに戻すことができます(ロールバック)。
この仕組があるので、リリースしたものの問題があったため、元に戻したい場合に簡単に戻せるようになります。

まとめ

まだまだ知っておくべき用語はあるのですが、最低限押さえておくべき用語について説明を書きました。
私自身もKubernetesは触り始めたばかりなので、必要に応じて追記して行けたらと考えています。

28
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ryu-yama
フリーランスのSE、WEBエンジニアです。 最近よく使う技術はRuby on Rails、Go、Vue、Docker。GCPを少々。 ブロックチェーン学習中。
from-to
ふるさと開拓サービス「flato」の開発・運用をしています。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
28
Help us understand the problem. What is going on with this article?