[root@rocky01 ~] # ip addr | grep ens3 2: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 inet 192.168.5.31/24 brd 192.168.5.255 scope global dynamic noprefixroute ens34 3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 inet 192.168.5.239/24 brd 192.168.5.255 scope global dynamic noprefixroute ens37 [root@rocky01 ~] # wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.11.1/deploy/static/provider/cloud/deploy.yaml [root@rocky01 ~] # vim deploy.yaml ... Kind: Service spec: #externalTrafficPolicy: Local externalTrafficPolicy: Cluster # change to Cluster for local test externalIPs: ['192.168.5.239'] # any Node ip is fine, master node for example ... [root@rocky01 ~] # kubectl apply -f deploy.yaml [root@rocky01 ~] # kubectl get pod -n ingress-nginx NAME READY STATUS RESTARTS AGE ingress-nginx-admission-create-svjf7 0/1 Completed 0 8h ingress-nginx-admission-patch-mrt99 0/1 Completed 1 8h ingress-nginx-controller-77667b9d9b-f9v8t 1/1 Running 0 8h [root@rocky01 ~] # kubectl get svc -n ingress-nginx NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE ingress-nginx-controller LoadBalancer 10.68.236.92 192.168.5.239 80:30822/TCP,443:32132/TCP 8h ingress-nginx-controller-admission ClusterIP 10.68.192.67 <none> 443/TCP 8h
graph LR
A[Client] -->B(http://myapp.app/v2)
B --> C[Ingress-nginx:myapp]
C --> D[Service:myappv2]
D --> F[Pod:myappv1]
A[Client] -->H(http://myapp.app/v1)
H --> I[Ingress-nginx:myapp]
I --> J[Service:myappv1]
J --> K[Pod:myappv1]
graph LR
A[Client] -->B(http://v1.app)
B --> C[Ingress:myapp]
C --> D[Service:myappv1]
D --> E[Pod:myappv1]
A[Client] -->F(http://v2.app)
F --> J[Ingress:myapp]
J --> H[Service:myappv2]
H --> I[Pod:myappv2]