999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于etcd集群https通信的實現

2020-03-16 02:31:26陳洋羅敏常珞
電子技術與軟件工程 2020年24期
關鍵詞:服務

陳洋 羅敏 常珞

(河南醫學高等專科學校 河南省鄭州市 451191)

1 ETCD介紹

ETCD 是CoreOS 團隊于2013年6月發起的開源項目,它的目標是構建一個高可用的分布式鍵值(key-value)數據庫。它有以下幾個特點:基于HTTP+JSON 的API 讓你用curl 就可以訪問,簡單便捷;可使用SSL 客戶認證機制,保證訪問的安全性;每個實例每秒支持一千次寫操作,效率更高;使用Raft 算法充分實現了分布式,保證了每個節點數據的一致性[2]。

ETCD 集群是一個分布式系統,是一個高度一致的分布式鍵值存儲,它提供了一種可靠的方式來存儲需要由分布式系統或機器集群訪問的數據。為保證數據的一致性,在etcd 集群中,每個節點都維護了一個狀態機,且至多存在一個有效主節點。主節點處理所有來自客戶端寫操作,根據Raft 算法原理,每一次寫操作,需要集群中的主節點在內超過半數節點(n/2 +1)根據日志的邏輯時鐘和日志編號來判斷是否將該日志記錄持久化到本地,并將日志輸入到狀態機,而將結果返回給客戶端。通過 Raft 協議保證操作對狀態機的改動會可靠的同步到其他節點,從而保證節點數據的一致性。因此節點數越多,效率越低,但作為集群,etcd 節點數量總是大于等于2[10]。

表1:etcd 集群最大容錯節點[3]

節點數一般不會選擇偶數,主要是因為偶數節點的集群風險更高[3],主要表現在兩個方面:其一,在選主過程中,有較大概率出現等額選票,造成選主失敗從而觸發下一輪選舉;其二,偶數節點集群在某些網絡分割的場景下無法正常工作。當網絡分割發生后,將集群節點對半分割開,按照Raft 協議,此時集群寫操作無法使得大多數節點同意,從而導致寫失敗,使集群無法正常工作。

圖1:etcd 集群etcd-4 節點etcd 配置文件

圖2:etcd 集群部署成功顯示的狀態

圖3:生成集群配置所需要的證書

圖4:實現etcd 集群客戶端認證

圖5:etcd 集群內部安全認證

通常,按照需求將集群節點部署為3、5 或7 個節點,其可支持的容錯節點如表1 所示。

2 ETCD集群部署

本次集群搭建選擇3 個節點,節點名稱分別是etcd-4 、etcd-5、etcd-6。 etcd 集群的搭建三種方式[4],包括:static、etcd discovery 和DNS discovery。static 是最簡單的一種搭建etcd 的方式,它不需要任何額外的服務,只需要知道運行etcd 的所有節點的hostname 或者IP 地址即可。

在Linux 操作系統下,etcd 服務的安裝方式有yum 安裝和二進制安裝。二進制安裝需要從github 官方網址https://github.com/etcdio/etcd/releases 中選擇合適的版本,下載到本地進行安裝部署。二進制部署難度相對而言較大,但容易控制,更有利于后期維護。在實際生產過程中,推薦使用二進制的方式進行安裝部署。而yum源安裝方式相對簡單,安裝門檻較低,一般用在測試中。

2.1 安裝并啟動etcd

本次測試使用yum 源的方式安裝,static 方式部署。關于安裝etcd 服務所需要的配置信息,可以參考官方提供的最低配置,在這里不再介紹[11]。在所有節點安裝etcd 服務,啟動服務并加入自起列表,使用etcdctl 訪問etcd 并檢查驗證其狀態。如顯示got healthy,則說明etcd 服務已經啟動成功了:

2.2 集群部署

上述節點只是啟動了etcd 服務,并未形成集群。要構建集群,就需要了解etcd 集群的通信方式。集群服務中的通信一般包括兩種場景:對外提供服務的通信,發生在集群外部的客戶端和集群某節點服務器之間的通信,etcd 服務默認訪問2379 端口;集群內部的通信,發生在集群內部節點之間的通信,etcd 服務的默認訪問2380端口。

yum 源安裝默認配置文件在/etc/etcd/目錄中,按照節點IP 地址與集群通信方式,修改配置文件中的參數,如圖1 所示。

這里簡單對圖1 的中配置參數做一下簡單說明,如想了解更多,可參考官方文檔[6]進行系統學習。

ETCD_NAME:節點名稱,集群中唯一; ETCD_DATA_DIR:數據目錄ETCD_INITIAL_CLUSTER:集群節點地址;ETCD_INITIAL_CLUSTER_TOKEN:集群標識符,Token 值一樣的隸屬同一個集群;ETCD_INITIAL_CLUSTER_STATE:加入集群的當前狀態,new 是新集群,existing 表示已有集群。

集群的配置信息如節點url、token 均存儲在數據目錄中,其配置項僅在建立集群時生效。所有集群的改動如:要更新單個成員peerURLs、做一次更新操作、要替代單個節點、添加或刪除節點操作等都將使用etcd 自帶的 etcdctl 命令行工具[10]來實現;或刪除已有數據,重啟etcd,這種方式一般用在新建集群時使用。

刪除etcd 的數據文件,重啟etcd 服務啟動成功后,可以在任意一個節點上使用etcdctl 驗證集群狀態,當顯示cluster is healthy,說明集群部署成功,如圖2 所示。

3 Etcd集群的安全部署

3.1 CA證書的生成

Etcd 的特點是支持客戶端認證的,因此可以使用自簽證書進行安全部署[8]。自簽證書的工具有openssl、easyrsa 與cfssl 三種[7],用官方推薦的cfssl[5]工具生成證書,官方文檔中詳細介紹了證書的生成方法,由于篇幅問題,這里不再贅述。著重介紹一下所用的三類認證證書[5]:

client certificate 用于通過服務器驗證客戶端。例如etcdctl、etcd proxy 或docker 客戶端。

server certificate 由服務器使用,并由客戶端驗證服務器身份。例如docker 服務器或kube-apiserver。

peer certificate 用于集群成員之間認證,供節點之間校驗,既認證服務器也認證客戶端。

根據etcd 集群節點的IP 地址,替換官方文檔中所提供證書配置文件中的IP 地址,生成集群所用到的證書文件,如圖3 所示。

在實際生產過程中,為確保根證書密鑰(ca.pem、ca-key.pem)的安全性,建議使用單機(可以從圖3 看到,是在etcd-4 節點上生成的證書)生成證書,且必須保證生成證書的安全條件。

拷貝根證書的公鑰ca.pem 和client、server 以及peer 的私鑰、公鑰到集群的另外兩個節點供認證使用。

建議在實際生產環境中部署etcd 集群時,盡量使用5 個節點部署;或在生成server certificate 時,多預留幾個IP 地址,以滿足后期擴容、容災需求。為方便證書管理,客戶端與服務器的認證以及集群內部認證都可以使用peer certificate。

3.2 啟動客戶端認證

通過yum 方式安裝的etcd 服務,其默認生成的service 用戶名為etcd,而用root 用戶生成的證書文件,其屬主為root 用戶,普通用戶不可讀。因此,需修改證書文件屬主為etcd 或修改證書的權限使普通用戶能讀取使用。

在所有節點上修改etcd 配置文件,將client 的url 修改為https,并配置相關證書:

ETCD_LISTEN_CLIENT_URLS="https://192.168.1.44:2379,ht tp://127.0.0.1:2379"

ETCD_ADVERTISE_CLIENT_URLS= "https://192.168.1.44:2379"

ETCD_CERT_FILE="/opt/TLS/etcd/server.pem " #服務器證書

ETCD_KEY_FILE="/opt/TLS/etcd/server-key.pem" #服務器私鑰

ETCD_CLIENT_CERT_AUTH="true" #啟動客戶端認證

ETCD_TRUSTED_CA_FILE="/opt/TLS/etcd/ca.pem" #根證書

由上述集群配置更新可知,修改配置文件之后還需要通過etcdctl 命令,實現客戶端與服務器的通信,命令如下:

etcdctl --ca-file /opt/TLS/etcd/ca.pem --cert-file /opt/TLS/etcd/client.pem --key-file /opt/TLS/etcd/client-key.pem cluster-health

當顯示cluster is healthy 時,說明客戶端認證實現https 連接,如圖4 所示。

etcd 的客戶端與服務器端認證已經部署成功,接下來將實現etcd 集群內部之間https 通信。

3.3 集群相互認證

在所有節點上修改etcd 配置文件,將peer 的url 修改為https,添加peer 相關證書:

ETCD_LISTEN_PEER_URLS="https://192.168.1.44:2380"

ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.1.44:2380"

ETCD_INITIAL_CLUSTER="etcd-4=https:/192.168.1.44:2380,etcd-5=https://192.168.1.45:2380,etcd-6=https://192.168.1.46:2380"

ETCD_PEER_CERT_FILE="/opt/etcd/TLS/etcd/peer.pem"

ETCD_PEER_KEY_FILE="/opt/etcd/TLS/etcd/peer-key.pem"

ETCD_PEER_CLIENT_CERT_AUTH="true"

ETCD_PEER_TRUSTED_CA_FILE="/opt/etcd/TLS/etcd/ca.pem"

配置參數后,刪除原有數據,重新啟動etcd 服務,實現集群內部之間的https 傳輸,如圖5 所示。

至此,靜態etcd 集群內外訪問都實現了https 通信。

4 總結

文章通過介紹etcd 的基本概念,從單節點安裝服務,到集群成功部署;從證書生成,最后到集群內外都實現基于https 的安全訪問,詳細的介紹了etcd 集群的搭建過程,具有很強的參考意義。其中,客戶端的安全認證為kubernetes 集群中Master 節點中kubeapiserver 組件訪問etcd 集群提供了很好的借鑒作用,為高可用kubernetes 集群的安全部署夯實基礎。

不足之處:本次安裝部署etcd 采用的yum 源的方式進行安裝,在實際生產中并不適用,只能做參考使用,但其部署原理是一致的。另外,證明實現https 通信還需要進行抓包測試。

注意,本次部署適用在新建集群,如果是已運行的etcsd 集群,要修改集群內外訪問方式,需要修改配置文件并用etcdctl 命令更新,以防止原有數據的丟失。

猜你喜歡
服務
自助取卡服務
服務在身邊 健康每一天
今日農業(2019年14期)2019-09-18 01:21:54
服務在身邊 健康每一天
今日農業(2019年12期)2019-08-15 00:56:32
服務在身邊 健康每一天
今日農業(2019年11期)2019-08-13 00:49:08
服務在身邊 健康每一天
今日農業(2019年13期)2019-08-12 07:59:04
服務在身邊 健康每一天
今日農業(2019年10期)2019-01-04 04:28:15
服務在身邊 健康每一天
今日農業(2019年15期)2019-01-03 12:11:33
服務在身邊 健康每一天
今日農業(2019年16期)2019-01-03 11:39:20
高等教育為誰服務:演變與啟示
招行30年:從“滿意服務”到“感動服務”
商周刊(2017年9期)2017-08-22 02:57:56
主站蜘蛛池模板: 91久久偷偷做嫩草影院| 亚洲系列无码专区偷窥无码| 青青青视频91在线 | 在线中文字幕日韩| 亚洲欧洲日产国产无码AV| 国产成人综合久久精品尤物| 亚洲无线一二三四区男男| 在线色国产| 国产亚洲精品97AA片在线播放| 91视频国产高清| 在线观看国产精美视频| 免费A级毛片无码免费视频| 国产主播一区二区三区| 3D动漫精品啪啪一区二区下载| 日韩高清在线观看不卡一区二区| 国产日本欧美亚洲精品视| 美女视频黄又黄又免费高清| 国产精品美女在线| 亚洲国产在一区二区三区| 亚洲国产日韩视频观看| 久久香蕉国产线看观看亚洲片| 日韩精品无码不卡无码| 亚洲人成网址| 久久精品这里只有国产中文精品| 98超碰在线观看| 国产清纯在线一区二区WWW| 亚洲有无码中文网| 国产激情在线视频| 99视频在线看| 亚洲综合第一页| 色综合a怡红院怡红院首页| 午夜一级做a爰片久久毛片| 国产亚洲精久久久久久久91| 国产人在线成免费视频| 国产精品久久精品| 又粗又大又爽又紧免费视频| 亚洲熟妇AV日韩熟妇在线| 免费aa毛片| 亚洲欧美国产视频| 国产尹人香蕉综合在线电影| 国产精品美女自慰喷水| 青青久久91| 久久国产高潮流白浆免费观看| 中文字幕亚洲电影| 毛片卡一卡二| 午夜无码一区二区三区在线app| 国产亚洲精品资源在线26u| 国产又粗又爽视频| 一本无码在线观看| 97国产在线播放| 伊人久久久大香线蕉综合直播| 国产99免费视频| 五月婷婷综合网| 一本综合久久| 亚洲国产天堂久久综合226114| 国产福利拍拍拍| 这里只有精品在线播放| 中文字幕无线码一区| 国产91无毒不卡在线观看| 久久夜夜视频| 亚洲国产精品日韩av专区| 国产凹凸一区在线观看视频| 国产亚洲欧美在线中文bt天堂| 久久久四虎成人永久免费网站| 成人福利在线看| 欧美在线精品怡红院| 久久精品这里只有精99品| 波多野结衣第一页| 亚洲成A人V欧美综合| 欧美日韩国产在线播放| 成年人视频一区二区| 国产精品成人观看视频国产 | 久久国产黑丝袜视频| 99久久精品免费看国产电影| 国产美女在线免费观看| av天堂最新版在线| 999国内精品视频免费| 国产靠逼视频| 亚洲第一国产综合| 女人18毛片久久| 亚洲AV无码不卡无码 | 久久综合九色综合97婷婷|