Minikube部署在EC2实例中。Kubernetes dashboard作为群集ip服务部署在Minikube中
Nginx-Ingress-Controller作为NodePort服务部署。入口YAML文件如下:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
namespace: kubernetes-dashboard
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/rewrite-target: "/$1"
name: ingress-resource
spec:
rules:
- http:
paths:
- path: /kubedashboard
pathType: Prefix
backend:
service:
name: kubernetes-dashboard
port:
number: 443入口地址为:

Minikube IP为:

Minikube IP和入口地址不同。我没有提到Ingress.yaml中的任何主机。
入口和Kubernetes仪表板部署在同一个命名空间中: kubernetes-dashboard。
如何通过Ingress访问kubernetes仪表板?
我想通过以下方式访问:
curl https://localhost:NodePort/kubedashboard --insecure或
curl https://MinikubeIP:NodePort/kubedashboard --insecure或
curl https://EC2PublicIP:NodePort/kubedashboard --insecure发布于 2021-10-06 07:15:25
不需要入口,ingress只用于80和443端口,如果要使用节点端口访问仪表板,只需将仪表板服务类型设置为NodePort即可。
然后,您应该能够使用curl https://localhost:NodePort/ --insecure进行访问
kubectl patch service kubernetes-dashboard -n kubernetes-dashboard -p '{"spec": {"type": "NodePort"}}'
kubectl get service kubernetes-dashboard -n kubernetes-dashboard如果你真的想使用入口。使用下面的入口,然后您可以从https://localhost/kubedashboard/访问
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: kubernetes-dashboard
annotations:
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
nginx.ingress.kubernetes.io/rewrite-target: /$2
nginx.ingress.kubernetes.io/configuration-snippet: |
rewrite ^(/kubedashboard)$ $1/ redirect;
namespace: kubernetes-dashboard
spec:
ingressClassName: nginx
rules:
- http:
paths:
- path: /kubedashboard(/|$)(.*)
pathType: ImplementationSpecific
backend:
service:
name: kubernetes-dashboard
port:
number: 443https://stackoverflow.com/questions/69451937
复制相似问题