温馨提示×

centos k8s网络策略配置指南

小樊
77
2025-07-08 22:08:09
栏目: 智能运维

在CentOS上配置Kubernetes(k8s)网络策略主要涉及定义和部署NetworkPolicy资源对象,这些对象用于控制Pod之间的网络通信。以下是配置网络策略的基本步骤和示例:

准备工作

确保你的Kubernetes集群已经安装并运行。你可以使用Flannel或Calico等网络插件来提供CNI(容器网络接口)支持。

安装网络插件

以Calico为例,安装Calico网络插件:

kubectl apply -f https://docs.projectcalico.org/v3.25/manifests/calico.yaml

创建网络策略

创建一个YAML文件来定义您的网络策略。例如,创建一个名为 deny-all.yaml 的文件,内容如下:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: deny-all
spec:
  podSelector: {}
  policyTypes:
  - Ingress
  - Egress

这个策略会拒绝所有Pod之间的入站和出站流量。

应用网络策略

使用 kubectl 命令应用您创建的网络策略:

kubectl apply -f deny-all.yaml

验证网络策略

您可以使用以下命令查看当前的网络策略:

kubectl get networkpolicy

并且可以通过尝试Pod之间的通信来验证策略是否生效。

示例:允许特定Pod之间的通信

假设您有两个Pod,分别名为 pod-apod-b,并且您希望它们之间可以通信。您可以创建一个名为 allow-same-namespace.yaml 的文件,内容如下:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-same-namespace
spec:
  podSelector:
    matchLabels:
      app: my-app
  policyTypes:
  - Ingress
  - Egress
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: my-app
    ports:
    - protocol: TCP
      port: 80
  egress:
    - to:
        - podSelector:
            matchLabels:
              app: my-app
    ports:
    - protocol: TCP
      port: 80

然后应用这个策略:

kubectl apply -f allow-same-namespace.yaml

注意事项

  • 标签选择器:确保您的Pod有相应的标签,以便网络策略能够正确匹配。
  • 网络插件兼容性:不同的网络插件可能有不同的配置方式和限制,请参考相应插件的文档。
  • 测试和验证:在生产环境中应用网络策略之前,务必在测试环境中充分测试和验证。

通过以上步骤,您可以在CentOS上成功配置Kubernetes网络策略。

0