etcd是一個分布式的鍵值存儲系統,它存儲了整個kubernetes的狀態,包括所有節點和服務的配置信息。在etcd中,每個存儲的密鑰都由一個唯一的URL表示,所有的URL都按照字母排序,使得可以很容易地進行查詢和遍歷。
在etcd集群中,節點之間通過TLS互相認證,這就需要為每個節點生成一個證書來進行認證。在生成證書的過程中,我們需要使用到csr.json文件。
{ "CN": "etcd", "hosts": [ "10.0.1.10", "10.0.1.11", "10.0.1.12" ], "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "US", "L": "San Francisco", "O": "etcd", "OU": "etcd", "ST": "California" } ] }
上述是一個csr.json文件的示例,其中包含了證書的一些基本信息,包括證書的通用名(CN)、證書有效的主機列表(hosts)、證書的算法和長度(key)、證書主體的信息(names)等。其中hosts列表中的IP地址需要填寫etcd集群的節點IP地址,這是進行TLS認證的必要條件。
通過使用csr.json文件,我們就可以生成etcd集群節點的證書了。證書的生成過程非常復雜,需要使用openssl等工具,不過在kubernetes中已經提供了相應的工具來簡化證書的生成過程,如命令kubeadm init和kubeadm join。