Kubernetesのソースコードを読むためのVS Codeの設定

Kubernetes

はじめに

KubernetesはOSSなので、当然コードの中身を誰でも覗くことができます。最近では、Kubernetes Internalという「KubernetesやKubernetesを使ったソフトウェアの実装や設計、Cloud Native技術について情報交換、交流をするための勉強会」も開催されているようで、とてもためになります。

Kubernetes Internal
# Kubernetes Internalとは? Kubernetes Internalは、Kubernetesユーザが集まり、KubernetesやKubernetesを使ったソフトウェアの実装や設計、Cloud Native技術について情報交換、交流をするための勉強会です。 本勉強会はKubernetesを学習...(続く)

KubernetesはGo言語で書かれているので、GoLandを使ってソースコードを読んでいる方が多い印象です。

しかしVS Codeでも、Go言語用の拡張機能を入れてやれば、比較的快適に読むことができます。そこで今回は、Kubernetesのコードを自分のラップトップ上で読むためのVS Codeの設定を、簡単に紹介します。



設定手順

Goのインストール

まずGoをインストールしましょう。ドキュメントに、各環境のインストール方法が書いています。Homebrewでもインストールできるらしい。

ローカルにソースコードをclone

UpstreamのKubernetesは、GitHub上のkubernetes/kubernetesリポジトリで開発されています。なにはともあれ、このリポジトリをgit cloneします。ファイルサイズがでかいので、少し時間がかかるかもしれません。

VS Codeでkubernetesディレクトリを開く

git cloneしたあとは、kubernetesという名前のディレクトリが作成され、ソースコードがダウンロードされます。VS Codeでこのディレクトリを開きましょう。

また開いた後は、VS Code内のルートディレクトリにgo.modgo.sumファイルがあることにも注意しましょう。Go言語の拡張機能がうまく動作せず、コードジャンプなどがうまくいかない場合があります。



Go拡張機能のインストール

VS Codeの拡張機能 Go for Visual Studio Code をインストールします。

Go拡張機能の設定

さらに拡張機能を用いて、各種ツールをインストールしましょう。

  • ⌘+Shift+P or Ctrl+Shift+Pを押して、コマンドパレットを開く
  • Go: Install/Update Toolsを選択
  • 全てにチェックを入れて[OK]を押しインストール

以上で設定は終わりです。

コードを読んでみる

以上の設定ができたら、もうコードを読むことができます。どうやって読んでいくかは、以下の「Kubernetesのコードリーディングをする上で知っておくと良さそうなこと」という記事に、とてもわかり易くまとまっています。

Kubernetesのコードリーディングをする上で知っておくと良さそうなこと
Kubernetesとその関連コードのコードリーディングをする上で知っておくと良さそうなことについて知ってる範囲で雑にまとめてみました

上記の記事を読んでみると、ひとまず以下のディレクトリの意味を理解しておくと良さそうです。

  • cmdディレクトリ: Kubernetesの各種コンポーネントのバイナリを生成するためのエントリーポイント
  • pkgディレクトリ: cmdディレクトリにあるコンポーネントのメインのロジックのコード
  • staging/src/k8s.io/ディレクトリ: client-goなど、Kubernetesの本体以外でも利用されるコードをライブラリ化して置いてある

例えばkubeletの実装が知りたい場合は、cmd/kubelet/kubelet.goを起点として読んでいけばよいです。Macであれば⌘+Shiftを押しながら関数名をクリックすれば、定義にジャンプすることもできます。

みなさんも、Happy Kubernetes Lifeをお過ごしください。

以上.

コメント