在Kubernetes(K8S)中,Dashboard是一个用于监控和管理集群资源的Web界面。Ingress是K8S中的一种资源对象,用于管理对集群内部的服务的外部访问。在本文中,我们将探讨如何在K8S集群中配置Dashboard并通过Ingress进行访问。

整个实现过程可以分为以下步骤:

| 步骤 | 操作 |
|-------|------------------------------------|
| 1 | 部署Dashboard |
| 2 | 部署Ingress Controller |
| 3 | 配置Ingress资源对象 |

步骤1:部署Dashboard
首先,我们需要部署Dashboard资源到K8S集群中。我们可以通过以下命令来完成:

```bash
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
```

这个命令会下载Dashboard的部署清单,并应用到集群中。部署成功后,我们可以通过以下命令获取Dashboard的URL:

```bash
kubectl proxy
```

然后访问 http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/ 来打开Dashboard页面。

步骤2:部署Ingress Controller
接下来,我们需要部署Ingress Controller来处理Ingress资源对象的配置。常见的Ingress Controller有Nginx Ingress Controller、Traefik等。我们以Nginx Ingress Controller为例,可以通过以下命令进行部署:

```bash
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/cloud/deploy.yaml
```

这个命令会下载Nginx Ingress Controller的部署清单,并应用到集群中。

步骤3:配置Ingress资源对象
现在我们需要创建一个Ingress资源对象来配置外部访问Dashboard。首先创建一个名为`dashboard-ingress.yaml`的文件,内容如下:

```yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: dashboard-ingress
namespace: kubernetes-dashboard
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: YOUR_DOMAIN_NAME
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: kubernetes-dashboard
port:
number: 443
```

在上面的配置中,将`YOUR_DOMAIN_NAME`替换为你要使用的域名。然后,使用以下命令将Ingress资源对象应用到集群中:

```bash
kubectl apply -f dashboard-ingress.yaml
```

这样,我们就配置好了Ingress资源对象,可以通过设置的域名访问Dashboard了。

总结:
通过以上步骤,我们成功建立了K8S Dashboard的Ingress访问方式。首先,我们部署了Dashboard资源到集群中,然后部署了Nginx Ingress Controller来处理Ingress配置,最后创建了Ingress资源对象来配置Dashboard的外部访问。现在,新手也可以很方便地访问K8S Dashboard了。希望以上内容对你有所帮助!