Slide 1

Slide 1 text

オリジナルのKubectlを作 る 2021/06/25

Slide 2

Slide 2 text

Kubectlとは • Kuberentesの制御のCUIツール • DeploymentやServiceなどのリソース情報を制御できる • ~/.kube/configに書かれた情報(kubeconfig)をもとに Kubernetesネットワークにアクセスする

Slide 3

Slide 3 text

Kubectl get pod –A kubectl –n namespace describe pod kubectl get service –A kubectl –n namespace describe service

Slide 4

Slide 4 text

PodとServiceを調べたりすることを ワンラインでできないのか?

Slide 5

Slide 5 text

Client-goというgo言語のライブラリがあ る

Slide 6

Slide 6 text

Client-goとは • KubernetesのAPIをたたくGo言語のライブラリ • これを使用すれば、Kubernetesの制御をプログラミングできる

Slide 7

Slide 7 text

使用するには • Go言語 v1.16以上のインストール • Kubernetes環境 • Kubeconfig(ローカルテスト用) • VS Code(開発環境)

Slide 8

Slide 8 text

Go言語の使い方 • Go言語をv1.14からv1.16にアップデートで苦労したので • modファイルを作らないとbuildができない • go init mod 適当な名前 • 使用するpackageはmodに書かれていないとエラー • go get パッケージ • 「./フォルダ」で呼び出していたローカルライブラリの書き方 は、「モジュール名/フォルダ」で呼び出すことが可能

Slide 9

Slide 9 text

• 300行ぐらいで、以下のようなアプリができた。

Slide 10

Slide 10 text

まとめなど • Client-goを使用して、pod名とネームスペース、それに紐づい たserviceやポートを取得するアプリができた。 • コンテナ化して、podの情報監視も可能

Slide 11

Slide 11 text

Client-goを使用して Kubernetesクラスタを制御す るアプリを作ろう