一.准备环境
1.硬件要求:centos7 至少2G内存,至少2个核,至少30G硬盘空间
2.防火墙,selinux,swap关闭
3.时间同步
4.修改系统参数
5.修改主机名,添加/etc/hosts
6.ip环境主要分布:
192.168.30.24 master
192.168.30.25 node1
192.168.30.27 node2
------> 参考kubeadm方式安装k8s集群
二.证书创建
1.证书基础简单理解
认证证书=公钥。 公钥和私钥都可以存储为pem格式
证书前面请求CSR(Certificate Signing Request):发送CSR请求后得到CRT文件(证书)

此处这里需要自己签发自己认可的ca证书
2.使用CFSSL来创建ca证书,安装cfssl命令并赋予权限
curl -L https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -o /usr/local/bin/cfssl
curl -L https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 -o /usr/local/bin/cfssljson
curl -L https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 -o /usr/local/bin/cfssl-certinfo
chmod +x /usr/local/bin/cfssl /usr/local/bin/cfssljson /usr/local/bin/cfssl-certinfo
此处https://pkg.cfssl.org回跳转https://github.com 有时候https的github无法访问,此是可以使用http访问
curl -L http://github.com/cloudflare/cfssl/releases/download/1.2.0/cfssl_linux-amd64 -o /usr/local/bin/cfssl
curl -L http://github.com/cloudflare/cfssl/releases/download/1.2.0/cfssljson_linux-amd64 -o /usr/local/bin/cfssljson
curl -L http://github.com/cloudflare/cfssl/releases/download/1.2.0/cfssl-certinfo_linux-amd64 -o /usr/local/bin/cfssl-certinfo
chmod 755 /usr/local/cfssl* #修改cfssl命令权限
3.CA证书初始化
mkdir /home/app/ksource/cert
cfssl print-defaults config > ca-config.json
修改过期时间:

cfssl print-defaults csr > ca-csr.json
修改认证的国家地区信息:

生成CA公钥和私钥:
cfssl gencert -initca ca-csr.json | cfssljson -bare ca -
会生成ca.pem 及 ca-key.pem
4.为etcd服务创建证书
1)创建etcd的csr文件:

2)创建etcd节点签发证书
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=www server-csr.json | cfssljson -bare server
此时会生成三个关于server的公钥私钥证书:

补录关于cfssl证书相关知识点:
1.命令大全:
cfssl工具,子命令介绍:
bundle: 创建包含客户端证书的证书
gencert: 生成新的key(密钥)和签名证书
-ca:指明ca的证书
-ca-key:指明ca的私钥文件
-config:指明请求证书的json文件
-profile:与-config中的profile对应,是指根据config中的profile段来生成证书的相关信息
网友评论