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:53:cb:8f:c0:6b:8f:bf:3f: 91:3b: