Lensを使ってみる

はじめに

前回でおうちKubernetes環境ができたので、モチベがあるうちに色々試したいと思い
とりあえず監視周りもついでにできるIDE環境、Lensを導入した。

Lensとは

Lens | The Kubernetes IDE

Lens is the only IDE you’ll ever need to take control of your Kubernetes clusters. It's open source and free. Download it today!

KubernetesIDEで、開発/監視/DevOp etcと色々できるらしい。

クラスタ追加

Lensを起動したあと、とりあえずクラスタ追加を行う。
$HOME/.kube/configあたりにある人はファイルを選べば行けそう。
筆者はwindows環境にkubectl周りの導入をしてなかったので、前回構築したマスターノードから.kube/configを持ってきて、Paste as textに転記した。

f:id:tm3log:20210102210148p:plain
Lens kubeconfig追加

初期設定

クラスタ追加された後は、各resourceが見れるようになる。

f:id:tm3log:20210102210804p:plain
kubeconfig追加後
f:id:tm3log:20210102211031p:plain
Podの一覧

今の状態だとCPUやメモリの状態が見れない。
Lensはボタン1つでkube-metric-stateやPrometheusの導入ができる。
メニューバーから「file」→「Cluster Settings」を選んでFeaturesからInstallを押下する。

f:id:tm3log:20210102211435p:plain
Cluster Settings

これで完了かと思いきや、kube-state-metericsが動いてないように見える。

f:id:tm3log:20210102211701p:plain
kube-state-metricsのEvents

0/3 nodes are available: 3 node(s) didn't match node selector.

NodeSelectorにarm64の記載がないので追加してやる。
Lensは選択したリソースのYAMLを直接編集してそのままapplyできる。
Deploymentsのkueb-state-metricsを選択し鉛筆マークを選択する。
before

      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                  - key: kubernetes.io/os
                    operator: In
                    values:
                      - linux
                  - key: kubernetes.io/arch
                    operator: In
                    values:
                      - amd64
              - matchExpressions:
                  - key: beta.kubernetes.io/os
                    operator: In
                    values:
                      - linux
                  - key: beta.kubernetes.io/arch
                    operator: In
                    values:
                      - amd64

after

      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                  - key: kubernetes.io/os
                    operator: In
                    values:
                      - linux
                  - key: kubernetes.io/arch
                    operator: In
                    values:
                      - arm64
              - matchExpressions:
                  - key: beta.kubernetes.io/os
                    operator: In
                    values:
                      - linux
                  - key: beta.kubernetes.io/arch
                    operator: In
                    values:
                      - arm64

今回は全台RaspberryPi4なのでamd64をarm64に修正してみる。

f:id:tm3log:20210102212929p:plain
amd64 -> arm64に変更後

修正したけど、CrashLoopBackOffになるのでそもそものイメージがARMに対応してなさそう。
とりあえずgithubのissueを漁ると、やはり対応して無さそうなので対応しているalpha版のイメージを使う。

github.com

- - image: 'quay.io/coreos/kube-state-metrics:v1.9.7'
+ - image: 'k8s.gcr.io/kube-state-metrics/kube-state-metrics-arm64:2.0.0-alpha.1'

<figure class="figure-image figure-image-fotolife" title="修正後のClusterの状態">[f:id:tm3log:20210102213629p:plain]<figcaption>修正後のClusterの状態</figcaption></figure>

無事見れるようになった!

## 最後に
とりあえずLensの導入とmetrics周りの導入ができた。  
prometheusもデプロイされたので勉強がてら触って行こうと思う。