etcd啟用https服務

2022-06-26 00:57:12 字數 2868 閱讀 7968

目錄生成etcd所需要的ssl證書

修改etcd集群配置檔案

重啟etcd集群

驗證集群健康情況

關於etcd的集群配置可直接參考etcd集群部署

這篇文件只是在其基礎上增加ssl加密驗證的過程。

要讓集群使用ssl,首先需要為集群生成ssl證書。

我們使用cfssl系列工具來生成相關證書。

curl -s -l -o /opt/kubernetes/bin/cfssl 

curl -s -l -o /opt/kubernetes/bin/cfssljson

chmod +x /opt/kubernetes/bin/

ca-config.json配置如下:

,

"profiles": ,

"etcd": }}

}

字段說明:

ca-csr.json配置如下:

,

"names": [

]}

生成ca證書:

cfssl gencert --initca ca-csr.json | cfssljson --bare ca
執行後會生成三個檔案:

etcd服務端證書用於加密etcd集群之間的通訊

etcd-csr.json檔案內容如下:

,

"names": [

]}

生成etcd服務端證書:

cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=etcd etcd-csr.json | cfssljson -bare etcd
生成三個檔案:etcd.pem, etcd-key.pem, etcd.csr

etcd客戶端證書用於etcd客戶端連線etcd時提供驗證方式

etcd-client-csr.json

,

"names": [

]}

生成客戶端證書:

cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=etcd etcd-client-csr.json | cfssljson -bare etcd-client
生成三個檔案:etcd-client.pem, etcd-client-key.pem, etcd-client.csr

最佳實踐: 在實際生產中,為了簡化etcd的管理,我們通常不會為服務端和客戶端各生成一套證書,而是生成一套即可以用於服務端也可以同時用於客戶端的證書。在我們上面生成etcd的ca證書的時候,可以看到etcd-ca-config.json中etcd的證書useags中同時有server auth和client auth。也就是說,基於我們的ca證書生成的etcd證書本身就可以同時用於服務端與客戶端。然而,我們在生成etcd服務端證書的時候,在etcd-server-csr.json中指定了hosts,所以該證書只能被指定的hosts列表中的主機使用,要想所有的客戶端都能使用這個證書。最簡單的方法就是和生成etcd客戶端證書時一樣,直接將hosts留空。反過來,也就是說,我們可以直接將生成的etcd客戶端證書用於服務端。

修改後的/opt/kubernetes/cfg/etcd.conf檔案內容如下:

etcd_peer_key_file="/opt/kubernetes/ssl/etcd-key.pem"

systemctl restart etcd
驗證集群健康狀態時,需要使用客戶端證書來連線etcd集群:

etcdctl --cert-file=/opt/kubernetes/ssl/etcd-client.pem  --key-file=/opt/kubernetes/ssl/etcd-client-key.pem --ca-file=/opt/kubernetes/ssl/ca.pem --endpoints= member list

etcd註冊服務

etcd作為最簡單 輕量,精簡 的kv服務。etcd可以應用很多方面,但是它有乙個特點,etcd只是基礎,需要你自己實現功能。它不像其其它元件開箱即用,也正是如此,它足夠簡單精巧。回到主題,etcd裡面並沒有服務註冊發現的功能,所以要自己開發。推薦一篇介紹文章 etcd的服務註冊發現,主要就是用了e...

etcd註冊服務

etcd作為最簡單 輕量,精簡 的kv服務。etcd可以應用很多方面,但是它有乙個特點,etcd只是基礎,需要你自己實現功能。它不像其其它元件開箱即用,也正是如此,它足夠簡單精巧。回到主題,etcd裡面並沒有服務註冊發現的功能,所以要自己開發。推薦一篇介紹文章 etcd的服務註冊發現,主要就是用了e...

Eureka Server啟用 https服務指北

在我的前文 eureka server 開啟spring security basic認證 中已經給 eureka server 開啟了最基本的鑑權措施,本文則讓 https加持於 eureka server,讓安全措施來的更徹底一點。注 本文首發於my personal blog codeshee...