温馨提示×

如何配置centos k8s网络策略

小樊
55
2025-07-19 01:09:38
栏目: 智能运维

在CentOS上配置Kubernetes(k8s)网络策略,可以按照以下步骤进行:

1. 安装必要的软件包

首先,确保你的CentOS系统已经安装了kubectlkubeadm。如果还没有安装,可以使用以下命令:

sudo yum install -y kubectl kubeadm kubelet

2. 初始化Kubernetes集群

如果你还没有初始化Kubernetes集群,可以使用以下命令:

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

3. 配置网络插件

Kubernetes支持多种网络插件,例如Calico、Flannel等。这里以Calico为例:

安装Calico

使用以下命令安装Calico:

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

4. 创建网络策略

网络策略用于定义Pod之间的通信规则。以下是一个简单的示例,创建一个允许来自特定标签的Pod的流量,并拒绝其他所有流量的策略。

创建网络策略文件

创建一个名为allow-specific-pod.yaml的文件,内容如下:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-specific-pod
spec:
  podSelector:
    matchLabels:
      app: my-app
  policyTypes:
  - Ingress
  - Egress
  ingress:
  - from:
    - podSelector:
        matchLabels:
          access: "true"
    ports:
    - protocol: TCP
      port: 80
  egress:
  - to:
    - podSelector:
        matchLabels:
          access: "true"
    ports:
    - protocol: TCP
      port: 443

应用网络策略

使用以下命令应用网络策略:

kubectl apply -f allow-specific-pod.yaml

5. 验证网络策略

你可以使用以下命令查看网络策略的状态:

kubectl get networkpolicy

你也可以查看特定Pod的网络策略应用情况:

kubectl describe networkpolicy allow-specific-pod

6. 测试网络策略

创建一些测试Pod来验证网络策略是否生效:

创建测试Pod

创建一个名为test-pod.yaml的文件,内容如下:

apiVersion: v1
kind: Pod
metadata:
  name: test-pod
  labels:
    app: my-app
spec:
  containers:
  - name: test-container
    image: nginx

应用测试Pod:

kubectl apply -f test-pod.yaml

创建允许访问的Pod

创建一个名为allowed-pod.yaml的文件,内容如下:

apiVersion: v1
kind: Pod
metadata:
  name: allowed-pod
  labels:
    access: "true"
spec:
  containers:
  - name: allowed-container
    image: nginx

应用允许访问的Pod:

kubectl apply -f allowed-pod.yaml

测试网络策略

尝试从allowed-pod访问test-pod

kubectl exec -it allowed-pod -- curl http://test-pod

如果配置正确,你应该能够成功访问。

通过以上步骤,你可以在CentOS上配置Kubernetes网络策略,确保Pod之间的通信符合你的安全要求。

0