Skip to content

Instantly share code, notes, and snippets.

@takatoshiono
Last active October 9, 2018 15:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save takatoshiono/510b25e1bf5446c4be86e2e9e2afadb2 to your computer and use it in GitHub Desktop.
Save takatoshiono/510b25e1bf5446c4be86e2e9e2afadb2 to your computer and use it in GitHub Desktop.

入門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内のアプリケーションがリクエストを受け付けられるか判断する
    • 失敗したらリクエストが割り振られない

Kubernatesクラスタのコンポーネント

master nodeで動く

  • etcd
    • kubernetesのオブジェクトを保存するkvs
    • 特徴的はRAFT algorithm, optimistic concurrency, watch protocol
  • api server
    • kubernetes clusterへのアクセスは全てapiを経由する
  • scheduler
    • podなどのオブジェクトを作る
  • controller manager
    • 調整ループを回してあるべき姿を保つ

全てのnodeで動く

  • kubelet
    • api servcerとやりとりしてnode上のコンテナ管理をする
  • kube proxy
    • nodeのネットワークをごにょる

scheduled components

  • kubedns
  • heapster
  • add-ons

参考

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment