Kubernetes 使用Cilium提供NetworkPolicy

2022-06-06 10:16 更新

使用 Cilium 提供 NetworkPolicy

本頁展示如何使用 Cilium 提供 NetworkPolicy。

關(guān)于 Cilium 的背景知識,請閱讀 Cilium 介紹

在開始之前

你必須擁有一個 Kubernetes 的集群,同時你的 Kubernetes 集群必須帶有 kubectl 命令行工具。 建議在至少有兩個節(jié)點(diǎn)的集群上運(yùn)行本教程,且這些節(jié)點(diǎn)不作為控制平面主機(jī)。 如果你還沒有集群,你可以通過 Minikube 構(gòu)建一個你自己的集群,或者你可以使用下面任意一個 Kubernetes 工具構(gòu)建:

要檢查版本,請輸入 ?kubectl version?。

在 Minikube 上部署 Cilium 用于基本測試

為了輕松熟悉 Cilium 你可以根據(jù) Cilium Kubernetes 入門指南 在 minikube 中執(zhí)行一個 cilium 的基本 DaemonSet 安裝。

要啟動 minikube,需要的最低版本為 1.5.2,使用下面的參數(shù)運(yùn)行:

minikube version
minikube version: v1.5.2
minikube start --network-plugin=cni --memory=4096

對于 minikube 你可以使用 Cilium 的 CLI 工具安裝它。 Cilium 將自動檢測集群配置并為成功的集群部署選擇合適的組件。

curl -LO https://github.com/cilium/cilium-cli/releases/latest/download/cilium-linux-amd64.tar.gz
sudo tar xzvfC cilium-linux-amd64.tar.gz /usr/local/bin
rm cilium-linux-amd64.tar.gz
cilium install
?? Auto-detected Kubernetes kind: minikube
? Running "minikube" validation checks
? Detected minikube version "1.20.0"
??  Cilium version not set, using default version "v1.10.0"
?? Auto-detected cluster name: minikube
?? Auto-detected IPAM mode: cluster-pool
?? Auto-detected datapath mode: tunnel
?? Generating CA...
2021/05/27 02:54:44 [INFO] generate received request
2021/05/27 02:54:44 [INFO] received CSR
2021/05/27 02:54:44 [INFO] generating key: ecdsa-256
2021/05/27 02:54:44 [INFO] encoded CSR
2021/05/27 02:54:44 [INFO] signed certificate with serial number 48713764918856674401136471229482703021230538642
?? Generating certificates for Hubble...
2021/05/27 02:54:44 [INFO] generate received request
2021/05/27 02:54:44 [INFO] received CSR
2021/05/27 02:54:44 [INFO] generating key: ecdsa-256
2021/05/27 02:54:44 [INFO] encoded CSR
2021/05/27 02:54:44 [INFO] signed certificate with serial number 3514109734025784310086389188421560613333279574
?? Creating Service accounts...
?? Creating Cluster roles...
?? Creating ConfigMap...
?? Creating Agent DaemonSet...
?? Creating Operator Deployment...
? Waiting for Cilium to be installed...

入門指南其余的部分用一個示例應(yīng)用說明了如何強(qiáng)制執(zhí)行 L3/L4(即 IP 地址+端口)的安全策略 以及L7 (如 HTTP)的安全策略。

部署 Cilium 用于生產(chǎn)用途

關(guān)于部署 Cilium 用于生產(chǎn)的詳細(xì)說明,請見 Cilium Kubernetes 安裝指南 此文檔包括詳細(xì)的需求、說明和生產(chǎn)用途 DaemonSet 文件示例。

了解 Cilium 組件

部署使用 Cilium 的集群會添加 Pods 到 ?kube-system? 命名空間。要查看 Pod 列表,運(yùn)行:

kubectl get pods --namespace=kube-system -l k8s-app=cilium

你將看到像這樣的 Pods 列表:

NAME           READY   STATUS    RESTARTS   AGE
cilium-kkdhz   1/1     Running   0          3m23s
...

你的集群中的每個節(jié)點(diǎn)上都會運(yùn)行一個 ?cilium ?Pod,通過使用 Linux BPF 針對該節(jié)點(diǎn)上的 Pod 的入站、出站流量實施網(wǎng)絡(luò)策略控制。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號