😽

Lesson8. Kubernetes の概要

2022/11/06に公開

学ぶ前の知識レベル

  • コンテナを便利に使うための何からしい
  • AWSでコンテナをどうにかするツールとしてECSとEKSがあり、EKSのKはKubernetesの意味らしい

学んだこと

概要

  • Kubernetesは、コンテナをオーケストレーションするためのツール
  • Googleが開発して、2014年にオープンソース化された
  • コンテナをクラスタ化し、可用性・災害復旧性[1]・スケーラビリティを高める

Kubernetes用語とアーキテクチャ

K8s

  • Kubernetes のKとsの間にある8文字を略して、K8Sと表記することがある

POD

  • Kubernetes を構成する最小単位
  • ひとつのPODは、1つまたは複数のコンテナを持つ
  • ひとつのPODがひとつのアプリケーションを構成することが多いらしい

Kubernetesの最小構成単位であるPOD

Worker node

  • ひとつの worker node は、1つまたは複数のPODを持つ
  • ECSにおける container instance (=EC2) に相当するコンポーネント
  • 各 worker node は kubelet というアプリケーションを持っていて、そいつを使って他のworker node とやりとりをする(ECSにおけるECS Agent 的なやつか)

worker node

Master node

  • Worker node を束ね、以下の機能を提供
    • APIサーバー:ユーザーからのKubernetesへのエントリーポイントとなるUI、API、CLIを提供
    • Controller Manager:クラスタの中で何が起きているかを監視・トラックする
    • Scheduler:各 worker node の負荷に基づいて、次のPODをどの worker node に置くかを決める
    • etcd:Master node のスナップショットをバックアップする
  • Master node が死ぬと kubernetes 全体が使えなくなるので、基本 Master node は冗長構成をとる

master node

全体のアーキテクチャ

全体のアーキテクチャをざっくりまとめるとこんな感じ。
全体アーキテクチャ

動く仕組み

  • Master node の中にある設定ファイル(JSONまたはYAML形式で記述)の中に、存在するべきPODと、各PODがどれだけのコンテナを持っているべきかが記述されている
  • 各PODにIPアドレスが割り振られており、これを利用してPOD同士のやりとりが可能
  • コンテナが死んだら、PODの中のコンテナを生き返らせるだけだが、PODが死ぬと、PODが生き返るのと同時に新しいIPアドレスが割り振られる
  • そうなると、そこで人間の介入が必要になってとっても不便
  • そこで service と呼ばれるサービス(なんだそりゃ)を使う
  • service を使うと、PODが死んでも service は生きているのでIPを気にせず他のPODとのやりとりを続行できる

学ぶために使ったリソース

公式ドキュメント(英語)

https://kubernetes.io/docs/home/

Youtube(英語)

https://youtu.be/VnvRFRk_51k
👆スーパーおすすめ

まだわかっていないこと

まだ完全に理解しただけの状態なので、何がわかっていないのかもわかっていない。

ひとまず概要のお勉強はここまで!

脚注
  1. DR(Disaster Recovery)の日本語ってこれでいいのだろうか ↩︎

Discussion