入門KubernatesとManaging Kubernetesに出てきた用語
これらの用語を自分で説明できるようにならねばならん
- Cluster
- nodeの集まり
- Node
- クラスタを構成する仮想マシン
- クラスタを管理するためのコンテナが動くmasterノードとユーザーが作ったコンテナが動くworkerノードがある
- Pod
- コンテナの集まり
- デプロイの最小単位
- podを構成するコンテナは同じノードで動くことが保証されている
- Container
- Dockerコンテナと同じ
- Service
- あるPodの集まりに他のPodからアクセスできるようにするもの
- Podは動的に増減するので、それを把握してちゃんとアクセスできるようにする
- ClusterIP
- Serviceのtypeの一つ(デフォルト)
- 他のクラスタ内で他のアプリケーションからアクセスできるようにポートを作成する
- インターネットからはアクセスできない
- NodePort
- Serviceのtypeの一つ
- インターネットに公開するポートを作成する
- LoadBalancer
- Serviceのtypeの一つ
- インターネットに公開するためのNetwork Load Balancerを立ち上げる
- Endpoints
- Ingress
- リバースプロキシみたいのを立ち上げる。これはServiceのtypeではない
- デフォルトだとHTTP Load BalancerになるがNginx, Istioなどもあるらしい
- 1つのIngressの下に複数のServiceをぶら下げることが可能
- Deployment
- ReplicaSetを管理する
- コンテナで動いてるソフトウェアを新しいバージョンに更新する(ロールアウト)。あるいは前のバージョンに戻す
- ReplicaSet
- Podを管理する
- Podのレプリカを一定数に保ったり、どのノードで動かすか決めたりする
- DaemonSet
- ReplicaSetと似てるけど、全ノートまたは一部のノードで一つだけPodを動かしたいときに使う
- 例えば全ノードでfluentdを1つずつ動かすなど
- Namespace
- Kubernatesのオブジェクトの集まりを入れるもの
- Label
キー=値
の形式でオブジェクトにメタデータを付与する- ServiceやReplicaSetなどが管理する対象を識別するのにLabelを使っている
- Annotation
- これもメタデータだけど、Labelのようにグループ化を目的としては使われない。よくわからん
- Liveness prove
- コンテナが正常に起動しているか判断する
- 失敗したらコンテナが再起動する
- Readiness prove
- これはServiceが提供する機能
- Pod内のアプリケーションがリクエストを受け付けられるか判断する
- 失敗したらリクエストが割り振られない
- etcd
- kubernetesのオブジェクトを保存するkvs
- 特徴的はRAFT algorithm, optimistic concurrency, watch protocol
- api server
- kubernetes clusterへのアクセスは全てapiを経由する
- scheduler
- podなどのオブジェクトを作る
- controller manager
- 調整ループを回してあるべき姿を保つ
- kubelet
- api servcerとやりとりしてnode上のコンテナ管理をする
- kube proxy
- nodeのネットワークをごにょる
- kubedns
- heapster
- add-ons