# Rancher 開啟 debug 模式 * 本篇文章會針對以下三種不同服務開啟 debug 模式 ## rancher-system-agent service 啟用 debug 模式 ### rancher-system-agent 是一個 daemon,設計用來 apply rancher 所制定的計畫到 downstream cluster 上。 * 開啟 debug 模式 ``` # 在 downstream cluster 執行以下命令 $ cat >>/etc/systemd/system/rancher-system-agent.env<<EOF RANCHER_DEBUG=true CATTLE_DEBUG=true CATTLE_LOGLEVEL=debug EOF $ systemctl restart rancher-system-agent.service ``` * 關閉 debug 模式 ``` $ cat /dev/null > /etc/systemd/system/rancher-system-agent.env $ systemctl restart rancher-system-agent.service ``` ## Rancher pod 開啟 debug 模式 ### Rancher pod 是 Rancher Application 本身。 * 開啟 debug 模式 ``` # 在 rms 執行以下命令 $ kubectl -n cattle-system get pods -l app=rancher --no-headers -o custom-columns=name:.metadata.name | while read rancherpod; do kubectl -n cattle-system exec $rancherpod -c rancher -- loglevel --set debug; done OK OK OK $ kubectl -n cattle-system logs -l app=rancher -c rancher 2024/04/29 02:44:08 [DEBUG] Skipping refresh for user-rq847 due to max-age 2024/04/29 02:44:08 [DEBUG] TokenStreamTransformer called 2024/04/29 02:44:10 [DEBUG] Wrote ping 2024/04/29 02:44:10 [DEBUG] Wrote ping 2024/04/29 02:44:14 [DEBUG] Extras returned map[principalid:[local://user-rq847 openldap_user://uid=wilber,ou=people,dc=ldap1,dc=com] username:[admin wilber]] 2024/04/29 02:44:14 [DEBUG] Triggering auth refresh on user-rq847 2024/04/29 02:44:14 [DEBUG] Skipping refresh for user-rq847 due to max-age 2024/04/29 02:44:14 [DEBUG] TokenStreamTransformer called 2024/04/29 02:44:15 [DEBUG] Wrote ping ``` * 關閉 debug 模式 ``` $ kubectl -n cattle-system get pods -l app=rancher --no-headers -o custom-columns=name:.metadata.name | while read rancherpod; do kubectl -n cattle-system exec $rancherpod -c rancher -- loglevel --set info; done OK OK OK $ kubectl -n cattle-system logs -l app=rancher -c rancher ``` ## 設定 Downstream cluster cattle-cluster-agent Debug ### cattle-cluster-agent 是一個 pod,目的上是為了讓 downstream cluster 接收 rancher 所發出的指令。 ![image](https://hackmd.io/_uploads/S1jEoY3-A.png) * 設定 - `CATTLE_TRACE`: `true` - `CATTLE_DEBUG`: `true` ![image](https://hackmd.io/_uploads/ry7isKhbA.png) * 驗證 ``` # 在 downstream cluster 執行以下命令 $ kubectl -n cattle-system logs -l app=cattle-cluster-agent time="2024-04-29T02:54:43Z" level=debug msg="Wrote ping" time="2024-04-29T02:54:44Z" level=debug msg="Wrote ping" time="2024-04-29T02:54:48Z" level=debug msg="Wrote ping" ```