Master
API server /Scheduler / Controller manager
Node
1つまたは複数の Pod を実行するワーカーマシン (VM インスタンスや物理
サーバ)
Kubernetes の主要なコンポーネント
20.
Master のコンポーネント
API Server
→kubectl は API Server を REST API で叩くコマンドツール
Scheduler
→ Pod を Node にスケジュールするコンポーネント
Controller
→ クラスタの状態を常に監視するバックグラウンドプロセス
→ 定義された状態と異なると、それを修正するコンポーネント
etcd
→ 分散 KVS
→ クラスタの全データを格納するデータストア
21.
Node のコンポーネント
kubelet
→ Nodeのエージェント
→ Pod の YAML ファイルに基づいて、定義されたコンテナを実行し、ストレージなどをマウント
し、正常に起動していることを担保
kube-proxy
→ 各 Node で実行するネットワークプロキシ
→ Service の IP アドレスを管理、コネクションフォワーディング
→ userspace, iptables, IPVS を使う 3 つのモードを選択可能
cluster
Service / Ingressをデプロイ
Node Node
cluster
Node Node
L4 LB
cluster
Node Node
Service:
Type:NodePort
Service:
Type:LoadBalancer
Service:
Type:ClusterIP
Client
Client
cluster
Node Node
L7 LB
Ingress
Client
Pod A Pod B Pod A Pod A Pod A Pod A
Pod A Pod B
/app-a/* /app-b/*
38.
Kubernetes の基本的なリソース
Pod
Kubernetes のデプロイ単位。1つまたは複数のコンテナが含まれる
Deployment
定義された Pod 数と稼働中の Pod を等しい状態を実現するリソース
可用性を担保
Service
Pod をクラスタの内部/外部に公開するためのリソース
Ingress
L7 レイヤーで負荷分散するためのリソース