前言
嗯,距離上次發文已經是2024年9月的事情了,荒廢了一年多之久...(笑
咳咳!回到正題,會有這篇筆記的出現,主要也是要繼續來補【Kubernetes學習筆記】系列了,從2022年挖坑,到今年2026年我都讀完碩班開始第二份工作了,坑都還沒繼續填,居然可以拖四年阿!
這次為了繼續當年的【Kubernetes學習筆記】系列,我重新架設了筆記上所開出的Kubernetes群集架構。架構上與當年寫下的基本一致,唯獨這次沒有再重新架設以兩套HA Proxy做高可用版本的LB於Master Node前,只起了一顆HA Proxy擔任Control Plane的LB,並且CNI這次選用了Calico。
其餘部分還是留到筆記系列的續篇正文再繼續說明吧,主要是這次選擇使用Proxmox VE環境當作底層的Bare-metal Hypervisor解決方案來開VM架設集群,而主機架設在遠端,我需要透過WoL的方式來喚醒它。
該電腦本身就已經啟用過WoL的相關設定,且透過Windows啟動並關機後,是可以正常WoL的。但是這次遇到了Proxmox VE關機後,NIC會被完全切斷電源,與Router於實體物理的層面上斷線。
本篇就是要來解決上面所述問題,在Proxmox VE Node的設定上需要做一些調整~
正文
接下來就實際紀錄解決步驟
主要的原因在於OS層級網卡上的WoL功能沒有啟用,為d (Disabled)這狀態,詳細的資訊可以透過ethtool <nic-name>來查看。
可以看到列出的詳細資訊內,有欄Wake-on狀態,上圖示已經調整過後的截圖,原先是顯示d,表示停用,所以我們需要將它改成啟用的狀態g (MagicPacket)。
該欄會出現的狀態指示根據ethtool的使用手冊說明,有下列可能,供大家參考:
wol p|u|m|b|a|g|s|d... |
在網卡可寫入並儲存設定的情況下,只需要下ethtool -s <nic-name> wol g便可將其啟用狀態更改為g。
但經過測試後發現,我的網卡調整過後,第一次關機能夠維持WoL功能,但待下次重新啟動系統後,WoL便會回復原始的停用狀態,無法持久化設定。
所以我透過新增system daemon的方式來在每次系統啟動時,自動套用ethtool -s <nic-name> wol g指令,使得每次系統關機前,WoL都是維持在運作的g狀態。
透過
nano /etc/systemd/system/enable-wol.service創建名為enable-wol.service的system daemon設定檔
檔案內容如下,請替換為你的網卡名稱 [Unit]
Description=Wake-on-LAN for <nic-name>
Requires=network.target
After=network.target
[Service]
ExecStart=/usr/sbin/ethtool -s <nic-name> wol g
ExecStop=/usr/sbin/ethtool -s <nic-name> wol g
[Install]
WantedBy=multi-user.target使服務開機自動啟動執行
systemctl enable enable-wol.service
systemctl daemon-reload
透過上述方法,便可確保每次系統重啟後,都能正確於OS層級啟用網卡WoL功能,解決無法正常WoL的問題。