Kubernetes を本格的に利用する機会がやってきたので、理解を深めていくための足掛かりとなる情報をまとめてみました。
Kubernetesは、マスターサーバとノードサーバからなるクラスタからなります。
マスターサーバーはREST APIを受け取ることができ、そこから様々な機能が動作していくことになります。 手始めに、公式のページを頼りに主要なコンポーネントとそのソースコードを整理しました。
| name | type | source | 
|---|---|---|
| kube-apiserver | master | cmd, pkg | 
| etcd | master | — | 
| kube-scheduler | master | cmd, pkg | 
| kube-controller-manager | master | cmd | 
| cloud-controller-manager | master | cmd, pkg | 
| kubelet | Node | cmd, pkg | 
| kube-proxy | Node | cmd | 
その他、気になるパッケージやライブラリとして kubectl と client-go を中心に深堀りしていきます。 kubectl は通常ターミナルからKubernetes を操作するコマンドラインインターフェイスです。このコマンドの動きを把握することで何ができるか、又はできないのかつかみやすくなります。
client-go は、公式でも使われているクライアントライブラリです。 kubectl でも使われており、Kubernetes の内部理解を進めてくれます。
| name | type | source | 
|---|---|---|
| kubectl | — | cmd | 
| client-go | — | client | 
ログ周りや監視、サービスアカウントなどKubernetes を構成する要素はまだまだありますが、上記にあげた内容を基礎としました。