阿里云ECS,Centos7.9, 单master, 两worker节点,使用kk安装k8s(1.18.6)和kubesphre(3.0.0)
使用layer2模式的porter(0.2.1 [0.4.1]):

master:172.16.0.48
node1:172.16.0.49
node2:172.16.0.50
eip:172.16.0.51-172.16.0.53
参照文档:https://porterlb.io/docs/getting-started/usage/use-porter-in-layer-2-mode/
eip的yaml:
[root@master eip]# cat porter-layer2-eip.yaml
apiVersion: network.kubesphere.io/v1alpha2
kind: Eip
metadata:
name: porter-layer2-eip
spec:
address: 172.16.0.51-172.16.0.53
interface: eth0
protocol: layer2
使用loadbalancer的小demo:
[root@master eip]# cat porter-layer2-deploy-svc.yaml
kind: Service
apiVersion: v1
metadata:
name: porter-layer2-svc
annotations:
lb.kubesphere.io/v1alpha1: porter
protocol.porter.kubesphere.io/v1alpha1: layer2
eip.porter.kubesphere.io/v1alpha2: porter-layer2-eip
spec:
selector:
app: porter-layer2
type: LoadBalancer
ports:
- name: http
port: 80
targetPort: 8080
externalTrafficPolicy: Cluster
—
apiVersion: apps/v1
kind: Deployment
metadata:
name: porter-layer2
spec:
replicas: 2
selector:
matchLabels:
app: porter-layer2
template:
metadata:
labels:
app: porter-layer2
spec:
containers:
- image: luksa/kubia
name: kubia
ports:
- containerPort: 8080
-
部署结果:

集群节点访问eip地址的80端口:

看着貌似正常
但是非k8s集群节点就访问不了了,都是同一个网段:

查看eip的mac地址发现跟节点网卡eth0的mac地址不一样:

这个eip的mac地址看着也不太对,搞不懂啥情况了,集群外部访问不到eip的地址。
kubesphere的项目网管设置为Loadbalancer后:



在集群外部就是访问不到eip的地址:
