「K8S 生態週報」內容主要包含我所接觸到的 K8S 生態相關的每週值得推薦的一些信息。歡迎訂閱知乎專欄 「k8s生態」。
KIND (Kubernetes In Docker) 關注個人小夥伴想必已經都很熟悉了,這是我一直都在參與也用的很是多的一個項目,它能夠很方便的使用 Docker 容器做爲 Kubernetes 的 Node ,快速的啓動一個/或多個測試集羣。自上個版本發佈以來已通過了 4 個月,咱們一塊兒來看看這個版本中有哪些值得注意的變動吧!node
bazel
構建鏡像的方式,kind build node-image
的 --type
參數已廢棄;kind build node-image
的 --kube-root
參數已廢棄,將會按照標準模式尋找 k8s 的代碼目錄的位置;kind build node-image
新增了一個 --arch
的參數,可支持構建多架構的鏡像了;你能夠經過如下任意方式安裝最新版的 KIND :linux
GO111MODULE="on" go get sigs.k8s.io/kind@v0.11.0
;wget -O kind https://kind.sigs.k8s.io/dl/v0.11.0/kind-linux-amd64
;make build
;更多關於 KIND 的使用及說明請參考官方文檔:https://kind.sigs.k8s.io/ 歡迎下載使用。git
Apache APISIX Ingress controller 是 Apache APISIX 的控制面組件,能夠將其自定義資源(CR)及 Kubernetes 中原生的 Ingress 資源發佈至 APISIX 中,進而利用 APISIX 做爲入口網關管理南北向的流量。 咱們一塊兒來看看本次發佈的 v0.6.0 版本中帶來了哪些值得注意的變動吧:github
ApisixUpstream
和 ApisixTls
增長了 jsonschema 校驗;
Cilium 我在以前的文章中已經介紹過不少次了,它基於 eBPF 技術,能夠爲 Kubernetes 中應用程序服務間網絡和 API 鏈接提供透明代理和保護。 想快速瞭解 Cilium 能夠參考我以前寫的 《Cilium 快速上手》 想快速瞭解 eBPF 也能夠看看我在 PyCon China 2020 上作的分享。apache
Cilium v1.10 版本是一個比較大的特性版本,在這個版本中帶來了衆多值得關注的特性,咱們一塊兒來看看吧!編程
在幾乎全部網絡組件都在作入口網關的時候, Cilium 發現當把雲原生應用和傳統應用集成時,傳統應用大多經過 IP 白名單的方式進行受權, 加上 Pod IP 的動態性,對 IP 地址的管理就成爲了一個痛點。json
如今 Cilium 新版本中,經過新的 Kubernetes CRD ,能夠在數據包離開 Kubernetes 集羣時將靜態 IP 與流量相關聯,這使得外部防火牆會使用此一致的靜態 IP 去識別 Pod 流量。api
其實就是 Cilium 幫忙作了 NAT ,使用起來也很簡單:網絡
apiVersion: cilium.io/v2alpha1 kind: CiliumEgressNATPolicy metadata: name: egress-sample spec: egress: - podSelector: matchLabels: # The following label selects default namespace io.kubernetes.pod.namespace: default destinationCIDRs: - 192.168.33.13/32 egressSourceIP: "192.168.33.100"
上述的配置就是說:使用 egressSourceIP
中配置的 IP 來處理來自於 default 命名空間中 Pod 的出口流量了。架構
不少小夥伴放棄 Cilium 的一大緣由多是由於 BGP 的支持,但從這個版本開始就不用擔憂了!
Cilium 經過集成 MetalLB 來進行的,以此來達到 BGP L3 協議支持,這樣 Cilium 能夠爲 LoadBalancer 類型的服務分配 IP ,並經過 BGP 將其通告的路由器,這樣外部的流量就能夠正常的訪問到服務了。
配置 BGP 支持的方式也很簡單:
apiVersion: v1 kind: ConfigMap metadata: name: bgp-config namespace: kube-system data: config.yaml: | peers: - peer-address: 10.0.0.1 peer-asn: 64512 my-asn: 64512 address-pools: - name: default protocol: bgp addresses: - 192.0.2.0/24
主要就是 peers
用於和網絡中現有的 BGP 路由器互聯,address-pools
則是 Cilium 爲 LoadBalancer 分配的 IP 池。
Cilium 基於 eBPF 的負載均衡器最近增長了對 Maglev 一致性哈希的支持,以及 eXpress(XDP) 層上轉發平面的加速,這些特性使得它也能夠做爲獨立的 4 層負載均衡存在。
Cilium XDP L4LB 具備完整的 IPv4/IPv6 雙棧支持,能夠獨立於 Kubernetes 集羣獨立部署,做爲一個可編程的 L4 LB 存在。
另外就是增長了對 Wireguard 的支持,進行 Pod 間流量的加密;增長了一個新的 Cilium CLI ,用於管理 Cilium 集羣;以及 比以往更加優異的性能!
更多關於 Cilium 項目的變動,請參考其 ReleaseNote
歡迎訂閱個人文章公衆號【MoeLove】