自建Kubernetes(microk8s)配置Ingress监听指定网络接口方案咨询
microk8s nginx-ingress指定网卡监听部署方案
不需要切换为外部HAProxy或Nginx方案,nginx-ingress可完全满足你的需求,且所有资源可统一托管在自定义命名空间,方便生命周期管理。
1 前置操作:禁用microk8s默认ingress控制器
microk8s自带的ingress控制器权限受限、配置不灵活,先执行命令禁用:microk8s disable ingress
2 自定义命名空间部署独立nginx-ingress控制器
2.1 创建专属命名空间
你可以自定义命名空间名称,示例为my-ingress-ns:kubectl create namespace my-ingress-ns
2.2 部署控制器并指定初始监听网卡
通过helm部署时添加对应参数,初始仅监听eth0对应IP 192.168.0.1:
helm upgrade --install ingress-nginx ./path/to/ingress-nginx-chart \ --namespace my-ingress-ns \ --set controller.hostNetwork=true \ --set controller.extraArgs.bind-address=192.168.0.1 \ --set controller.watchNamespace="*"
参数说明:
controller.hostNetwork=true:控制器直接使用宿主机网络栈,可直接监听宿主机网卡端口controller.extraArgs.bind-address:指定监听的网卡IP,未列入的IP请求不会被接收,直接返回超时controller.watchNamespace:指定控制器监听的命名空间,可填写你的业务命名空间限制监听范围,填*表示监听所有命名空间的Ingress资源
所有控制器相关资源都在my-ingress-ns下,需清理时可直接执行kubectl delete ns my-ingress-ns即可完全移除。
3 配置Ingress转发规则
编写Ingress资源配置实现你的路径转发逻辑:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: domain-ingress namespace: 你的业务服务所在命名空间 annotations: nginx.ingress.kubernetes.io/ssl-redirect: "true" spec: ingressClassName: nginx tls: - hosts: - domain.com secretName: domain-tls # 提前创建好的域名TLS证书Secret rules: - host: domain.com http: paths: - path: /frontend pathType: Prefix backend: service: name: service-frontend port: number: 服务端口 - path: /backend pathType: Prefix backend: service: name: service-backend port: number: 服务端口
配置提交后即可实现eth0接口的请求转发逻辑,eth1接口的请求未被监听,直接返回超时,符合你的初始要求。
4 后续开启eth1接口监听操作
仅需更新控制器的bind-address参数,添加eth1对应IP 88.88.88.88即可,无需修改其他转发规则:
helm upgrade ingress-nginx ./path/to/ingress-nginx-chart \ --namespace my-ingress-ns \ --set controller.extraArgs.bind-address=192.168.0.1,88.88.88.88
更新完成后两个网卡的请求转发逻辑完全一致。
5 负载均衡实现
nginx-ingress控制器默认支持后端服务多实例负载均衡,你仅需要将service-frontend、service-backend对应的Deployment配置为多副本即可,无需额外配置。
异常排查
如果自定义Ingress资源不生效,检查两个配置项:
- 确保Ingress资源的
ingressClassName字段和你部署的nginx-ingress控制器的ingressClass名称一致,默认值为nginx - 确保控制器
watchNamespace参数包含了你的业务资源所在的命名空间
内容的提问来源于stack exchange,提问作者brainwash
相关产品推荐
相关产品推荐

