昨今、OSSを製品からコンパイルして使うことは少なくなってきましたが、Kubernetesのソースを改変したりデバッグしたりしてみたかったので、コンパイルしてみました。
コンパイルって結構面倒なイメージですが、KubernetesのコンパイルはDockerを利用してコンパイルするためのスクリプトが用意されています。つまりDockerが使える環境なら、スクリプトを実行するだけです。
※ Dockerのインストールはここでは割愛します。
まずは、ソースコードをcloneし、ディレクトリを移動します。
# git clone https://github.com/kubernetes/kubernetes.git # cd kubernetes
コンパイルします。引数にmakeだけを指定するとLinuxのバイナリを生成してくれます。
※ コンパイル環境まで数分かかりました。
# ./build/run.sh make ~ 略 ~ Coverage is disabled. +++ [1029 21:59:25] Placing binaries +++ [1029 22:00:00] Syncing out of container +++ [1029 22:00:00] Stopping any currently running rsyncd container +++ [1029 22:00:00] Starting rsyncd container +++ [1029 22:00:01] Running rsync +++ [1029 22:00:25] Stopping any currently running rsyncd container
バイナリは_outputディレクトリに出力されました。
# ls _output/dockerized/bin/linux/amd64/ apiextensions-apiserver genswaggertypedocs kube-scheduler conversion-gen genyaml kubeadm deepcopy-gen ginkgo kubectl defaulter-gen go-bindata kubelet e2e.test go-runner kubemark e2e_node.test go2make linkcheck gendocs kube-apiserver mounter genkubedocs kube-controller-manager openapi-gen genman kube-proxy
非常に簡単ですね。