18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

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

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

3天內(nèi)不再提示

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

jf_TEuU2tls ? 來源:浩道linux ? 2023-05-15 16:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

什么是多租戶集群

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

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

多租戶使用場景

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

企業(yè)內(nèi)共享集群的多租戶

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

集群管理員

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

為租戶管理員創(chuàng)建并分配命名空間

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

租戶管理員

至少擁有集群 RAM 只讀權限

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

租戶用戶

在租戶命名空間允許范圍內(nèi)使用 Kubernetes 資源

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

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

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

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

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

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

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

實施多租戶架構

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

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

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

訪問控制

NetworkPolicy

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

PodSecurityPolicy

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

OPA

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

資源調(diào)度

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

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

Pod 優(yōu)先級(Priority)和搶占(Preemption)

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

專用節(jié)點(Dedicated Nodes)

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

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

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

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

總結

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

啟用 Kubernetes 集群默認安全配置

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

啟用 secrets encryption,保護敏感信息

根據(jù) CIS Kubernetes 基準執(zhí)行安全配置

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

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

配置 NetworkPolicy

Docker 運行時啟用 Seccomp、AppArmor 和 SELinux

對監(jiān)控、日志記錄等服務進行多租戶隔離

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

使用 OPA DENG 動態(tài)策略引擎在網(wǎng)絡或對象級別進行細粒度的訪問控制

部署安全容器,在容器運行時進行內(nèi)核級隔離

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

編輯:黃飛

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

    關注

    1

    文章

    372

    瀏覽量

    38321
  • 安全隔離
    +關注

    關注

    0

    文章

    12

    瀏覽量

    6352
  • kubernetes
    +關注

    關注

    0

    文章

    255

    瀏覽量

    9374

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    阿里云上Kubernetes集群聯(lián)邦

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

    kubernetes集群配置

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

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

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

    kubernetes v112二進制方式集群部署

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

    copy模式的DRDS集群

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

    請問鴻蒙系統(tǒng)上可以部署kubernetes集群嗎?

    鴻蒙系統(tǒng)上可以部署kubernetes集群
    發(fā)表于 06-08 11:16

    如何部署基于Mesos的Kubernetes集群

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

    淺談Kubernetes集群的高可用方案

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

    Kubernetes集群發(fā)生網(wǎng)絡異常時如何排查

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

    Kubernetes 集群的功能

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

    Kubernetes集群內(nèi)服務通信機制介紹

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

    Kubernetes集群的關閉與重啟

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

    Kubernetes集群部署

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

    求一種SaaS模式租戶系統(tǒng)數(shù)據(jù)隔離實現(xiàn)方案

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

    使用Velero備份Kubernetes集群

    Velero 是 heptio 團隊(被 VMWare 收購)開源的 Kubernetes 集群備份、遷移工具。
    的頭像 發(fā)表于 08-05 15:43 ?897次閱讀
    使用Velero備份<b class='flag-5'>Kubernetes</b><b class='flag-5'>集群</b>