<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          GKE 使用 eBPF 提高容器安全性和可視性

          共 2594字,需瀏覽 6分鐘

           ·

          2020-08-21 10:14

          Kubernetes 真正的超級(jí)功能之一是其開發(fā)者優(yōu)先的網(wǎng)絡(luò)模式,它提供了易于使用的功能,如 L3/L4 服務(wù)和 L7 入口,將流量引入集群,以及用于隔離多租戶工作負(fù)載的網(wǎng)絡(luò)策略。隨著越來越多的企業(yè)采用 Kubernetes,圍繞多云、安全、可視性和可擴(kuò)展性的新要求,用例的范圍也在擴(kuò)大。此外,服務(wù)網(wǎng)格和 serverless 等新技術(shù)對(duì) Kubernetes 底層的定制化提出了更多要求。這些新需求都有一些共同點(diǎn):它們需要一個(gè)更加可編程的數(shù)據(jù)平面,能夠在不犧牲性能的情況下執(zhí)行 Kubernetes 感知的數(shù)據(jù)包操作。

          eBPF 是一種新的 Linux 網(wǎng)絡(luò)范式,它在 Linux 內(nèi)核內(nèi)向網(wǎng)絡(luò)棧暴露了可編程的 hooks,用用戶空間信息充實(shí)內(nèi)核的能力--無需在用戶和內(nèi)核空間之間來回切換--使得對(duì)網(wǎng)絡(luò)數(shù)據(jù)包的上下文感知操作得以高速進(jìn)行。

          今天要介紹的是 GKE Dataplane V2,這是一個(gè)充分利用 eBPF 和 Cilium 的強(qiáng)大功能的數(shù)據(jù)平面,Cilium 是一個(gè)開源項(xiàng)目,使用 eBPF 使 Linux 內(nèi)核具有Kubernetes 感知能力?,F(xiàn)在處于測(cè)試階段,我們也在使用 Dataplane V2 將Kubernetes 網(wǎng)絡(luò)策略日志引入 GKE。

          什么是 eBPF 和 Cilium?

          eBPF 是一項(xiàng)革命性的技術(shù),它可以在 Linux 內(nèi)核中運(yùn)行沙盒程序,而無需重新編譯內(nèi)核或加載內(nèi)核模塊。在過去的幾年里,eBPF 已經(jīng)成為解決以前依賴內(nèi)核變化或內(nèi)核模塊的問題的標(biāo)準(zhǔn)方法。此外,eBPF 還在網(wǎng)絡(luò)、安全性和應(yīng)用程序分析等領(lǐng)域開發(fā)了新一代的工具,而是在不影響執(zhí)行效率或安全性的情況下,主動(dòng)對(duì)運(yùn)行時(shí)行為進(jìn)行重新編程。

          Cilium 是一個(gè)在 eBPF 之上設(shè)計(jì)的開源項(xiàng)目,旨在解決容器工作負(fù)載的可伸縮性、安全性和可視性要求。Cilium 超越了傳統(tǒng)的容器網(wǎng)絡(luò)接口(CNI),提供了服務(wù)解析、策略執(zhí)行等功能,如下圖所示。

          Cilium 社區(qū)為引導(dǎo) Cilium 項(xiàng)目付出了巨大的努力,這是目前 Kubernetes 上最成熟的 eBPF 實(shí)現(xiàn)方案。我們?cè)?Google 積極為 Cilium 項(xiàng)目做出貢獻(xiàn),以便整個(gè) Kubernetes 社區(qū)能夠利用我們?cè)?eBPF 方面取得的進(jìn)步。

          使用 eBPF 構(gòu)建 Kubernetes 網(wǎng)絡(luò)策略日志

          讓我們來看看 eBPF 是如何幫助我們解決一個(gè)真實(shí)的客戶痛點(diǎn)的具體案例。具有安全意識(shí)的客戶使用 Kubernetes 網(wǎng)絡(luò)策略來聲明 Pods 如何相互通信,然而,沒有可擴(kuò)展的方法來對(duì)這些策略的行為進(jìn)行故障排除和審計(jì),這使得它對(duì)企業(yè)客戶來說沒太大用處。通過將 eBPF 引入 GKE,我們現(xiàn)在可以支持實(shí)時(shí)策略執(zhí)行,也可以以線速將策略行為(允許/拒絕)關(guān)聯(lián)到 Pod、命名空間和策略名稱,對(duì)節(jié)點(diǎn)的 CPU 和內(nèi)存資源影響最小。

          上圖顯示了高度專業(yè)化的 eBPF 程序是如何安裝到 Linux 內(nèi)核中,以執(zhí)行網(wǎng)絡(luò)策略并報(bào)告操作日志的。當(dāng)數(shù)據(jù)包進(jìn)入虛擬機(jī)時(shí),安裝在內(nèi)核中的 eBPF 程序會(huì)決定如何路由該數(shù)據(jù)包,與 IPTables 不同的是,eBPF 程序可以訪問 Kubernetes 特定的元數(shù)據(jù),包括網(wǎng)絡(luò)策略信息,這樣一來,它們不僅可以允許或拒絕數(shù)據(jù)包,還可以將帶注釋的操作報(bào)告回用戶空間。這些事件使我們有可能生成對(duì) Kubernetes 用戶有意義的網(wǎng)絡(luò)策略日志。例如,下圖所示的日志代碼片段精確地指出了哪個(gè)源 ?Pod 試圖連接到哪個(gè)目的 Pod,以及哪個(gè)網(wǎng)絡(luò)策略允許該連接。

          在后臺(tái),網(wǎng)絡(luò)策略日志記錄利用 GKE Dataplane V2,不僅暴露了策略日志所需的信息,還完全抽象了用戶配置網(wǎng)絡(luò)策略執(zhí)行的細(xì)節(jié)。也就是說,當(dāng)你使用 Dataplane V2 時(shí),你不再需要擔(dān)心顯式啟用網(wǎng)絡(luò)策略,或者選擇正確的 CNI 在 GKE 集群上使用網(wǎng)絡(luò)策略。

          除了網(wǎng)絡(luò)策略,Kubernetes 負(fù)載均衡還可以使用 eBPF 實(shí)現(xiàn)直接服務(wù)器返回(DSR)模式。DSR 消除了使用 Kubernetes LoadBalancer 服務(wù)時(shí)丟失客戶端IP 地址的額外 NAT 問題,eBPF 能夠即時(shí)將元數(shù)據(jù)編碼到網(wǎng)絡(luò)數(shù)據(jù)包中,這使我們能夠向目標(biāo)節(jié)點(diǎn)提供其他信息,以便它可以直接與原始客戶端對(duì)話。通過 DSR,我們可以降低每個(gè)節(jié)點(diǎn)的帶寬需求,以及避免端口耗盡。

          eBPF 使用自定義元數(shù)據(jù)擴(kuò)展增強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)包的能力,可以實(shí)現(xiàn)很多可能的用例,我們和您一樣對(duì) Kubernetes 和 eBPF 的未來充滿期待,請(qǐng)繼續(xù)關(guān)注更多創(chuàng)新。

          eBPF使用自定義元數(shù)據(jù)擴(kuò)展網(wǎng)絡(luò)數(shù)據(jù)包的能力使一長(zhǎng)串可能的用例成為可能。我們對(duì)您和Kubernetes和eBPF的未來一樣感到興奮,請(qǐng)繼續(xù)關(guān)注更多創(chuàng)新。

          如何從中獲益

          企業(yè)總是希望通過提高基礎(chǔ)設(shè)施的可視性來改善其安全狀況,他們希望能夠快速識(shí)別異常的流量模式,例如與互聯(lián)網(wǎng)意外通信的 Pod 和拒絕服務(wù)攻擊。通過 Kubernetes 網(wǎng)絡(luò)策略日志,您現(xiàn)在可以直接在 Cloud Logging 控制臺(tái)中查看所有允許和拒絕的網(wǎng)絡(luò)連接,以對(duì)策略進(jìn)行故障排除并發(fā)現(xiàn)不規(guī)則的網(wǎng)絡(luò)活動(dòng)。

          要試用 Kubernetes 網(wǎng)絡(luò)策略日志功能,可以使用以下命令使用 Dataplane V2 創(chuàng)建一個(gè)新的 GKE 群集。

          gcloud?beta?container?clusters?create?<cluster?name>?\    --enable-dataplane-v2?\????--release-channel?rapid?\    --cluster-version?1.17.9-gke.600?\    --zone?us-east1-d

          ?

          原文鏈接:https://cloud.google.com/blog/products/containers-kubernetes/bringing-ebpf-and-cilium-to-google-kubernetes-engine




          K8S進(jìn)階訓(xùn)練營(yíng),點(diǎn)擊下方圖片了解詳情

          瀏覽 96
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  成人精品一区二区三区 | 狂欢综合网 | 四虎4hu | 亚洲综合久 | 操逼在线观看视频 |