-
API穩定性,可以確保API向上或者向下相容。
-
穩定版本,提供生產環境下長期支援。
-
安全問題處理流程。
-
基於Slack和GitHub的及時響應,以及基於其上的問題和功能需求處理流程。
-
全分佈:所有資料通道元素在叢集內都是全分佈的,在每個叢集節點上都執行在作業系統最有效的層級上。
-
Service Mesh資料通道:BPF允許使用者為快速增長的Service Mesh空間建立合理的資料平面。Cilium 1.0已經提供了例如Envoy的透明內部代理。未來Cilium版本會提供Sidecar代理加速。我們已經釋出了一些早期Sidecar代理的基準指標[6]。
-
基於身份:Cilium將負載和身份資訊在每個包內都打包在一起(而不是依靠源IP地址),提供高可擴充套件安全性。這一設計使得身份可以被嵌入任何基於IP的協議,而且與未來的SPIFFEE[]7或者Kubernetes的Container Identity Working Group[8]相容。
-
基於IP/CIDR:如果基於身份的方式不適用,那麼可以採用基於IP/CIDR安全方式控制安全訪問。Cilium建議在安全策略中儘量採用抽象方式,避免寫入具體IP地址。其中一個實體就是定義基於Kubernetes服務名的策略。
-
API自感知安全機制:HTTP/REST、gRPC和Kafka廣泛使用暴露出基於IP和埠的服務,其安全機制明顯不足。內建自感知API和資料儲存相關協議在相關粒度上允許強制使用最小特權級別安全。
-
Kubernetes服務實現:所有Kubernetes叢集IP服務會自動在BPF中實現,為kube-proxy在叢集間提供負載均衡提供了一種高可擴充套件性選擇。
-
API驅動:對更超前的使用場景,擴充套件式API可以用來直接配置負載均衡模組。
-
Overlay/VXLAN:此方法是在IP協議上負載身份資訊的最簡單整合方法。VXLAN使用硬體幫助實現最佳效能。
-
直接路由:直接路由將路由功能授權給已有網路模組,例如內建Linux路由層,IPVLAN或者雲路由提供者。
-
顯微鏡:顯微鏡為叢集層面提供基於標簽,安全身份和事件型別的過濾,提供安全和轉發事件的視覺化。
-
基於BPF高效能監控:高效能BPF效能迴圈緩衝區(perf ring buffer)的設定,就是為了追蹤每秒百萬級的應用事件,提供整合BPF可程式設計性的高效通道,允許資料視覺化同時增加最小額外負載。
-
API驅動:所有視覺化都透過API提供介面,可以嵌入現有系統中。
-
叢集連線狀態:Cilium週期性監控叢集連線狀態,包括節點之間延遲,判斷節點失效和底層網路問題
-
Prometheus儀錶:可以將Cilium整合到現有監控儀錶盤中。
-
健康與狀態檢查:可靠健康和狀態檢查可以幫助評判構成元素的健康性。
-
排錯和報表工具幫助自動檢測一般問題並蒐集bug報告。
$ curl -sLO https://releases.cilium.io/v1.0.0/examples/kubernetes/cilium.yaml
$ vim cilium.yaml [provide etcd or consul address]
$ kubectl create -f cilium.yaml
$ kubectl create -f demo_app.yaml
$ kubectl create -f http_policy.yaml
$ kubectl exec -ti xwing-68c6cb4b4b-red5 -- curl -s -XPUT deathstar/v1/exhaust-port
Access denied
-
多叢集服務路由:Cilium簡化網路模型、地址解耦和策略是的未來叢集之間擴充套件很容易。Cilium不需要複雜proxy或者Ingress方案,就可以支援跨叢集Kubernetes服務路由,並提供全部基於身份和API感知的安全功能。
-
與OpenTracing、Jaeger和ZIPkin整合:BPF增加很少額外負載的特性使得它成為追蹤和控制系統最佳新技術。
-
CRI支援:考慮到很多社群的呼籲,我們希望支援CRI功能以便更好抽象container runtime環境。
-
非容器負載:BPF資料通道不僅限於容器抽象,它只不過是第一個大力推廣的場景。未來版本將會提供APIs和如何與Linux任務、虛機的檔案,並提供如何將基於身份的安全空間與現存使用IP地址無法移植環境橋接的支援。
-
https://cilium.io/blog/2018/04/17/why-is-the-kernel-community-replacing-iptables
-
https://cilium.io/blog/2018/04/24/cilium-security-for-age-of-microservices
-
http://docs.cilium.io/en/doc-1.0/intro/#functionality-overview
-
https://cilium.io/blog/2018/04/17/why-is-the-kernel-community-replacing-iptables#bpf
-
http://docs.cilium.io/en/doc-1.0/bpf/
-
https://cilium.io/blog/2018/04/24/cilium-security-for-age-of-microservices
-
https://github.com/spiffe/spiffe
-
https://github.com/kubernetes/community/tree/master/wg-container-identity
-
http://docs.cilium.io/en/doc-1.0/gettingstarted/minikube/
-
http://docs.cilium.io/en/doc-1.0/gettingstarted/
-
http://docs.cilium.io/en/doc-1.0/kubernetes/quickinstall/
-
http://docs.cilium.io/en/doc-1.0/install/guides/#
-
https://github.com/cilium/cilium/issues/3585