Upgrade to Pro — share decks privately, control downloads, hide ads and more …

オリジナルのKubectlを作る

 オリジナルのKubectlを作る

827c50b8ee8994d5feac521f09178d0e?s=128

katsunori nakajima

June 25, 2021
Tweet

Transcript

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

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

  3. Kubectl get pod –A kubectl –n namespace describe pod kubectl

    get service –A kubectl –n namespace describe service
  4. PodとServiceを調べたりすることを ワンラインでできないのか?

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

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

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

    Code(開発環境)
  8. Go言語の使い方 • Go言語をv1.14からv1.16にアップデートで苦労したので • modファイルを作らないとbuildができない • go init mod 適当な名前

    • 使用するpackageはmodに書かれていないとエラー • go get パッケージ • 「./フォルダ」で呼び出していたローカルライブラリの書き方 は、「モジュール名/フォルダ」で呼び出すことが可能
  9. • 300行ぐらいで、以下のようなアプリができた。

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

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