使用 Cilium 提供 NetworkPolicy
本页展示如何使用 Cilium 提供 NetworkPolicy。
关于 Cilium 的背景知识,请阅读 Cilium 介绍。
准备开始
你必须拥有一个 Kubernetes 的集群,同时你的 Kubernetes 集群必须带有 kubectl 命令行工具。 如果你还没有集群,你可以通过 Minikube 构建一 个你自己的集群,或者你可以使用下面任意一个 Kubernetes 工具构建:
要获知版本信息,请输入 kubectl version
.
在 Minikube 上部署 Cilium 用于基本测试
为了轻松熟悉 Cilium 你可以根据 Cilium Kubernetes 入门指南 在 minikube 中执行一个 cilium 的基本 DaemonSet 安装。
要启动 minikube,需要的最低版本为 1.3.1,使用下面的参数运行:
minikube version
minikube version: v1.3.1
minikube start --network-plugin=cni --memory=4096
挂载 BPF 文件系统:
minikube ssh -- sudo mount bpffs -t bpf /sys/fs/bpf
在 minikube 环境中,你可以部署下面的”一体化” YAML 文件,其中包含 Cilium 的 DaemonSet 配置以及适当的 RBAC 配置:
kubectl create -f https://raw.githubusercontent.com/cilium/cilium/master/examples/kubernetes/cilium.yaml
configmap/cilium-config created
serviceaccount/cilium created
serviceaccount/cilium-operator created
clusterrole.rbac.authorization.k8s.io/cilium created
clusterrole.rbac.authorization.k8s.io/cilium-operator created
clusterrolebinding.rbac.authorization.k8s.io/cilium created
clusterrolebinding.rbac.authorization.k8s.io/cilium-operator created
daemonset.apps/cilium create
deployment.apps/cilium-operator 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 READY STATUS RESTARTS AGE
cilium-6rxbd 1/1 Running 0 1m
...
你的集群中的每个节点上都会运行一个 cilium
Pod,通过使用 Linux BPF 针对该节点上的 Pod 的入站、出站流量实施网络策略控制。
接下来
集群运行后,你可以按照 声明网络策略 试用基于 Cilium 的 Kubernetes NetworkPolicy。 玩得开心,如果你有任何疑问,请到 Cilium Slack 频道 联系我们。