首页 > 其他 > 详细

k8s中的PKI证书

时间:2020-06-13 12:50:00      阅读:69      评论:0      收藏:0      [点我收藏+]

Kubernetes需要PKI证书才能进行基于TLS的身份验证,如果使用kubeadm安装的kubernetes,则会自动生成集群所需要的证书。

集群中是如何使用证书:

  • kubelet的客户端证书,用于访问API服务器身份验证
  • API服务器端点证书
  • 集群管理员的客户端证书,用于API服务器身份认证
  • API服务器的客户端证书,用于和kubelet的会话
  • API服务器的客户端证书,用于和etcd的会话
  • 控制器管理器(controller-manager)的客户端证书/kubeconfig,用于和API server的会话
  • 调度器(scheduler)的客户端证书/kubeconfig,用于和API server的会话
  • 前端代理(proxy) 的客户端及服务端证书

etcd 还实现了双向 TLS 来对客户端和对其他对等节点进行身份验证。

 

单根CA

可以创建一个单根CA,有管理员控制它,该CA可以创建多个中间CA,并将所有进一步的创建委托给Kubernetes。

需要的以下CA

路径 默认CN 描述
ca.crt,key kubernetes-ca kubernetes通用CA
etcd/ca.crt,key etcd-ca 与etcd相关的所有功能
front-proxy/ca.crt,key kubernetes-front-proxy-ca 用于前端代理

 

所需的所有证书

默认CN 父级CA O(位于Subject中) 类型 主机(SAN)
kube-etcd etcd-ca   server,client localhost,127,0.0.1
kube-etcd-peer etcd-ca   server,client localhost,127.0.0.1,对等节点IP
kube-etcd-healthcheck-client etcd-ca   client  
kube-apiserver-etcd-client etcd-ca system:masters client  
kube-apiserver  kubernetes-ca   server 如下【1】
kube-apiserver-kubelet-client kubernetes-ca system:masters client  
front-proxy-client   kubernetes-front-proxy-ca   client  

【1】用来连接到集群中的不同IP或者DNS域名(就像kubeadm为负载均衡所使用的固定IP或DNS域名,kubernetes、kubernetes.default、kubernetes.default.svc、kubernetes.default.svc.cluster、kubernetes.default.svc.cluster.local)

 

证书使用方式及路径

默认 CN建议的密钥路径建议的证书路径命令密钥参数证书参数
etcd-ca etcd/ca.key etcd/ca.crt kube-apiserver   --etcd-cafile
kube-apiserver-etcd-client apiserver-etcd-client.key apiserver-etcd-client.crt kube-apiserver --etcd-keyfile --etcd-certfile
kubernetes-ca ca.key ca.crt kube-apiserver   --client-ca-file
kubernetes-ca ca.key ca.crt kube-controller-manager --cluster-signing-key-file --client-ca-file, --root-ca-file, --cluster-signing-cert-file
kube-apiserver apiserver.key apiserver.crt kube-apiserver --tls-private-key-file --tls-cert-file
kube-apiserver-kubelet-client apiserver-kubelet-client.key apiserver-kubelet-client.crt kube-apiserver --kubelet-client-key --kubelet-client-certificate
front-proxy-ca front-proxy-ca.key front-proxy-ca.crt kube-apiserver   --requestheader-client-ca-file
front-proxy-ca front-proxy-ca.key front-proxy-ca.crt kube-controller-manager   --requestheader-client-ca-file
front-proxy-client front-proxy-client.key front-proxy-client.crt kube-apiserver --proxy-client-key-file --proxy-client-cert-file
etcd-ca etcd/ca.key etcd/ca.crt etcd   --trusted-ca-file, --peer-trusted-ca-file
kube-etcd etcd/server.key etcd/server.crt etcd --key-file --cert-file
kube-etcd-peer etcd/peer.key etcd/peer.crt etcd --peer-key-file --peer-cert-file
etcd-ca   etcd/ca.crt etcdctl   --cacert
kube-etcd-healthcheck-client etcd/healthcheck-client.key etcd/healthcheck-client.crt etcdctl --key --cert

 

k8s中的PKI证书

原文:https://www.cnblogs.com/gavin11/p/13112293.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!