在Kubernetes(简称K8S)集群中,Dashboard是一个方便用户管理集群资源和应用的Web界面。然而有些情况下,我们希望禁用Dashboard的访问,以提高集群的安全性。下面详细介绍如何在K8S中配置禁用Dashboard访问。

### 流程总览
首先让我们来看一下整个禁用Dashboard的流程如下表所示:

| 步骤 | 操作 |
| ------ | ------ |
| 1 | 下载Dashboard的YAML文件 |
| 2 | 修改Dashboard的Service类型为ClusterIP |
| 3 | 禁用Dashboard的访问 |

### 操作步骤详解
#### 步骤1:下载Dashboard的YAML文件
首先,我们需要下载Dashboard的YAML文件,可以通过以下命令来下载:

```bash
curl -Lo dashboard.yaml https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml
```

#### 步骤2:修改Dashboard的Service类型为ClusterIP
在下载的dashboard.yaml文件中,找到Service的部分,将其类型修改为ClusterIP,示例代码如下:

```yaml
apiVersion: v1
kind: Service
metadata:
name: kubernetes-dashboard
namespace: kubernetes-dashboard
labels:
k8s-app: kubernetes-dashboard
spec:
type: ClusterIP # 将type修改为ClusterIP
selector:
k8s-app: kubernetes-dashboard
ports:
- port: 443
targetPort: 8443
```

#### 步骤3:禁用Dashboard的访问
为了禁用Dashboard的访问,我们可以通过创建对应的Ingress或者使用K8S内置的网络策略来限制访问。下面我们展示如何使用网络策略来禁止外部访问:

首先,创建一个NetworkPolicy文件no-dashboard-ingress.yaml,示例代码如下:

```yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: no-dashboard-ingress
spec:
podSelector:
matchLabels: {}
ingress: []
```

然后,应用这个NetworkPolicy文件:

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

通过这样配置,已禁用了通过Ingress访问Dashboard的方式,从而实现了Dashboard不可用。

### 总结
通过以上步骤,我们成功地禁用了Kubernetes中Dashboard的访问,提升了集群的安全性。希望这篇文章能够帮助到刚入行的小白理解如何配置禁用Dashboard的过程。在实际应用过程中,根据具体需求,可以选择适合的方式来实现Dashboard的禁用。祝学习顺利!