通过使用这三个组件,可以实现在Kubernetes裸机上保留源IP的功能。Ingress Nginx用于管理入站网络流量,Iptables用于配置和管理网络包过滤规则,MetalLB用于在裸机集群中实现负载均衡。这样可以确保源IP在流量经过这些组件时不被修改或隐藏,从而实现对源IP的保留。
为了验证 MetalLB 的配置是否正确,你可以创建一个简单的 Nginx 服务。 创建一个nginx-deployment.yaml文件,内容如下: apiVersion:apps/v1kind:Deploymentmetadata:name:nginx-deploymentlabels:app:nginxspec:replicas:1selector:matchLabels:app:nginxtemplate:metadata:labels:app:nginxspec:containers:-name:nginximage:n...
kubectl get ipaddresspools.metallb.io,l2advertisements.metallb.io -o wide -n metallb-system 创建结果: 安装Ingress 本次安装的ingress控制器是Ingress-Nginx Controller,官方文档地址:https://kubernetes.github.io/ingress-nginx/deploy 安装的yaml文件地址为:https://raw.githubusercontent.com/kubernetes/ingress-...
外部网络访问集群里的服务,通过ingress-nginx的形式,但是这个ingress-nginx的服务service端口类型对外暴露只能使用“ NodePort”和“ externalIPs”服务,不能使用LoadBalancer的,使用MetalLB则可以解决这个问题,使ingress-nginx的service端口类型对外暴露使用LoadBalancer的形式(不用使用云厂商提供的负载均衡器)...
带minikube和metallb的nginx的应用场景和优势如下: 应用场景:带minikube和metallb的nginx适用于需要在本地开发环境中快速部署和测试基于Kubernetes的应用程序的场景。它可以提供负载均衡和反向代理功能,方便开发人员进行应用程序的开发、测试和调试。 优势: 简单易用:minikube提供了简单易用的命令行工具,可以快速创建和管理本...
此时再查看 Service 的状态,可以看到 MetalLB 为两个 Service 分配了 IP 地址192.168.1.30、192.168.1.31: kubectl get svc -n default NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.43.0.1 <none> 443/TCP 28m nginx-lb LoadBalancer 10.43.201.249 192.168.1.30 8080:30089/TCP 14...
虽然kubernetes 集群默认定义了 Ingress 和 LoadBalancer Service 资源,但都没有实现。 Ingress 问题不大,只需要安装官方另外做的 Ingress-nginx 控制器就可以了。甚至在 1.22 中正式引入了 IngressClasses ,以允许集群中同时包含多个 Ingress 控制器。 但LoadBalancer 要考虑的就多了。它需要向集群外部的网络设备声明...
nginx2-lb LoadBalancer 10.43.26.30 <pending> 8080:31274/TCP 16s 1. 2. 3. 4. 5. 这时就需要 MetalLB 登场了。 安装MetalLB 使用官方提供 manifest 来安装,目前最新的版本是0.12.1。此外,还可以其他安装方式供选择,比如Helm、Kustomize或者MetalLB Operator。
自建的 Kubernetes 集群暴露让外网访问,目前只能使用NodePort或Ingress等的方法进行服务暴露。NodePort缺点是每个暴露的服务需要占用所有节点的某个端口。Ingress是一个不错的解方法。 有没有方法,让自建的 Kubernetes 集群也能使用LoadBalancer类型的Service? 当然有方法可以实现,今天介绍一个MetalLB应用,可以实现这个功能。
此时再查看 Service 的状态,可以看到 MetalLB 为两个 Service 分配了 IP 地址 192.168.1.30、192.168.1.31: kubectl get svc -n defaultNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEkubernetes ClusterIP 10.43.0.1443/TCP 28mnginx-lb LoadBalancer 10.43.201.249 192.168.1.30 8080:30089/TCP 14mnginx2-lb ...