在Kubernetes中,配置ACL(Access Control List)只允许特定端口通过是非常重要的安全措施。通过限制允许通过的端口,我们可以增加对集群的访问控制,防止未经授权的访问。下面将详细介绍如何配置ACL只允许几个端口通过的步骤,并提供相应的代码示例。

整体流程如下:
```
| 步骤 | 操作 |
|------|------------------------------------|
| 1 | 创建Namespace |
| 2 | 创建Service |
| 3 | 创建NetworkPolicy |
```

具体操作如下:

### 步骤 1: 创建Namespace

首先,我们需要创建一个Namespace用于隔离我们的资源和网络策略。

```yaml
apiVersion: v1
kind: Namespace
metadata:
name: acl-example
```

### 步骤 2: 创建Service

接下来,我们创建一个Service来暴露我们的应用程序,并指定允许的端口。

```yaml
apiVersion: v1
kind: Service
metadata:
name: my-service
namespace: acl-example
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
- protocol: TCP
port: 443
```

在上面的示例中,我们创建了一个服务`my-service`,指定了允许通过的端口80和443。

### 步骤 3: 创建NetworkPolicy

最后,我们需要创建一个NetworkPolicy来限制只允许特定端口通过。

```yaml
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: allow-specific-ports
namespace: acl-example
spec:
podSelector:
matchLabels:
app: my-app
policyTypes:
- Ingress
ingress:
- ports:
- protocol: TCP
port: 80
- protocol: TCP
port: 443
```

在上面的示例中,我们创建了一个名为`allow-specific-ports`的NetworkPolicy,它指定只允许端口80和443通过。

通过以上步骤,我们成功配置了ACL只允许特定端口通过。同时,我们还可以根据需要对其他端口进行配置,增加访问控制的灵活性和粒度。

希望以上解释能帮助你理解如何在Kubernetes中配置ACL只允许几个端口通过。如果有任何疑问或需要进一步帮助,请随时联系我。祝你学习顺利!