要在 Kubespray 部署的 Kubernetes 集群上配置 Ingress 并使其可用于访问 Kubernetes Dashboard,您需要完成以下步骤:
安装 Nginx Ingress Controller。您可以通过使用 Helm 包管理器安装 Nginx Ingress Controller,或者按照官方文档中的说明手动安装。
创建一个 Kubernetes Service 类型为 NodePort 的服务以公开 Dashboard。例如:
apiVersion: v1
kind: Service
metadata:
name: kubernetes-dashboard
namespace: kube-system
spec:
type: NodePort
ports:
- port: 80
targetPort: 9090
protocol: TCP
selector:
k8s-app: kubernetes-dashboard
- 创建一个 Ingress 资源来将流量路由到该服务。例如:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: dashboard-ingress
namespace: kube-system
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$2
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
nginx.ingress.kubernetes.io/proxy-body-size: "0"
spec:
rules:
- host: dashboard.example.com # 替换成您想使用的域名或IP地址
http:
paths:
- path: /dashboard(/|$)(.*) # 将这里的/dashboard替换为您希望访问Dashboard时使用的URL路径。
backend:
serviceName:kubernetes-dashboard
servicePort: 80
- 将 Ingress 资源部署到 Kubernetes 集群中:
kubectl apply -f ingress.yaml
- 等待几秒钟后,您可以使用浏览器访问
dashboard.example.com/dashboard
(替换为您的域名或 IP 地址)以打开 Kubernetes Dashboard。
请注意,在生产环境中,建议使用 HTTPS 和 TLS 证书来保护您的 Ingress 流量。