k8s證書


 _____egon新書來襲請看:https://egonlin.com/book.html

 

一套證書方案(4套即可)

etcd

1、etcd服務端證書(etcd_server.key、etcd_server.crt):用於作server、peer兩種功能,給etcd集群自己做服務端、作peer通信用

ps:etcd配置文件中下列配置用的就是該證書

    ETCD_CERT_FILE=etcd_server.crt

    ETCD_KEY_FILE=etcd_server.key

 

    ETCD_PEER_CERT_FILE=etcd_server.crt

    ETCD_PEER_KEY_FILE=etcd_server.key

 

    ETCD_PEER_TRUSTED_CA_FILE=ca.crt

 

2、etcd客戶端證書(etcd_client.key,etcd_client.crt):用作client,給kube-apiserver連接etcd時使用

在kube-apiserver的配置文件中需要用到

--etcd-cafile=ca.crt

--etcd-certfile=etcd_client.crt

--etcd-keyfile=etcd_client.key

 

apiserver

1、服務端證書(apiserver.key,apiserver.crt):用作server,給kube-apiserver自己作為服務端用、還有用作kube-controller-manager為ServiceAccount自動頒發token使用私鑰文件

注意:該證書在制作的時候,需要把所有kube-apiserver所在主機的ip地址何負載均衡地址都放進去,還有server網絡的clusterIP的第一個ip地址,例如10.96.0.1

在kube-apiserver的配置文件中需要用到

--tls-cert-file=apiserver.crt

--tls-private-key-file=apiserver.key

--client-ca-file=ca.crt

 

在kube-controller-manager配置文件中用到

--service-account-private-key-file=apiserver.key

 

2、客戶端證書(client.key,client.crt):給kube-controller-mananger、kube-scheduler、kubelet、kube-proxy、以及kubectl作為客戶端連接kube-apiserver

2.1 對於kubectl來說

[root@gzbh-hygon0000005.gzbh ~]# md5sum /root/.kube/config 
3974cac839f740cf2fd132d0930b292c  /root/.kube/config
[root@gzbh-hygon0000005.gzbh ~]# md5sum /etc/kubernetes/admin.conf 
3974cac839f740cf2fd132d0930b292c  /etc/kubernetes/admin.conf


看見沒有,md5都一模一樣,內容完全一致
admin.conf拷貝到了/root/.kube/config,因為kubectl固定去當前用戶家目錄下找配置

 

2.2 對於其他組件來說:

新建一個文件/etc/kubernetes/kubeconfig(內容同admin.conf),配置好vip,該文件就給kube-controller-mananger、kube-scheduler、kubelet、kube-proxy用了,大家作為客戶端都一樣

 

這些組件kube-controller-mananger、kube-scheduler、kubelet、kube-proxy的配置中都會指定

--kubeconfig=/etc/kubernetes/kubeconfig

 

二 該博客中的證書方案

該方案需要修正,請參考方案一,然后方案一的基礎上加入:TLS bootstrapping 簡化kubelet證書制作

 

1、所有的證書都由一個ca頒發

2、etcd就建一套證書,用作服務端與peer

3、kube-apiserver一套證書,用作etcd的客戶端,用作apiserver自己的服務端

kube-apiserver開啟了簡單認證:各組件與API Server之間的通信仍然采用HTTPS,但不采用CA數字證書,這種認證機制與CA證書相比,安全性很低,不建議生產使用

# vim /opt/kubernetes/ssl/basic-auth.csv  # 該文件可以考慮刪掉試試
admin,admin,1
readonly,readonly,2
cat > /usr/lib/systemd/system/kube-apiserver.service << EOF
  --basic-auth-file=/opt/kubernetes/ssl/basic-auth.csv \  # 該配置可以考慮刪掉試試

 

4、kubelet的證書:TLS bootstrapping 簡化kubelet證書制作

原理:https://www.cnblogs.com/linhaifeng/articles/15167217.html

配置

https://mritd.com/2018/01/07/kubernetes-tls-bootstrapping-note/#5-3%E3%80%811-7-TLS-bootstrapping-%E9%85%8D%E7%BD%AE

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM