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を使ってサービスを開発してみたい方にとって最初のよい手助けとなると思います。是非読んでみてください。
髙妻智一
最新記事 by 髙妻智一 (全て見る)
- Polkadot(Substrate)のアドレスとトランザクションについて - 2023-03-09
- 【無料公開】「Goで始めるBitcoin」3章 Bitcoinノードとの通信 技術書典8 - 2020-03-08
- エンジニアがゼロから技術ブログを書くための方法をまとめました - 2019-05-25