K3s集群配置MetalLB后IP分配失败:无可用IP问题求助
问题排查:MetalLB无法分配IP的原因
核心问题:ConfigMap配置缩进错误
你的MetalLB ConfigMap存在YAML缩进错误,导致protocol和addresses字段未被正确归属到address-pools的default地址池下,MetalLB无法识别可用IP范围,因此报错"no available IPs"。
错误配置的问题点
原配置中:
address-pools: - name: default protocol: layer2 addresses: - 192.168.136.206-192.168.136.209
protocol和addresses与address-pools同级,而非缩进在- name: default下方,不符合YAML层级结构要求,MetalLB会忽略这部分无效配置。
正确的ConfigMap配置
修正缩进后的配置:
apiVersion: v1 kind: ConfigMap metadata: namespace: metallb-system name: config data: config: | address-pools: - name: default protocol: layer2 addresses: - 192.168.136.206-192.168.136.209
验证与修复步骤
- 应用修正后的ConfigMap:
kubectl apply -f corrected-configmap.yaml - 重启metallb-controller Pod确保配置生效:
kubectl rollout restart deployment metallb-controller -n metallb-system - 检查nginx Service事件,确认IP分配情况:
kubectl describe svc nginx
内容的提问来源于stack exchange,提问作者Mark Matlock
相关产品推荐
相关产品推荐

