host(win) -> nginx -> vm(centos) -> docker(minikube) -> ingress-controller -> ingress -> svc -> pod
# for dash.minikube.cn ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
namespace: kubernetes-dashboard
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
rules:
- host: dash.minikube.cn
http:
paths:
- path: /(.*)
pathType: Prefix
backend:
service:
name: kubernetes-dashboard
port:
number: 80
- path: /dash/(.*)
pathType: Prefix
backend:
service:
name: kubernetes-dashboard
port:
number: 80
# for (web1|web2|all).minikube.cn ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
rules:
- host: web1.minikube.cn
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: web1
port:
number: 8080
- host: web2.minikube.cn
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: web2
port:
number: 8080
- host: all.minikube.cn
http:
paths:
- path: /web1
pathType: Prefix
backend:
service:
name: web1
port:
number: 8080
- path: /web2
pathType: Prefix
backend:
service:
name: web2
port:
number: 8080
- path: /(web3)
pathType: Prefix
backend:
service:
name: web1
port:
number: 8080
- path: /(web4)
pathType: Prefix
backend:
service:
name: web2
port:
number: 8080
- path: /query/(.*)
pathType: Prefix
backend:
service:
name: query-exporter-bbc
port:
number: 9560
- path: /dash/(.*)
pathType: Prefix
backend:
service:
name: kubernetes-dashboard
port:
number: 80
#nginx config for (web1|web2|all|dash).minikube.cn
server {
listen 80 ;
listen [::]:80;
server_name web1.minikube.cn;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://web1.minikube.cn;
}
}
server {
listen 80;
listen [::]:80;
server_name web2.minikube.cn;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://web2.minikube.cn;
}
}
server {
listen 80;
listen [::]:80;
server_name all.minikube.cn;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://all.minikube.cn;
}
}
server {
listen 80;
listen [::]:80;
server_name dash.minikube.cn;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://dash.minikube.cn;
}
}
原文:https://www.cnblogs.com/jimlist/p/14259392.html