Kubernetes v1.9.7安装部署-创建证书

  • A+
所属分类:Kubernetes

kubernetes 系统各个组件需要使用TLS证书对通信进行加密,这里我们使用CloudFlare的PKI 工具集cfssl 来生成Certificate Authority(CA) 证书和密钥文件, CA 是自签名的证书,用来签名后续创建的其他TLS 证书。

1、安装CFSSL

wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64

chmod +x cfssl_linux-amd64

sudo mv cfssl_linux-amd64 /usr/k8s/bin/cfssl

 

wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64

chmod +x cfssljson_linux-amd64

sudo mv cfssljson_linux-amd64 /usr/k8s/bin/cfssljson

 

wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64

chmod +x cfssl-certinfo_linux-amd64

sudo mv cfssl-certinfo_linux-amd64 /usr/k8s/bin/cfssl-certinfo

 

export PATH=/usr/k8s/bin:$PATH

mkdir ssl && cd ssl

cfssl print-defaults config > config.json

cfssl print-defaults csr > csr.json

 

注释:为了方便,将/usr/k8s/bin设置成环境变量,为了重启也有效,可以将上面的export PATH=/usr/k8s/bin:$PATH添加到~/.bash_profile文件中。

2、创建CA

修改上面创建的config.json文件为ca-config.json:

$ cat ca-config.json

{

"signing": {

"default": {

"expiry": "87600h"

},

"profiles": {

"kubernetes": {

"expiry": "87600h",

"usages": [

"signing", "key encipherment",

"server auth",

"client auth"

]

}

}

}

}

注释:config.json:可以定义多个profiles,分别指定不同的过期时间、使用场景等参数;后续在签名证书时使用某个profile;signing: 表示该证书可用于签名其它证书;生成的ca.pem 证书中CA=TRUE;server auth: 表示client 可以用该CA 对server 提供的证书进行校验;client auth: 表示server 可以用该CA 对client 提供的证书进行验证。

修改CA 证书签名请求为ca-csr.json:

$ cat ca-csr.json

{

"CN": "kubernetes",

"key": {

"algo": "rsa",

"size": 2048

},

"names": [

{

"C": "CN",

"L": "BeiJing",

"ST": "BeiJing",

"O": "k8s",

"OU": "System"

}

]

}

注释:CN: Common Name,kube-apiserver 从证书中提取该字段作为请求的用户名(User Name);浏览器使用该字段验证网站是否合法;O: Organization,kube-apiserver 从证书中提取该字段作为请求用户所属的组(Group)。

生成CA 证书和私钥:

cfssl gencert -initca ca-csr.json | cfssljson -bare ca

ls ca*

ca-config.json  ca.csr  ca-csr.json  ca-key.pem  ca.pem

Kubernetes v1.9.7安装部署-创建证书

证书分发

将生成的CA 证书、密钥文件、配置文件拷贝到所有机器的/etc/kubernetes/ssl目录下面:

sudo mkdir -p /etc/kubernetes/ssl

sudo cp ca* /etc/kubernetes/ssl

注释:把证书分发到所有的节点上面、如果没有文件夹则使用mkdir -p ***进行创建、文章后面涉及到的所有证书全部需要进行分发。

Kubernetes v1.9.7安装部署-创建证书

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: