任务

Kubernetes v1.16 版本的文档已不再维护。您现在看到的版本来自于一份静态的快照。如需查阅最新文档,请点击 最新版本。

Edit This Page

使用 Cilium 作为 NetworkPolicy

本页展示了如何使用 Cilium 作为 NetworkPolicy。

关于 Cilium 的背景知识,请阅读 Cilium 介绍

准备开始

你必须拥有一个 Kubernetes 的集群,同时你的 Kubernetes 集群必须带有 kubectl 命令行工具。 如果你还没有集群,你可以通过 Minikube 构建一 个你自己的集群,或者你可以使用下面任意一个 Kubernetes 工具构建:

要获知版本信息,请输入 kubectl version.

在 Minikube 上部署 Cilium 用于基本测试

为了轻松熟悉 Cilium 您可以根据Cilium Kubernetes 入门指南在 minikube 中执行一个 cilium 的基本的 DaemonSet 安装。

在 minikube 中的安装配置使用一个简单的“一体化” YAML 文件,包括了 Cilium 的 DaemonSet 配置,连接 minikube 的 etcd 实例,以及适当的 RBAC 设置。

$ kubectl create -f https://raw.githubusercontent.com/cilium/cilium/master/examples/kubernetes/cilium.yaml
configmap "cilium-config" created
secret "cilium-etcd-secrets" created
serviceaccount "cilium" created
clusterrolebinding "cilium" created
daemonset "cilium" created
clusterrole "cilium" created

入门指南其余的部分用一个示例应用说明了如何强制执行L3/L4(即 IP 地址+端口)的安全策略以及L7 (如 HTTP)的安全策略。

部署 Cilium 用于生产用途

关于部署 Cilium 用于生产的详细说明,请见Cilium Kubernetes 安装指南 ,此文档包括详细的需求、说明和生产用途 DaemonSet 文件示例。

了解 Cilium 组件

部署使用 Cilium 的集群会添加 Pods 到kube-system命名空间。 要查看此Pod列表,运行:

kubectl get pods --namespace=kube-system

您将看到像这样的 Pods 列表:

NAME            DESIRED   CURRENT   READY     NODE-SELECTOR   AGE
cilium          1         1         1         <none>          2m
...

有两个主要组件需要注意:

  • 在集群中的每个节点上都会运行一个 cilium Pod,并利用Linux BPF执行网络策略管理该节点上进出 Pod 的流量。
  • 对于生产部署,Cilium 应该复用 Kubernetes 所使用的键值存储集群(如 etcd),其通常在Kubernetes 的 master 节点上运行。 Cilium Kubernetes安装指南 包括了一个示例 DaemonSet,可以自定义指定此键值存储集群。 简单的 minikube 的“一体化” DaemonSet 不需要这样的配置,因为它会自动连接到 minikube 的 etcd 实例。

接下来

群集运行后,您可以按照声明网络策略 用 Cilium 试用 Kubernetes NetworkPolicy。 玩得开心,如果您有任何疑问,请联系我们 Cilium Slack Channel

反馈