我使用Metallb0.13.4 L2,下面有IP广告和池。Nginx抓住正确的IP地址,金属扬声器正确地宣布它。所以IP地址是正确分配的。
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
name: external-advertisement
namespace: metallb-system
spec:
ipAddressPools:
- external-pool
nodeSelectors:
- matchLabels:
kubernetes.io/os: linux
kubernetes.io/arch: amd64
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
name: internal-advertisement
namespace: metallb-system
spec:
ipAddressPools:
- internal-pool
nodeSelectors:
- matchLabels:
kubernetes.io/os: linux
---
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: external-pool
namespace: metallb-system
spec:
addresses:
- x.x.x.204/32
---
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: internal-pool
namespace: metallb-system
spec:
addresses:
- x.x.x.203/32尼克斯吐露
....
controller:
annotations:
metallb.universe.tf/address-pool: external-pool
....
---
....
controller:
annotations:
metallb.universe.tf/address-pool: internal-pool
....以及从nginx控制器事件
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal nodeAssigned 4m6s (x1173 over 19h) metallb-speaker announcing from node [redacted] with protocol "layer2"看到(x1173 over 19h)这么奇怪了吗?当我查看Ingresses时,它们的IP地址不断变化,但它们被分配给内部或外部的nginx类。
$ kl get ingressclass
NAME CONTROLLER PARAMETERS AGE
nginx k8s.io/ingress-nginx <none> 5d6h
nginx-internal k8s.io/ingress-nginx <none> 5d6h虽然侵入IP在x.203和x.204??之间不断变化,但它们总是响应指定的IP地址!这看起来确实很奇怪。
注意:我不确定metallb项目的帮助,这就是为什么我要在这里创建这个问题。
发布于 2022-09-01 13:03:00
问题是controller上的注释,它们应该在controller.service;这是工作配置;
controller:
service:
externalTrafficPolicy: Local
type: LoadBalancer
loadBalancerIP: x.x.x.203
annotations:
metallb.universe.tf/address-pool: "internal-pool"此外,服务必须是LoadBalancer类型,并指定IP。
https://stackoverflow.com/questions/73461158
复制相似问题