一、Kubelet启动过程
### --- TLS BootStrapping官方地址
~~~ ——>TLS BootStrapping官方文档:
~~~ https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet-tls-bootstrapping/#initialization-process
二、TLS引导
### --- TLS引导
~~~ 在一个 Kubernetes 集群中,
~~~ 工作节点上的组件(kubelet 和 kube-proxy)需要与 Kubernetes 主控组件通信,
~~~ 尤其是 kube-apiserver。 为了确保通信本身是私密的、不被干扰,
~~~ 并且确保集群的每个组件都在与另一个 可信的组件通信,我们强烈建议使用节点上的客户端 TLS 证书。
~~~ 启动引导这些组件的正常过程,尤其是需要证书来与 kube-apiserver 安全通信的 工作节点,
~~~ 可能会是一个具有挑战性的过程,因为这一过程通常不受 Kubernetes 控制, 需要不少额外工作。
~~~ 这也使得初始化或者扩缩一个集群的操作变得具有挑战性。
~~~ 为了简化这一过程,从 1.4 版本开始,Kubernetes 引入了一个证书请求和签名 API 以便简化此过程。
三、初始化过程
### --- 初始化过程
~~~ 查找kubeconfig文件,文件一般位于/etc/kubernetes/kubelet.kubeconfig
~~~ 从kubeconfig文件中检索APIServer的URL和证书
~~~ 然后去和APIServer进行交互
四、查看TLS证书有效期
### --- 查看kubelet.kubeconfig证书有效期:
~~~ 注:首先对kubelet.kubeconfi的certificate-authority-data字段进行解密:
~~~ 注:该内容是通过base64加密的,可以通过下列文件查看
[root@k8s-node02 ~]# more /etc/kubernetes/kubelet.kubeconfig
apiVersion: v1
clusters:
- cluster:
# certificate-authority-data:*************证书内容#**************
### --- 查看证书有效期
[root@k8s-node02 ~]# echo "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUQ1RENDQXN5Z0F3SUJBZ0lVTnNjUDNPR0p2cTczWjhlSFk5dEZmck5TbWFnd0RRWUpLb1pJaHZjTkFRRUwKQlFBd2R6RUxNQWtHQTFVRUJoTU
> NRMDR4RURBT0JnTlZCQWdUQjBKbGFXcHBibWN4RURBT0JnTlZCQWNUQjBKbAphV3BwYm1jeEV6QVJCZ05WQkFvVENrdDFZbVZ5Ym1WMFpYTXhHakFZQmdOVkJBc1RFVXQxWW1WeWJtVjBaWE10CmJXRnVkV0ZzTVJNd0VRWURWUVFERXdwcmRX
> SmxjbTVsZEdWek1DQVhEVEl4TURRd09UQTVOVEV3TUZvWUR6SXgKTWpFd016RTJNRGsxTVRBd1dqQjNNUXN3Q1FZRFZRUUdFd0pEVGpFUU1BNEdBMVVFQ0JNSFFtVnBhbWx1WnpFUQpNQTRHQTFVRUJ4TUhRbVZwYW1sdVp6RVRNQkVHQTFVRU
> NoTUtTM1ZpWlhKdVpYUmxjekVhTUJnR0ExVUVDeE1SClMzVmlaWEp1WlhSbGN5MXRZVzUxWVd3eEV6QVJCZ05WQkFNVENtdDFZbVZ5Ym1WMFpYTXdnZ0VpTUEwR0NTcUcKU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRRHFXYzJ1Ylp3
> M2RIYmZZS0J2MlFjZkhlK3hRalBoa0VvUgpMcmljRjBFZXhOb1VrWEYrUXFibGFzSjZOVTJpZkFTRXBFcFI0Z3FHdGo2MloxMys2eXM5RndvQXA0Zll6SndSCkFvZ1BmdUxoYUFINTVRUllnelllaytoOFZtWEtsVDJpR3NIdFhkSndLbEVoVj
> ZYdkJnVTUrL0RQSzdHZlo2WXIKblhaaGRaeDlaeUwwaGFjOWZkSVNVVGNjWFpIUnUwRzJ3aFJUc2g0NVUyaW1rWi9CMlM4eWtiNVRVSzdUeWFZcApWdndKdGo3d2NZNTZVS2h4clNLSXdCbTZiTU9MbFRkemJnZGFxbHRZZUczNFo5cGZjUHJD
> eUllQ0FLYzFxK1BZCjMySFY2b1o3Tnc0czFWL0hWejN3TC9URXFQbXExSGx4OHpBbXBiWTh6eDZ6VjU1Mld5S0xBZ01CQUFHalpqQmsKTUE0R0ExVWREd0VCL3dRRUF3SUJCakFTQmdOVkhSTUJBZjhFQ0RBR0FRSC9BZ0VDTUIwR0ExVWREZ1
> FXQkJUQQpBTXN3Z2dnMDBCOG05K2FoWnhoMzF3TVFEakFmQmdOVkhTTUVHREFXZ0JUQUFNc3dnZ2cwMEI4bTkrYWhaeGgzCjF3TVFEakFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBNkNXamVLTG1aSXRoVEg0bm16Yk43SHFRSUNLdHQvRW4K
> RXFHQzc3MmorQy9YdUVSZGF2WVE4anlnS0hoYzFaSGJGWllsQ1c4dlFYWnc1MGxRelZXc1ZrM05NMktJZkh3UgpLWG1URVNjVVlKQVF4c0hrdktZS0NrVWhPWVJmUmhuUjBKRXNWalhEeE5NQTMvOEk1b3dIYklLN2NweUFmR2txClFVOTczdm
> ZzZzNWcUVHOG41ZHVEcTRMMGw0aWxnanVUb2lxNURKcWJXUXE3blJBK3pKTkZCWTB4M0IxM2VPVVYKSVh6ODJYaTQwMThlVURhZHh0RHovM0x4eUhRenpnOFpXOFd0dXZVL1JWQ2w4OGx2cUduT2oyb3V4ZWd0elM2QwpYUktxYStvY2VPTWhm
> TEJyTGZrZVppTjF4ZVlrbVNyenZtYVBzYzBIdXBQdW9SMlRJb2FpZXc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==" | base64 --decode >/tmp/key.jiemi
### --- 然后使用OpenSSL即可查看证书过期时间:
~~~ 注:查看到证书的到期时间是2121年
[root@k8s-node02 ~]# openssl x509 -in /tmp/key.jiemi -noout -dates
notBefore=Apr 9 09:51:00 2021 GMT
notAfter=Mar 16 09:51:00 2121 GMT