以下の内容はhttps://zaki-hmkc.hatenablog.com/entry/2025/03/25/072756より取得しました。


[K3s] K3s構築後のコンポーネントのon/off

結論としては、構築済みK3sの場合でも他の設定変更と同様に起動オプションに設定してサービス再起動すればOK
--disableを追加すれば削除され、削除フラグを除外すれば再デプロイされる。

K3sのインストールオプションで以下のコンポーネント--disableに指定すれば無効化できる。

  • coredns
  • servicelb
  • traefik
  • local-storage
  • metrics-server
  • runtimes

通常はインストール時に指定して、不要なコンポーネントは(リソースの無駄なので)そもそもデプロイしないようにできる。
例えばストレージを使うpodをデプロイしないのでlocal-storageをオフとか、外部公開はLoadBalancer Serviceしか使わないのでTraefik Ingress Controller(traefik)をオフにするとか。

設定サンプル

事前状態

root@k3s-node4:~# kubectl get pod -A
NAMESPACE     NAME                                      READY   STATUS      RESTARTS   AGE
kube-system   coredns-ccb96694c-rw2gc                   1/1     Running     0          82s
kube-system   helm-install-traefik-crd-fpdjj            0/1     Completed   0          82s
kube-system   helm-install-traefik-v6np7                0/1     Completed   1          82s
kube-system   local-path-provisioner-5b5f758bcf-49tjp   1/1     Running     0          82s
kube-system   svclb-traefik-199fa10e-9cxcd              2/2     Running     0          65s
kube-system   traefik-5cbdcf97f4-68qjw                  1/1     Running     0          65s
root@k3s-node4:~#
root@k3s-node4:~# kubectl top pod -A
error: Metrics API not available
root@k3s-node4:~# kubectl top node
error: Metrics API not available
root@k3s-node4:~# 

無効にしていたメトリクスサーバーを有効化

メトリクスサーバーを無効設定でインストールした上記のK3sクラスタに、メトリクスサーバーをデプロイする設定に変更する。

設定ファイルは/etc/systemd/system/k3s.service

root@k3s-node4:~# tail -5 /etc/systemd/system/k3s.service
ExecStart=/usr/local/bin/k3s \
    server \
        '--disable' \
        'metrics-server' \

このファイルから、--disable metrics-serverの部分を削除し、以下を実行

root@k3s-node4:~# tail -3 /etc/systemd/system/k3s.service
ExecStart=/usr/local/bin/k3s \
    server \

root@k3s-node4:~# 
root@k3s-node4:~# systemctl daemon-reload 
root@k3s-node4:~# systemctl restart k3s
root@k3s-node4:~# 

これで以下の通りメトリクスサーバーがデプロイされる。

^Croot@k3s-node4:~# kubectl get pod -A
NAMESPACE     NAME                                      READY   STATUS      RESTARTS   AGE
kube-system   coredns-ccb96694c-rw2gc                   1/1     Running     0          2m50s
kube-system   helm-install-traefik-crd-fpdjj            0/1     Completed   0          2m50s
kube-system   helm-install-traefik-v6np7                0/1     Completed   1          2m50s
kube-system   local-path-provisioner-5b5f758bcf-49tjp   1/1     Running     0          2m50s
kube-system   metrics-server-7bf7d58749-j95lq           1/1     Running     0          27s
kube-system   svclb-traefik-199fa10e-9cxcd              2/2     Running     0          2m33s
kube-system   traefik-5cbdcf97f4-68qjw                  1/1     Running     0          2m33s
root@k3s-node4:~# 
root@k3s-node4:~# kubectl top node
NAME        CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
k3s-node4   38m          1%     678Mi           8%        
root@k3s-node4:~# kubectl top pod -A
NAMESPACE     NAME                                      CPU(cores)   MEMORY(bytes)   
kube-system   coredns-ccb96694c-rw2gc                   1m           13Mi            
kube-system   local-path-provisioner-5b5f758bcf-49tjp   1m           7Mi             
kube-system   metrics-server-7bf7d58749-j95lq           3m           14Mi            
kube-system   svclb-traefik-199fa10e-9cxcd              0m           0Mi             
kube-system   traefik-5cbdcf97f4-68qjw                  1m           31Mi            

メトリクスサーバーとTraefik Ingress Controllerを無効化

root@k3s-node4:~# tail -4 /etc/systemd/system/k3s.service
ExecStart=/usr/local/bin/k3s \
    server \
      --disable metrics-server \
      --disable traefik
root@k3s-node4:~# 
root@k3s-node4:~# systemctl daemon-reload 
root@k3s-node4:~# systemctl restart k3s
root@k3s-node4:~# 

これで以下の通り、Traefik Ingress Controllerが停止する。

root@k3s-node4:~# kubectl get pod -A
NAMESPACE     NAME                                      READY   STATUS    RESTARTS   AGE
kube-system   coredns-ccb96694c-rw2gc                   1/1     Running   0          145m
kube-system   local-path-provisioner-5b5f758bcf-49tjp   1/1     Running   0          145m
root@k3s-node4:~# 

設定ファイルでローカルストレージの無効化

/etc/rancher/k3s/config.yamldisableキーの設定を追加

disable:
  - local-storage

これでサービス再起動すれば停止する。
この場合systemdユニットファイルの編集は生じないので、systemctl restart k3sのみで設定変更できる。


docs.k3s.io

zaki-hmkc.hatenablog.com

zaki-hmkc.hatenablog.com




以上の内容はhttps://zaki-hmkc.hatenablog.com/entry/2025/03/25/072756より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14