使用 Cilium 实现 NetworkPolicy
本页展示如何使用 Cilium 实现 NetworkPolicy。
要了解 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 Channel与我们联系。