成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聊聊基于Consul建設公共注冊中心

開發 開發工具
本文從consul提供的ACL訪問控制策略角度出發,詳細介紹通過在應用層使用標簽前綴的方式,分配訪問控制權限,實現基于標簽隔離的社區版consul多租戶隔離,從而作為公共注冊中心。

Consul作為一款分布式、高可用的服務發現和配置的工具,提供了豐富的組件功能,被廣泛應用于微服務架構中作為服務注冊與配置中心。

本文從consul提供的ACL訪問控制策略角度出發,詳細介紹通過在應用層使用標簽前綴的方式,分配訪問控制權限,實現基于標簽隔離的社區版consul多租戶隔離,從而作為公共注冊中心。

一、Consul產品介紹

Consul作為一款開源的組件工具,其使用GO語言開發,實現分布式系統的服務發現與配置,主要提供分布式服務注冊和發現、健康檢查、Key/Value數據存儲、多數據中心的高可用性等能力。

【服務注冊與發現】

consul client(客戶端)使用HTTP或DNS的方式將服務注冊到consul server(服務端)注冊中心中。服務請求方通過consul server發現他所依賴的服務。

【健康檢查】

consul client提供對應用程序健康檢查機制,并將健康檢查狀態上報給consul server集群,用來監控集群節點的運行狀況,并及時下線不健康的節點。

【Key/Value數據存儲】

Consul提供K/V的存儲功能,應用程序可以根據需要使用consul層級的Key/Value存儲,比如用來保存動態配置,協調服務等等。

【多數據中心】

Consul支持多個數據中心,滿足用戶的多中心部署模式和災備需求。

二、Consul基本架構

Consul是一個分布式,高可用的系統,在consul集群中的每個節點都運行一個agent,agent可以以客戶端(client)模式或服務端(server)模式運行。

圖1 Consul基本架構圖

【數據中心(DataCenter)】

在consul數據中心中,集群中節點分為server節點和client節點,為了保證可用性和高性能,通常一個數據中心內為3-5個服務器。

【客戶端模式(Client)】

客戶端節點一般和應用部署在一起,負責注冊服務、運行健康檢查并將相關RPC轉發給服務器。在微服務應用中,本地應用只訪問client,由client和server進行通訊,實現集群的服務發現。

【服務器模式(Server)】

服務端節點維護consul集群的狀態信息,并進行持久化,server節點存儲公共信息,包括服務信息,K/V數據等。consul集群中的Server節點參與選舉,響應RPC查詢,轉發信息給Leader(領導者),Leader除了包含server的功能外,還負責同步數據到各個server,每一個集群中只能有一個Leader,保證集群內數據一致。

三、Consul多租戶隔離

在使用consul作為注冊及配置中心的過程中,多個微服務架構系統需要每個系統分別部署一套consul集群,運維成本高且存在資源浪費,于是將consul服務作為PaaS能力提供,租戶制使用便成為一種美好愿望。

社區版本不支持namespace隔離特性,多個系統共用一個注冊和配置中心,需要防止出現寫時配置相互覆蓋,讀時信息泄露等問題。因此,各系統在進行服務發現獲取服務列表和配置信息修改等操作時,只能對本系統進行訪問和操作,不能對其他系統的服務進行訪問。

Consul在應用層唯一的鑒權能力是ACL機制,能否借此可以實現多租戶訪問權限的控制目的?

1.ACL機制

Consuls支持AccessControlList(ACL-即訪問控制列表),用于保護對UI、API、CLI、服務和代理通信的訪問。通過開啟consul集群ACL機制,對consul執行任何的操作,需要得到對應的令牌,即ACLToken,以此來實現對consul集群agent、服務注冊和發現、K/V數據的訪問權限控制。

ACL的核心是以token作為身份認證,將一系列規則(rule)組成策略(policy),然后將一個或多個策略與令牌token進行相關聯。在應用請求時,在其HTTP頭中添加X-Consul-Token為分配的token,應用的服務注冊、發現和配置更新等操作,server會根據token策略權限返回相應的服務內容以及校驗是否有對應的配置資源讀寫權限。

圖2 ACL機制運行核心

配置步驟:

(1)首先在consulserver集群的啟動參數中添加配置,開啟集群對ACL的校驗。

{

...

acl= {

enabled= true,

default_policy= "deny",

enable_token_persistence= true }

}

(2)然后再創建policy,每個policy是由多個rule組成。policy格式為:

#rule:節點前綴為空,代表所有的節點都使用策略;

node_prefix""{

policy=’write/read/deny’

}

#rule:服務前綴為空,代表所有的服務都使用策略;

service_prefix""{

policy=’write/read/deny’’

}

#rule:key前綴為空,代表所有對所有key都使用策略;

key_prefix""{

policy=’write/read/deny’’

}

(3)最后創建token,并和policy綁定。

2.租戶隔離

Rule是以關鍵字前綴作為過濾條件,這樣可以統一分配權限。因此,可以每個租戶的節點名稱,服務名稱,配置名稱統一以租戶名稱為前置,然后每個租戶分配一個token。在配置rule時,都只以租戶名稱作為前綴。這樣就可以實現租戶間資源隔離。

例如租戶A的名稱是:“SystemA”,租戶A的相關資源命名都以SystemA為前綴:

  • 節點名稱:SystemA-ip,如SystemA-192.168.0.108
  • 服務名稱:SystemA-微服務名稱,如SystemA-UserService
  • 配置路徑:config/SystemA-配置名稱,如config/SystemA-public,config/SystemA-UserService

租戶A的token綁定的policy策略為(默認策略為deny):

#代表SystemA前綴節點都使用該策略;

node_prefix"SystemA" {

policy="write"

}

#代表代表SystemA服務都使用該策略;

service_prefix"SystemA" {

policy="write"

}

#代表以config/SystemA開頭的key都使用該策略;

key_prefix"config/SystemA" {

policy="write"

}

以此policy策略關聯的token,其應用只能注冊以“SystemA”開頭的節點和服務,以及發現以“SystemA”標簽為前綴的服務,并對“config/SystemA”為開頭的key的配置信息進行編輯和修改。

四、總結

通過以統一租戶名稱為前置的資源命名管理+Consul產品ACL的方式,可以達到租戶間資源訪問隔離的效果。通過這種手段,可以將consul產品作為PaaS能力提供服務,豐富云原生生態。

責任編輯:武曉燕 來源: 匠心獨運維妙維效
相關推薦

2020-06-29 07:58:18

ZooKeeperConsul 注冊中心

2021-09-26 10:43:08

注冊Istio集成

2012-11-06 09:59:17

2023-07-02 14:11:28

數據倉庫大數據

2025-01-14 08:59:16

2022-08-15 19:49:57

Consul架構注冊中心

2014-03-27 14:19:47

數據中心

2021-01-26 11:44:34

IDC數據中心互聯網

2021-11-09 08:46:20

數據中心數據中心架構數據中心網絡

2023-03-10 10:20:13

數據中心服務器

2020-08-04 11:20:05

邊緣計算公共安全智慧城市

2025-03-06 11:30:15

2022-06-13 10:01:36

Apollo攜程框架

2010-06-28 13:48:32

中心數據中心建設

2021-05-27 11:10:23

注冊中心業務

2018-06-19 10:52:20

數據中心服務器液冷

2017-04-13 10:51:09

Consul分布式

2015-10-16 17:59:24

數據中心建設

2013-12-16 14:16:05

數據中心
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品国产精品 | 欧美在线视频一区二区 | 一级片在线免费看 | 美女亚洲一区 | 亚洲视频国产 | 国产精品一区二区不卡 | 91视频.| 欧美乱人伦视频 | 一区二区在线免费观看视频 | 亚洲精品视频导航 | 日韩伦理一区二区 | 中文字幕在线一区二区三区 | 男女视频91 | 国产精品久久久久久av公交车 | 久久免费视频网 | 亚洲欧美一区二区三区视频 | 欧美日韩在线播放 | 欧美自拍第一页 | 精品亚洲一区二区三区四区五区高 | 欧美在线免费 | 免费观看www | 日韩一区二区三区在线观看 | 久久99视频| 久久在视频 | 伊人网站视频 | 男人天堂网址 | 久久视频免费观看 | 天天插天天搞 | 久久精品国产一区 | 综合色久 | 天天曰天天干 | 日韩中文一区二区三区 | 欧美日韩一区二区在线观看 | 国产日韩欧美一区二区 | 久久免费视频在线 | 一区二区精品在线 | 国产欧美在线一区二区 | 亚洲成人精品视频 | 久久久入口| 久在线 | 久久成人精品一区二区三区 |