website/content/zh/docs/tasks/administer-cluster/weave-network-policy.md

2.2 KiB

approvers title content_template
bboreham
使用 Weave 网络来提供 NetworkPolicy templates/task

{{% capture overview %}}

本页展示怎么样使用 Weave 网络来提供 NetworkPolicy

{{% /capture %}}

{{% capture prerequisites %}}

完成 kubeadm 入门指南中的步骤1、2和3

{{% /capture %}}

{{% capture steps %}}

安装 Weave 网络插件

按照通过插件方式集成到 Kubernetes 指南完成安装

Kubernetes 的 Weave 网络插件配有一个网络策略控制器,它监控所有命名空间下 NetworkPolicy 相关的注解,然后配置 iptables 规则生成允许或者阻断通信的策略

{{% /capture %}}

{{% capture example %}}

命名空间隔离示例

  1. 创建携带 DefaultDeny 标识的命名空间
kind: Namespace
apiVersion: v1
metadata:
  name: myns
  annotations:
    net.beta.kubernetes.io/network-policy: |
      {
        "ingress": {
          "isolation": "DefaultDeny"
        }
      }      
  1. 在命名空间下创建2个 pod
kind: Pod
apiVersion: v1
metadata:
  name: pod1
  namespace: myns
  labels:
    inns: "yes"
spec:
  containers:
  - name: pod1
    image: nginx
---
kind: Pod
apiVersion: v1
metadata:
  name: pod2
  namespace: myns
  labels:
    inns: "yes"
spec:
  containers:
  - name: pod2
    image: nginx
  1. 获取 pod 的 IP 地址
kubectl get po -n myns -o wide

注意: 如果您对 pod 的 cURL 请求是被禁止的,请尝试在 pod 中访问其它的 pod

  1. 创建一个允许 pod 访问命名空间内其它 pod 的 Kubernetes NetworkPolicy
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: aaa
  namespace: myns
spec:
  podSelector:
    matchExpressions:
      - {key: inns, operator: In, values: ["yes"]}
  ingress:
    - from:
        - podSelector:
             matchExpressions:
               - {key: inns, operator: In, values: ["yes"]}

Weave 网络插件安装完成之后,您可以通过 NetworkPolicy 入门指南去尝试使用 Kubernetes NetworkPolicy

{{% /capture %}}