测试环境说明:
- Hetzner AX41-NVME服务器一台
- 没有其他节点,只有单节点
- 只有一个公网IP
测试目标:PorterLB配置本地LB,实现docker程序公网暴露
参考资料:https://porterlb.io/docs/getting-started/installation/install-porter-on-kubernetes/
一、首先按照官网说明all-in-one的方式进行安装,然后进入终端,敲命令:
kubectl apply -f https://raw.githubusercontent.com/kubesphere/porter/master/deploy/porter.yaml
然后查看是否已经ready
kubectl get po -n porter-system
二、打开strictARP
kubectl edit configmap kube-proxy -n kube-system
ipvs:
strictARP: true
然后重启kube-proxy
kubectl rollout restart daemonset kube-proxy -n kube-system
三、查看本地网卡接口地址,主要是接口名称和ip,然后添加为eip
kubectl apply -f - <<EOF apiVersion: network.kubesphere.io/v1alpha2 kind: Eip metadata: name: porter-layer2-public-eip spec: address: 162.55.6.168 interface: eth0 protocol: layer2 EOF
四、最后到项目网关那里,添加为LB模式,注意要添加注释
lb.kubesphere.io/v1alpha1: porter protocol.porter.kubesphere.io/v1alpha1: layer2 eip.porter.kubesphere.io/v1alpha2: porter-layer2-public-eip
五、测试部署whoami,进入项目-应用负载-应用,添加一个自制应用,然后在应用路由那里使用自己的域名就好了
六、如何获取客户的实际IP,参考:https://kubesphere.io/zh/blogs/how-to-get-real-ip-in-pod/