為響應政策,最近在搗鼓國產化云原生平臺的搭建。在搭建過程中遇到了問題記錄下來,以備后續查找。
我選用了中國電子云的云平臺來搭建K8S集群,選用的技術棧是華為開源的openeuler+k8s+isulad框架,參考官網文檔資料:iSulad+k8s環境部署 | 文檔 | openEuler社區
搭建過程中遇到的第一個問題是:創建K8S集群Master節點高可用網絡不通問題。
按照我前面博客中寫過的:在3個Master節點上使用keepalived建立虛擬地址,通過配置設置切換優先級,當虛擬地址所在的主機宕機時,虛擬地址按照優先級順序自動切換至下一個Master節點,以確保控制節點的可用性。其確保高可用的k8s中的服務主要是注冊服務etcd和接口服務apiserver。只不過當前的環境Master節點不是通過物理機部署,而是在中國電子云云服務器ECS中創建的虛擬機上部署的,操作系統安裝的是OpenEuler-x86_64_LTS。
keepalived的安裝配置方法基本和前面寫的“k8s學習筆記——keepalived非容器”相同(創作中心-CSDN),其配置腳本如下:
// /etc/keepalived/keepalvied.conf
global_defs {router_id LVS_2
}vrrp_script checkhaproxy {script "/usr/bin/check-haproxy.sh"interval 3weight -30
}vrrp_instance VI_2 {state MASTER //備用節點BACKUPinterface enp3s1 //主網卡接口virtual_router_id 41 //其他節點號要一致priority 100 //值越大優先級越大nopreemptadvert_int 1authentication {auth_type PASSauth_pass txgm2m85331919}garp_master_refresh 5garp_master_delay 1unicast_src_ip 22.12.70.141 //當前主機ip,啟用單播模式防止默認的多播系統阻斷unicast_peer { // 其他master節點地址22.12.70.142 22.12.70.143}virtual_ipaddress {22.12.70.140/25 dev enp3s1 //虛擬地址} track_interface {enp3s1}track_script {checkhaproxy}
}
按照以前的配置在master1節點,ip:22.12.70.141的地址上通過ip addr命令查看可以看到ip:22.12.70.140的虛擬地址,將master1節點虛擬機關機,虛擬地址22.12.70.140也能浮動到master2節點上。但是虛擬地址22.12.70.140只能在本地ping通,其他主機節點均不通,無論是跨網段還是本網段。在DeepSeek上詢問此問題,它起初判斷定位是:ARP廣播問題、防火墻阻止VRRP/ICMP、網絡設備限制。按照AI給的解決方案逐一排查:
檢查防火墻,防火墻是關閉的;懷疑是多播被禁止了,于是又在配置文件中配置了unicast_src_ip,還是不管有;通過sudo tcpdump -i enp3s1 host 22.12.70.140命令在master1上監聽,其他節點ping該節點:
10:03:00.828170 ARP, Request who-has k8s-isulad-master1 tell k8s-isulad-master3, length 42
10:03:00.828179 ARP, Reply k8s-isulad-master1 is-at 06:37:85:22:35:4d (oui Unknown), length 28
也能收到arp數據包,從其他網段traceroute 22.12.70.140 能到達網關,再往下就不通了;就懷疑是控制策略問題,又按照其解決方案對/etc/sysctl.conf文件配置了一通,還在master1節點上給22.12.70.140地址配置了vip的策略路由,結果統統不管用。為恢復配置索性又重裝了系統。問題依舊存在。
通過上述嘗試,我懷疑問題不應該出在master節點上,有可能是網絡的VXLAN的問題。于是我到網關節點的交換機上進行測試,發現除了虛擬地址所有地址都可以ping通,在arp映射表中找不到22.12.70.140地址對應的mac地址映射,并且這種現象在我之前配置的物理主機做的高可用虛擬地址上同樣存在,這更堅定了我的判斷,于是聯系了中國電子云的技術售后,給他們講了此問題。
經過技術售后遠程查看,發現問題原因和上述判斷都沒有關系,而是因為在虛擬機上想配置高可用需要先配置云服務的專有網絡VPC,將在ECS中虛擬地址創建到VPC中,并綁定虛擬主機,此虛擬地址才可生效。在物理主機中因為網絡不受ECS和VPC控制,所以虛擬地址可以在同網段生效,通過網關配置可以實現跨網段通信,但在ECS中創建的虛擬機因為是軟件定義網絡,需要先創建VPC專有網絡,才能實現通信。按照VPC專有網絡配置完后,虛擬地址可正常生效了,上述問題也得到了解決。
通過2天的折騰,發現AI大模型并不是統統是對的,在小眾問題中,有可能它給出的方案會誤導你去做無用功。在國產化的生態中,廠家的技術支持還是不可或缺的。