整体流程如下:
```
| 步骤 | 操作 |
|------|------------------------------------|
| 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只允许几个端口通过。如果有任何疑问或需要进一步帮助,请随时联系我。祝你学习顺利!