使用 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 频道与我们联系。

上次修改时间:太平洋标准时间 2023 年 2 月 22 日下午 6:25:修复 Cilium Kubernetes 安装指南链接 (2a2c5cc2fb)