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 を構成する要素はまだまだありますが、上記にあげた内容を基礎としました。