部署前期准备工作
目录
下面的操作依托于上一篇文章
安装cfssl工具集
本文章使用CloudFlare的PKI工具cfssl创建所有证书。
cd /opt/k8s/bin/ wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 # 批量修改文件名 rename _linux-amd64 '' cfssl* chmod +x /opt/k8s/bin/*
创建CA证书和秘钥
为确保安全,kubernetes各个组件需要使用x509证书对通信进行加密和认证
CA(Certificate Authority)是自签名的根证书,用来签名后续创建的其他证书。
注意: 如果没有特殊指明,本文档的所有操作均在node01节点执行,远程分发到其他节点
创建根证书 (CA)
CA证书是集群所有节点共享的,只需要创建一个CA证书,后续创建的所有证书都是由它签名
创建配置文件
CA配置文件用于配置根证书的使用场景(profile)和具体参数(usage、过期时间、服务端认证、客户端认证、加密等)
cd /opt/k8s/work cat > ca-config.json <<EOF { "signing": { "default": { "expiry": "87600h" }, "profiles": { "kubernetes": { "usages": [ "signing", "key encipherment", "server auth", "client auth" ], "expiry": "87600h" } } } } EOF ###################### signing 表示该证书可用于签名其它证书,生成的ca.pem证书找中CA=TRUE server auth 表示client可以用该证书对server提供的证书进行验证 client auth 表示server可以用该证书对client提供的证书进行验证
创建证书签名请求文件
cd /opt/k8s/work cat > ca-csr.json <<EOF { "CN": "kubernetes", "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "ST": "BeiJing", "L": "BeiJing", "O": "k8s", "OU": "4Paradigm" } ], "ca": { "expiry": "876000h" } } EOF ####################### CN CommonName,kube-apiserver从证书中提取该字段作为请求的用户名(User Name),浏览器使用该字段验证网站是否合法 O Organization,kube-apiserver 从证书中提取该字段作为请求用户和所属组(Group) kube-apiserver将提取的User、Group作为RBAC授权的用户和标识
生成CA证书和私钥
cd /opt/k8s/work cfssl gencert -initca ca-csr.json | cfssljson -bare ca ls ca*
分发证书
将生成的CA证书、秘钥文件、配置文件拷贝到所有节点的/etc/kubernetes/cert目录下
cd /opt/k8s/work source /opt/k8s/bin/environment.sh for node_ip in ${NODE_IPS[@]} do echo ">>> ${node_ip}" ssh ${node_ip} "mkdir -p /etc/kubernetes/cert" scp ca*.pem ca-config.json ${node_ip}:/etc/kubernetes/cert done
下载安装包并解压
cd /opt/k8s/work/ wget https://dl.k8s.io/v1.15.6/kubernetes-server-linux-amd64.tar.gz wget https://github.com/etcd-io/etcd/releases/download/v3.3.13/etcd-v3.3.13-linux-amd64.tar.gz wget https://github.com/coreos/flannel/releases/download/v0.11.0/flannel-v0.11.0-linux-amd64.tar.gz
mkdir flannel-v0.11 tar xf flannel-v0.11.0-linux-amd64.tar.gz -C flannel-v0.11 tar xf etcd-v3.3.13-linux-amd64.tar.gz tar xf kubernetes-server-linux-amd64.tar.gz
相关推荐
PinkBean 2020-08-11
huangzonggui 2020-01-29
leodengzx 2019-12-06
baike 2019-12-05
jianghero 2019-12-04
yutian0 2017-09-25
xiedengmin 2019-06-27
yuleng测试赛 2019-04-30
agou专家书院 2019-06-25
SmartPhone 2019-04-03
xiaohanshasha 2015-04-27
skyMata 2018-08-08
TonyDong 2019-04-01
OccamsRazor 2018-03-28
就一个未完成的故事而已 2018-01-09