在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Kubernetes多租戶集群的概念和常見的應用模式

jf_TEuU2tls ? 來源:浩道linux ? 2023-05-15 16:13 ? 次閱讀

解決多租戶集群的安全隔離問題對于企業上云而言至關重要。本文討論了 Kubernetes 多租戶集群的概念和常見的應用模式、企業內共享集群的業務場景以及 Kubernetes 現有的安全管理功能!

什么是多租戶集群

首先,我們討論一下“租戶”是什么。租戶的概念不僅是集群用戶,還包括構成計算、網絡、存儲和其他資源的工作負載集。在多租戶集群中,對單個集群中不同租戶進行隔離,這樣惡意租戶就無法攻擊其他租戶,共享集群資源也能合理地分配給租戶。根據隔離的安全級別,可以將集群分為軟隔離(Soft Multi-tenancy)和硬隔離(Hard Multi-tenancy)。軟隔離適用于企業內的多租戶集群,因為默認情況下不會有惡意租戶。在這種情況下,軟隔離主要是保護內部團隊之間的業務并防護可能的安全攻擊。硬隔離適用于那些提供對外服務的服務提供商。由于業務模式,不能保證不同租戶中業務用戶的安全背景,所以集群中的租戶和 Kubernetes 系統可能會相互攻擊,這時需要嚴格的隔離以確保安全性。下面會對不同的多租戶方案進行更詳細的描述。

c7032f80-f13b-11ed-90ce-dac502259ad0.png

多租戶使用場景

下面介紹兩種不同隔離要求的企業多租戶方案:

企業內共享集群的多租戶

這種場景下,所有集群用戶都來自企業,這也是許多 Kubernetes 集群客戶的使用場景。由于服務用戶的身份是可控的,因此這種業務模式的安全風險也相對可控,畢竟老板可以直接開掉有問題的員工。根據企業內部人員的結構,企業可以通過命名空間,按照邏輯對不同部門或團隊的資源進行隔離。另外,定義具有以下角色的業務人員:

集群管理員

具有集群管理功能,例如伸縮容、添加節點等

為租戶管理員創建并分配命名空間

管理各種策略,例如 RAM、RBAC、NetworkPolicy 以及 quota

租戶管理員

至少擁有集群 RAM 只讀權限

管理租戶中相關人員的 RBAC 配置

租戶用戶

在租戶命名空間允許范圍內使用 Kubernetes 資源

除了用戶角色的訪問控制之外,我們還要確保命名空間之間的網絡隔離,不同命名空間之間只允許白名單內的跨租戶應用程序請求。

c71e7b46-f13b-11ed-90ce-dac502259ad0.png

SaaS 和 KaaS 服務模型中的多租戶

在 SaaS 多租戶場景中,Kubernetes 集群中的租戶是 SaaS 平臺和 SaaS 控制平面上的服務應用程序實例。在這種場景下,平臺的服務應用程序實例分為不同的命名空間。服務的最終用戶無法與 Kubernetes 控制平面組件進行交互。這些最終用戶可以通過自定義的 SaaS 控制平面訪問和使用 SaaS 控制臺,使用服務或部署業務,如下左圖所示。例如,假設博客平臺已部署并在多租戶集群上運行。在這種情況下,租戶是每個客戶的博客實例和平臺的控制平面。平臺控制平面和每個托管博客都在不同的命名空間中運行。

KaaS 多租戶方案通常與云服務提供商有關。在這種場景下,業務平臺的服務通過 Kubernetes 控制平面直接暴露給不同租戶的用戶。最終用戶可以使用服務提供商提供的 Kubernetes API 或其他擴展 API。為了滿足隔離要求,不同的租戶同樣需要使用命名空間按照邏輯對訪問進行隔離,同時確保不同租戶的網絡和資源配額的隔離。

與企業內的共享集群相反,這里的最終用戶都來自非受信區域,所以可能會有在服務平臺上運行惡意代碼的惡意租戶。對此,SaaS 和 KaaS 服務模型中的多租戶集群需要更強的安全隔離。在這種場景下,Kubernetes 現有的原生功能還無法滿足安全要求,因此需要在運行時進行內核級別的隔離來增強此業務場景中的租戶安全性。

c7454faa-f13b-11ed-90ce-dac502259ad0.png

實施多租戶架構

在規劃和實施多租戶集群時,我們首先要通過資源隔離模型來使用 Kubernetes 的資源隔離層,該模型會將集群本身、命名空間、節點、Pod 和容器分別分層。當不同租戶的應用程序負載共享相同的資源模型時,就可能會產生安全風險,因此,在實施多租戶時,要控制每個租戶可訪問的資源域。在資源調度層面,還要確保處理敏感信息的容器只能運行在獨立的資源節點上。當不同租戶的負載共享同一資源域時,我們可以使用運行時的資源調度控制策略來降低跨租戶攻擊的風險。

盡管 Kubernetes 現有安全性和調度功能不足以實現租戶之間的完全安全隔離,但是可以通過命名空間隔離租戶使用的資源域,并使用 RBAC、PodSecurityPolicy、NetworkPolicy 等策略模型來控制租戶的資源訪問范圍以及資源調度功能。這種方法具有可靠的安全隔離能力。

以下部分重點介紹基于 Kubernetes 原生安全功能的多租戶實踐。

訪問控制

NetworkPolicy

NetworkPolicy 控制不同租戶業務 Pod 之間的網絡流量,并通過白名單進行跨租戶業務的訪問控制。

PodSecurityPolicy

PodSecurityPolicies(PSP)是 Kubernetes 中原生集群維度的資源模型,可以在創建 Pod 請求的準入階段驗證該行為是否滿足相應 PSP 的要求,例如檢查 Pod 是否使用主機的網絡、文件系統、指定端口或 PID 命名空間。另外,它能限制租戶內的用戶啟用特權容器,還會根據綁定的策略將相應的 SecurityContext 添加到 Pod,包括容器運行時的 UID、GID 以及添加或刪除的內核功能等設置。

OPA

Open Policy Agent(OPA)是一種功能強大的策略引擎,支持解耦的策略決策服務。目前,社區已經有了成熟的 Kubernetes 集成解決方案。當現有 RBAC 在命名空間級別上的隔離不能滿足企業應用程序復雜的安全需求時,OPA 可以在對象模型級別提供細粒度的訪問策略控制。另外,OPA 還支持 7 層 NetworkPolicy 定義以及基于標簽和注釋的跨命名空間訪問控制,可以有效增強 Kubernetes 原生的 NetworkPolicy。

資源調度

資源配額(ResourceQuota)和限制范圍(LimitRange)

在多租戶場景中,不同的團隊或部門會共享集群資源,這可能導致資源競爭問題,需要通過限制每個租戶的資源使用配額來解決。ResourceQuota 用于限制總資源請求,以及租戶對應命名空間下所有 Pod 的資源。LimitRange 用于設置租戶的命名空間中 Pod 的默認資源請求和限制值。另外,我們還可以限制租戶的存儲資源配額和對象數量配額。

Pod 優先級(Priority)和搶占(Preemption)

從 Kubernetes 1.14 版本開始,Pod 優先級和搶占功能已成為重要組成部分。容器優先級表示調度隊列中處于 pending 狀態容器的優先級。由于節點資源不足或其他原因而無法調度高優先級的 Pod 時,調度程序會嘗試驅逐低優先級的 Pod,來保證可以先調度、部署高優先級的 Pod。在多租戶方案中,優先級和搶占的設置可以用來保護租戶中重要業務應用程序的可用性。此外,Pod 優先級與 ResourceQuota 搭配使用可將租戶配額限制設為指定的優先級。

專用節點(Dedicated Nodes)

注意:惡意租戶可能繞過節點 taint 和 tolerance 機制強制實施策略。以下內容僅適用于企業內受信任租戶的集群,或租戶無法直接訪問 Kubernetes 控制平面的集群。

通過為集群中的某些節點添加 taint,可以將這些節點提供給指定租戶專用。在多租戶場景中,當集群中包含 GPU 節點時,可以使用 taint 為需要 GPU 資源的業務應用程序服務團隊保留這些節點。集群管理員可以使用諸如 effect:“NoSchedule” 之類的標簽向節點添加污點,這樣就只能調度具有相應 tolerance 設置的 Pod 到該節點。但是,惡意租戶會將相同的 tolerance 設置添加到 Pod 上來訪問此節點,因此,僅使用節點 taint 和 tolerance 機制無法確保目標節點在非信任多租戶集群中的安全性。

保護敏感信息—REST 的 secret 加密

在多租戶集群中,不同的租戶用戶共享一套相同的 etcd 存儲。當最終用戶訪問 Kubernetes 控制平面時,要保護好 secret 數據,以避免訪問控制策略配置不正確時導致敏感信息泄漏。

總結

在部署多租戶體系架構時,首先要確定相應的應用場景,包括租戶內用戶和應用程序的可信度和對應的安全隔離程度。另外,為滿足基本的安全隔離要求,最好執行以下幾點:

啟用 Kubernetes 集群默認安全配置

啟用 RBAC,禁止匿名用戶訪問

啟用 secrets encryption,保護敏感信息

根據 CIS Kubernetes 基準執行安全配置

啟用準入控制器,例如 NodeRestriction、AlwaysPullImages 和 PodSecurityPolicy

使用 PSP 控制 Pod 部署的特權模式,并在 Pod 運行時控制 Pod 的安全上下文

配置 NetworkPolicy

Docker 運行時啟用 Seccomp、AppArmor 和 SELinux

對監控、日志記錄等服務進行多租戶隔離

當使用諸如 SaaS 和 KaaS 之類的服務模型時,或者無法保證租戶下用戶的可信度時,可以使用以下更強力的隔離措施:

使用 OPA DENG 動態策略引擎在網絡或對象級別進行細粒度的訪問控制

部署安全容器,在容器運行時進行內核級隔離

對監視、日志記錄、存儲和其他服務實施全面的多租戶隔離解決方案

編輯:黃飛

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • SaaS
    +關注

    關注

    1

    文章

    363

    瀏覽量

    36927
  • 安全隔離
    +關注

    關注

    0

    文章

    10

    瀏覽量

    6227
  • kubernetes
    +關注

    關注

    0

    文章

    224

    瀏覽量

    8716

原文標題:實踐難?本文解決 k8s 多租戶集群的安全隔離難題!

文章出處:【微信號:浩道linux,微信公眾號:浩道linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    阿里云上Kubernetes集群聯邦

    摘要: kubernetes集群讓您能夠方便的部署管理運維容器化的應用。但是實際情況中經常遇到的一些問題,就是單個集群通常無法跨單個云廠商的多個Region,更不用說支持跨跨域不同的云廠商。這樣會給
    發表于 03-12 17:10

    kubernetes集群配置

    基于v1104版本手動搭建高可用kubernetes 集群
    發表于 08-19 08:07

    Kubernetes 從懵圈到熟練:集群服務的三個要點和一種實現

    問題。Kubernetes 集群是 Google 多年來自動化運維實踐的結晶,這樣的實現顯然與其智能運維的哲學相背離的。自帶通信員邊車模式(Sidecar)是微服務領域的核心概念。邊車
    發表于 09-24 15:35

    kubernetes v112二進制方式集群部署

    kubernetes v112 二進制方式集群部署
    發表于 05-05 16:30

    copy模式的DRDS集群

    活解決方案。DRDS按照之前說的業務數據拆分的維度,阿里云DRDS有兩種集群分別支持買家維度與賣家維度:unit 模式的DRDS集群
    發表于 11-16 09:23

    請問鴻蒙系統上可以部署kubernetes集群嗎?

    鴻蒙系統上可以部署kubernetes集群
    發表于 06-08 11:16

    如何部署基于Mesos的Kubernetes集群

    的內核。把Kubernetes運行在Mesos集群之上,可以和其他的框架共享集群資源,提高集群資源的利用率。 本文是Kubernetes和M
    發表于 10-09 18:04 ?0次下載
    如何部署基于Mesos的<b class='flag-5'>Kubernetes</b><b class='flag-5'>集群</b>

    淺談Kubernetes集群的高可用方案

    Kubernetes作為容器應用的管理中心,通過對Pod的數量進行監控,并且根據主機或容器失效的狀態將新的Pod調度到其他Node上,實現了應用層的高可用性。針對Kubernetes集群,高可用性
    發表于 10-11 10:04 ?1次下載
    淺談<b class='flag-5'>Kubernetes</b><b class='flag-5'>集群</b>的高可用方案

    Kubernetes集群發生網絡異常時如何排查

    本文將引入一個思路:“在 Kubernetes 集群發生網絡異常時如何排查”。文章將引入 Kubernetes 集群中網絡排查的思路,包含網絡異常模型,常用工具,并且提出一些案例以供學
    的頭像 發表于 09-02 09:45 ?4792次閱讀

    Kubernetes 集群的功能

    Telepresence 是一個開源工具,可讓您在本地運行單個服務,同時將該服務連接到遠程 Kubernetes 集群
    的頭像 發表于 09-05 10:58 ?1097次閱讀

    Kubernetes集群內服務通信機制介紹

    現在在 Kubernetes 集群中,我們擁有構成集群管理組件和一組工作機器(稱為節點)的控制平面。這些節點托管 Pod,這些 Pod 將后端微服務作為容器化服務運行。
    發表于 10-04 10:13 ?550次閱讀

    Kubernetes集群的關閉與重啟

    在日常對 Kubernetes 集群運行維護的過程中,您可能需要臨時的關閉或者是重啟 Kubernetes 集群集群進行維護,本文將介紹如
    的頭像 發表于 11-07 09:50 ?9932次閱讀

    Kubernetes集群部署

    Kubeadm是一種Kubernetes集群部署工具,通過kubeadm init命令創建master節點,通過 kubeadm join命令把node節點加入到集群
    的頭像 發表于 02-15 10:35 ?1728次閱讀

    求一種SaaS模式租戶系統數據隔離實現方案

    開發過SaaS系統平臺的小伙伴一定對租戶這個概念不陌生,簡單來說一個租戶就是一個公司客戶,多個租戶共用同一個SaaS系統,一旦SaaS系統
    的頭像 發表于 07-27 10:34 ?903次閱讀

    使用Velero備份Kubernetes集群

    Velero 是 heptio 團隊(被 VMWare 收購)開源的 Kubernetes 集群備份、遷移工具。
    的頭像 發表于 08-05 15:43 ?362次閱讀
    使用Velero備份<b class='flag-5'>Kubernetes</b><b class='flag-5'>集群</b>
    主站蜘蛛池模板: 5060午夜一级| 欧美一级高清免费播放| 亚洲三级电影| 亚洲区在线播放| 成人国产三级在线播放| 亚洲 欧洲 日韩| 日本成本人三级在线观看2018| 久精品视频村上里沙| 7m视频精品凹凸在线播放| 手机看片国产高清| 性欧美极品另类| 国模欢欢炮交啪啪150| 四虎影库在线播放| 黄色香蕉网| 天天爱天天射| 欧美激情第一欧美在线| 国产成人高清精品免费5388密| 欧美大胆一级视频| 夜夜操狠狠干| 五月天色网址| 色视频网址| 高清色本在线www| 久热操| 亚洲成人aaa| 四虎精品成人免费观看| bt 电影天堂| 天天天狠天天透天天制色| 5060精品国产福利午夜| 中文字幕在线乱码免费毛片| 欧美一级免费片| 免费一级毛片在线播放| 性视频亚洲| 黄色片 720p| jlzzjlzz欧美大全| 一级三级黄色片| 毛片一区| 色综合色综合色综合网址| 亚洲综合一区二区三区| 四虎影院在线看| 99成人在线| 久久99热精品|