はじめに
KubernetesはOSSなので、当然コードの中身を誰でも覗くことができます。最近では、Kubernetes Internalという「KubernetesやKubernetesを使ったソフトウェアの実装や設計、Cloud Native技術について情報交換、交流をするための勉強会」も開催されているようで、とてもためになります。
KubernetesはGo言語で書かれているので、GoLandを使ってソースコードを読んでいる方が多い印象です。
しかしVS Codeでも、Go言語用の拡張機能を入れてやれば、比較的快適に読むことができます。そこで今回は、Kubernetesのコードを自分のラップトップ上で読むためのVS Codeの設定を、簡単に紹介します。
設定手順
Goのインストール
まずGoをインストールしましょう。ドキュメントに、各環境のインストール方法が書いています。Homebrewでもインストールできるらしい。
1 2 |
$ brew install go $ go version |
ローカルにソースコードをclone
UpstreamのKubernetesは、GitHub上のkubernetes/kubernetes
リポジトリで開発されています。なにはともあれ、このリポジトリをgit clone
します。ファイルサイズがでかいので、少し時間がかかるかもしれません。
1 |
$ git clone https://github.com/kubernetes/kubernetes |
VS Codeでkubernetesディレクトリを開く
git clone
したあとは、kubernetes
という名前のディレクトリが作成され、ソースコードがダウンロードされます。VS Codeでこのディレクトリを開きましょう。
また開いた後は、VS Code内のルートディレクトリにgo.mod
やgo.sum
ファイルがあることにも注意しましょう。Go言語の拡張機能がうまく動作せず、コードジャンプなどがうまくいかない場合があります。
Go拡張機能のインストール
VS Codeの拡張機能 Go for Visual Studio Code をインストールします。
Go拡張機能の設定
さらに拡張機能を用いて、各種ツールをインストールしましょう。
⌘+Shift+P
orCtrl+Shift+P
を押して、コマンドパレットを開くGo: Install/Update Tools
を選択- 全てにチェックを入れて
[OK]
を押しインストール
以上で設定は終わりです。
コードを読んでみる
以上の設定ができたら、もうコードを読むことができます。どうやって読んでいくかは、以下の「Kubernetesのコードリーディングをする上で知っておくと良さそうなこと」という記事に、とてもわかり易くまとまっています。
上記の記事を読んでみると、ひとまず以下のディレクトリの意味を理解しておくと良さそうです。
- cmdディレクトリ: Kubernetesの各種コンポーネントのバイナリを生成するためのエントリーポイント
- pkgディレクトリ: cmdディレクトリにあるコンポーネントのメインのロジックのコード
- staging/src/k8s.io/ディレクトリ:
client-go
など、Kubernetesの本体以外でも利用されるコードをライブラリ化して置いてある
例えばkubelet
の実装が知りたい場合は、cmd/kubelet/kubelet.go
を起点として読んでいけばよいです。Macであれば⌘+Shift
を押しながら関数名をクリックすれば、定義にジャンプすることもできます。
みなさんも、Happy Kubernetes Lifeをお過ごしください。
以上.
コメント