K8S中的10248端口是 kubelet 默认的端口,用于与 master 节点通信,以获取指令并上报节点状态。在某些情况下,我们可能需要拒绝外部访问该端口以提高系统安全性。下面我将详细介绍如何实现“k8s的10248端口拒绝访问”。

**步骤概述:**

| 步骤 | 操作 |
| ---- | ---------------------------------- |
| 1 | 创建 NetworkPolicy 资源对象 |
| 2 | 配置 NetworkPolicy 的规则 |

**具体操作步骤:**

**步骤 1:创建 NetworkPolicy 资源对象**

首先,我们需要创建一个 NetworkPolicy 对象,该对象用来定义网络规则。

```yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: deny-kubelet-port
spec:
podSelector:
matchLabels: {}
policyTypes:
- Ingress
ingress:
- ports:
- port: 10248
protocol: TCP
```

解释:

- `kind: NetworkPolicy`:定义资源类型为 NetworkPolicy。
- `metadata: name`:指定资源名称为 deny-kubelet-port。
- `podSelector`:用于选择需要应用规则的 Pod。
- `policyTypes: Ingress`:指定规则类型为 Ingress,即入口规则。
- `ingress: ports: port`:定义需要拒绝访问的端口为 10248,协议为 TCP。

**步骤 2:配置 NetworkPolicy 的规则**

接下来,我们需要将上面创建的 NetworkPolicy 对象应用到 K8S 集群中。

```bash
kubectl apply -f networkpolicy.yaml
```

解释:

- `kubectl apply`:用于将配置文件应用到 K8S 集群中。
- `-f networkpolicy.yaml`:指定要应用的配置文件为上面定义的 NetworkPolicy 文件。

经过上述步骤,我们成功创建了一个 NetworkPolicy 对象,用于拒绝访问 kubelet 默认端口 10248。这样一来,外部客户端将无法直接访问该端口,从而提高了系统的安全性。

希望以上步骤能够帮助你实现“k8s的10248端口拒绝访问”。如果需要进一步了解如何使用 NetworkPolicy 来控制流量,可以参考 K8S 官方文档或者查找更多相关资料。祝你在学习和工作中顺利!