证书补充

一套证书方案(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

上一篇
下一篇
Copyright © 2022 Egon的技术星球 egonlin.com 版权所有 帮助IT小伙伴学到真正的技术