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

オリジナルのKubectlを作る

 オリジナルのKubectlを作る

katsunori nakajima

June 25, 2021
Tweet

More Decks by katsunori nakajima

Other Decks in Business

Transcript

  1. オリジナルのKubectlを作

    2021/06/25

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide