一、先熟悉几个名词
- CA,为xxx公钥做认证
证书中心用自己的私钥,对鲍勃的公钥和一些相关信息一起加密,生成"数字证书"(Digital Certificate)
数字证书用CA的公钥解密
- 创建证书的基本流程是这样:
生成自己的服务端私钥 Server Key openssl genrsa -out server.key 4096
输入基本信息并用私钥签名生成CSR 证书签名请求 openssl req -new -nodes -sha256 -newkey rsa:2048 -keyout myprivate.key -out mydomain.csr
提交CSR给证书机构CA(免费或商业证书)签名生成CRT,或自己做CA签名生成CRT(自签名证书)
openssl req -new -newkey rsa:2048 -sha256 -nodes -out test_com.csr -keyout test_com.key -subj "/C=CN/ST=Beijing/L=Beijing/O=website Inc./OU=Web Security/CN=tang.test.com"
"CN":Common Name,kube-apiserver 从证书中提取该字段作为请求的用户名 (User Name);浏览器使用该字段验证网站是否合法;
"O":Organization,kube-apiserver 从证书中提取该字段作为请求用户所属的组 (Group)
1、生成CA证书和私钥
ca-config.json ca-csr.json =>ca.csr ca-key.pem ca.pem
2、生成kubernetes证书和私钥
kubernetes-csr.json => kubernetes.csr kubernetes-key.pem kubernetes.pem
3、生成admin证书和私钥
admin-csr.json => admin.csr admin-key.pem admin.pem
4、生成kube-proxy证书和私钥
kube-proxy-csr.json => kube-proxy.csr kube-proxy-key.pem kube-proxy.pem
5、生成kube-controoller-manager证书和私钥
kube-controller-manager-csr.json => kube-controller-manager.csr kube-controller-manager-key.pem kube-controller-manager.pem
6、生成kube-scheduler证书和私钥
kube-scheduler-csr.json => kube-scheduler.csr kube-scheduler-key.pem kube-scheduler.pem
先从Etcd算起:
1、Etcd对外提供服务,要有一套etcd server证书
2、Etcd各节点之间进行通信,要有一套etcd peer证书
3、Kube-APIserver访问Etcd,要有一套etcd client证书
再算kubernetes:
4、Kube-APIserver对外提供服务,要有一套kube-apiserver server证书
5、kube-scheduler、kube-controller-manager、kube-proxy、kubelet和其他可能用到的组件,需要访问kube-APIserver,要有一套kube-APIserver client证书
6、kube-controller-manager要生成服务的service account,要有一对用来签署service account的证书(CA证书)
7、kubelet对外提供服务,要有一套kubelet server证书
8、kube-APIserver需要访问kubelet,要有一套kubelet client证书