kubeadm init流程
1.引导前的检查
kubeadm init执行后,首先需要对集群master节点安装的各种约束条件进行逐一检查。
如果不符合kubeadm的要求,kubeadm将报错并停止init过程。
下面列举一些error级别的检查:
kubeadm版本要与安装的kubernetes版本的比对检查。
kubernetes安装的系统需求检查。
其它检查:用户、主机、端口、swap、工具等。
2.生成私钥和数字证书
kubeadm会为整个集群生成多组私钥和公钥数字证书。
包括整个集群的root CA的私钥和CA的公钥数字证书,
API Server与其它组件之间的相互通信所用的多组私钥和数字证书,
用于service acount token签名的私钥和公钥文件等。
这样使得kubeadm搭建出来的集群是一个安全的集群。
所有kubernetes自身组件的通信以及pod到API Service的通信都是基于安全数据通道的。
且有生成验证和授权机制的。
关于数字证书、CA和CA证书:
数字证书:互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在互联网上验证通信实体身份的方式。
CA:Certificate Authority,证书授权中心。它是负责管理和签发证书的第三方机构。
它是负责管理和签发证书的第三方机构,作用是检查证书持有者身份的合法性,并签发证书,以访证书被伪造或篡改。
数字证书就是CA发行。
CA证书:CA颁发的证书,也就是我们常说的数字证书,包含证书拥有者的身份信息,CA机构的签名,公钥和私钥。
身份信息用于证明证书持有者的身份;CA签名用于保护身份的真实性。公钥和私钥用于通信过程中加解密,从而保证通信信息的安全性。
查看kubeadm的证书:
主要包括:
(1)自建CA、生成ca.key和ca.crt
如果不指定外部的证书授权机构,那么kubeadm会自建证书授权机构,
生成私钥(ca.key)和自签署的数字证书(ca.crt),用于后续签发kubernetes集群所需要的其它公钥证书证书。
查看ca的数字证书:
ca.crt是一个标准的x509格式的数字证书文件。
ubuntu@VM-16-6-ubuntu:/etc/kubernetes/pki$ openssl x509 -in ca.crt -noout -text
Certificate:
Data:
Version: 3 (0x2) #版本号
Serial Number: 0 (0x0) #序列号,ca的第一个证书
Signature Algorithm: sha256WithRSAEncryption #加密方式
Issuer: CN=kubernetes
Validity
Not Before: Jun 19 03:23:59 2019 GMT
Not After : Jun 16 03:23:59 2029 GMT
Subject: CN=kubernetes
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:b4:e0:c3:3b:74:92:dc:57:87:dc:0e:cb:cb:1c:
92:e3:17:7d:74:eb:d5:06:14:7b:88:22:d2:77:34:
59:be:85:d2:65:7a:88:46:bc:9d:ec:3a:7e:d7:85:
08:e2:ce:46:cd:38:06:e1:6b:af:a8:46:b5:1e:3b:
74:60:a6:7a:45:6a:dd:fa:01:77:9f:61:66:5d:5c:
8e:06:82:9e:da:15:a3:80:95:e0:a2:f5:f7:3a:d5:
d1:1f:ce:f0:a7:47:df:75:a2:ad:62:95:a2:7b:f2:
15:8d:f2:b0:d0:82:f5:59:1f:75:c0:a8:fd:02:8e:
35:05:2b:96:ec:78:d7:c1:0c:9b:34:26:53:c8:df:
0a:c4:27:05:12:74:1d:26:4c:b0:15:74:74:b8:4d:
08:c4:d9:48:19:77:6f:49:e9:27:de:ed:f6:f5:d4:
8b:93:14:8e:cb:3d:0d:f8:20:bc:15:80:37:64:22:
cc:c2:bc:62:27:d4:cc:41:3b:81:59:26:77:10:fc:
8b:c6:7c:1f:9a:20:77:92:3c:51:f9:b8:15:8a:85:
d4:c5:02:aa:91:11:9c:ed:b7:fd:fd:2c:09:57:37:
f6:00:91:38:98:52:48:f6:b1:ed:d7:91:78:d0:a5:
d2:30:ff:d1:76:e3:ea:91:e2:d8:3f:26:82:ea:cd:
0f:53
Exponent: 65537 (0x10001)
X509v3 extensions: #证书的用途
X509v3 Key Usage: critical
Digital Signature(数据签名), Key Encipherment(密钥加密), Certificate Sign(证书签发)
X509v3 Basic Constraints: critical
CA:TRUE #这是一个ca的公钥证书
Signature Algorithm: sha256WithRSAEncryption
a6:f7:53:49:4f:1c:c4:1b:e9:84:08:4c:5a:49:03:c8:32:b1:
24:15:b6:47:0b:78:db:9a:1d:c5:23:fb:7b:89:fa:96:2d:eb:
df:e9:d8:ad:3a:90:02:e0:fd:12:f2:0c:b2:15:68:72:e4:08:
83:57:ed:c9:78:5c:ae:10:4c:c5:92:50:14:32:c4:66:12:34:
50:7f:e0:5d:b0:6e:5f:95:49:b7:e3:c8:83:b9:90:f0:94:29:
19:0a:7c:9a:e6:59:68:11:1a:92:e8:9d:29:30:3c:3b:aa:06:
7f:59:89:e0:37:8b:c2:2e:89:a0:68:d1:78:bc:6c:d1:d9:79:
cd:0c:2e:7b:7c:c4:4c:59:2e:89:13:fc:c6:6c:f3:45:e7:6e:
b1:15:41:ee:eb:4c:15:c1:59:e4:8e:84:d8:34:c6:dd:95:eb:
36:26:4a:99:94:e4:11:6f:69:89: