使用 Cilium 实现网络策略
本页面展示如何使用 Cilium 进行网络策略。
有关 Cilium 的背景信息,请阅读 Cilium 简介。
准备开始
你需要有一个 Kubernetes 集群,并且必须配置 kubectl 命令行工具以与你的集群通信。建议在至少有两个不充当控制平面主机的节点上运行此教程。 如果你还没有集群,可以使用 minikube 创建一个,或者可以使用这些 Kubernetes 游乐场之一
要检查版本,请输入kubectl version
。在 Minikube 上部署 Cilium 进行基本测试
为了轻松熟悉 Cilium,你可以按照Cilium Kubernetes 入门指南在 minikube 中执行 Cilium 的基本 DaemonSet 安装。
要启动 minikube,所需的最低版本为 >= v1.5.2,请使用以下参数运行
minikube version
minikube version: v1.5.2
minikube start --network-plugin=cni
对于 minikube,你可以使用其 CLI 工具安装 Cilium。 为此,请首先使用以下命令下载最新版本的 CLI
curl -LO https://github.com/cilium/cilium-cli/releases/latest/download/cilium-linux-amd64.tar.gz
然后使用以下命令将下载的文件提取到你的 /usr/local/bin
目录
sudo tar xzvfC cilium-linux-amd64.tar.gz /usr/local/bin
rm cilium-linux-amd64.tar.gz
运行上述命令后,你现在可以使用以下命令安装 Cilium
cilium install
然后,Cilium 将自动检测集群配置,并创建和安装适当的组件以进行成功安装。 组件包括
- Secret
cilium-ca
中的证书颁发机构 (CA) 和 Hubble(Cilium 的可观察性层)的证书。 - 服务账号。
- 集群角色。
- ConfigMap。
- Agent DaemonSet 和 Operator Deployment。
安装完成后,你可以使用 cilium status
命令查看 Cilium 部署的总体状态。 请参阅 status
命令的预期输出 这里。
《入门指南》的其余部分解释了如何使用示例应用程序强制执行 L3/L4(即 IP 地址 + 端口)安全策略以及 L7(例如,HTTP)安全策略。
部署 Cilium 以用于生产
有关部署 Cilium 用于生产的详细说明,请参阅:Cilium Kubernetes 安装指南 此文档包括详细的要求、说明和示例生产 DaemonSet 文件。
了解 Cilium 组件
部署带有 Cilium 的集群会将 Pod 添加到 kube-system
命名空间。要查看此 Pod 列表,请运行
kubectl get pods --namespace=kube-system -l k8s-app=cilium
你将看到类似于以下的 Pod 列表
NAME READY STATUS RESTARTS AGE
cilium-kkdhz 1/1 Running 0 3m23s
...
cilium
Pod 在集群中的每个节点上运行,并使用 Linux BPF 在该节点上对来往于 Pod 的流量强制执行网络策略。
下一步
一旦你的集群开始运行,你可以按照 声明网络策略 来尝试使用 Cilium 的 Kubernetes NetworkPolicy。玩得开心,如果你有任何问题,请使用Cilium Slack 频道与我们联系。