Kubernetes基本用語解説 Pod, ReplicaSet, Service, Deployment




Kubernetes用語解説

Kubernetesの学習をはじめると独自用語の意味がわからず理解に時間がかかってしまうので超初心者向けにざっくりどんなものなのかワードの解説をしたいと思います。

Cluster

Kubernetesのclusterは1つ以上のMasterと複数のNodeというワーカーマシンで構成する集まりのことを指します。Kubernetesを使うには一番最初にclusterの作成が必要になります。

MasterはKubernetes API サーバー、スケジューラ、コアリソース コントローラといった Kubernetes コントロール プレーンのプロセスを実行できます。

Nodeはコンテナ化されたアプリケーションや他のワークロードを実行するワーカーマシンです。個々のマシンはGCPの場合、 Compute Engine VM インスタンスであり、これらのインスタンスは、クラスタを作成すると Kubernetes Engine によって自動的に作成されます。

Pod

PodとはKubernetesクラスタ上でデプロイできる最小単位のことで、Pod内にコンテナを起動します。コンテナは複数起動することができます。

Kubernetesクラスタは複数のNodeで構成されますが、PodはこのNodeの中で動作します。

ReplicaSet

ReplicaSetとはPodを作成する元となるPodTemplateを使って、必要なPod数(レプリカ数)を管理する仕組みです。

Pod数が指定のレプリカ数よりも少ない場合はPodを自動で追加し、Podが多い場合も自動で減らしてくれます。この仕組でPodはセルフヒーリングを実現しています。

Service

Serviceを簡単に表すと、Podにアクセスするための受け口をつくるものです。この受け口には種類があり、ClusterIP、NodePort、LoadBalancer、ExternalNameがあります。

Deployment

DeploymentはReplicaSetの新しいバージョンをリリースするための仕組みです。ReplicaSetがPodを管理するように、DeploymentはReplicaSetを管理しています。

Deploymentを使った新しいバージョンのリリース方法にはRecreateとRollingUpdateの2種類があります。

Recreateは既存のPodを一度全て削除し、新しいバージョンのPodを立ち上げる方法です。一度全て削除してしまうのでダウンタイムが生じてしまいます。

RollingUpdateは古いPodと新しいPodを少しずつ入れ替えながらリリースを行う方法です。RollingUpdateでは新旧バージョンのPodが共存するためそれでも問題ないようにプログラムを実装する必要があります。

おすすめ書籍

Dockerの使い方から説明されているので初心者の方も安心して学べる書籍です。

Kubernetesに関してはPod, Service, Deploymentなどを順を追って説明し、実際に動かすところまでを解説しているので非常に実践的な内容となっています。

これからKuebernetesを使ってサービスを開発してみたい方にとって最初のよい手助けとなると思います。是非読んでみてください。

The following two tabs change content below.

髙妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 2018年仮想通貨のスマホウォレットを提供するGinco Incにブロックチェーンエンジニアとして入社。






よく読まれている関連記事はこちら




コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です