kubernetes容器集群管理(3)-Kubeconfig 部署TLS Bootstrapping

目录

 

1、TLS Bootstrapping一些理解

2、部署Kubeconfig 

3、运行上面脚本


1、TLS Bootstrapping一些理解

如果对 TLS Bootstrapping 完全没接触过推荐:
https://blog.csdn.net/paopaohll/article/details/89022920

众所周知 TLS 的作用就是对通讯加密,防止中间人窃听;同时如果证书不信任的话根本就无法与 apiserver建立连接,更不用提有没有权限向 apiserver 请求指定内容。在开启了 TLS 的集群中,每当与集群交互的时候少不了的是身份认证,使用 kubeconfig(即证书) 和 token 两种认证方式是最简单也最通用的认证方式。

当集群开启了 TLS 认证后,每个节点的 kubelet 组件都要使用由 apiserver 使用的 CA 签发的有效证书才能与 apiserver 通讯;此时如果节点多起来,为每个节点单独签署证书将是一件非常繁琐的事情;TLS bootstrapping 功能就是让 kubelet 先使用一个预定的低权限用户连接到 apiserver,然后向 apiserver 申请证书,kubelet 的证书由 apiserver 动态签署;

TLS Bootstrapping ,使用 Token 时整个启动引导过程:
1、在集群内创建特定的 Bootstrap Token Secret ,该 Secret 将替代以前的 token.csv 内置用户声明文件
2、在集群内创建首次 TLS Bootstrap 申请证书的 ClusterRole、后续 renew Kubelet client/server 的 ClusterRole,以及其相关对应的 ClusterRoleBinding;并绑定到对应的组或用户
3、调整 Controller Manager 配置,以使其能自动签署相关证书和自动清理过期的 TLS Bootstrapping Token
4、生成特定的包含 TLS Bootstrapping Token 的 bootstrap.kubeconfig 以供 kubelet 启动时使用
5、调整 Kubelet 配置,使其首次启动加载 bootstrap.kubeconfig 并使用其中的 TLS Bootstrapping Token 完成首次证书申请
6、证书被 Controller Manager 签署,成功下发,Kubelet 自动重载完成引导流程
7、后续 Kubelet 自动 renew 相关证书

--#!
就个人目前理解:想要实现K8s集群每个节点的Kubelet与管理机器Apiserver之间的通讯,首先需要TLS证书,这个之前已经利用CFSSL
工具生成并分发好了;其次还需要每台节点向apiserver申请证书并同意,我们现在要做的就是让每台节点自动向管理机器申请通讯,master
直接签署就可以了,不必让管理机器一台一台挨个确认。

2、部署Kubeconfig 

#Kubeconfig 需要配置如下TLS Bootstrapping Token、kubelet kubeconfig、kube-proxy kubeconfig
#下载kubectl

kubectl下载地址:https://kubernetes.io/docs/tasks/tools/install-kubectl/
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.9.0/bin/linux/amd64/kubectl
[root@master ssl]# chmod +x kubectl                                                   
[root@master ssl]# mv kubectl /opt/kubernetes/bin/

#kubeconfig配置文件创建,直接用下面kubeconfig.sh脚本文件生成 注意:export KUBE_APISERVER设置master的ip

# 创建 TLS Bootstrapping Token
export BOOTSTRAP_TOKEN=$(head -c 16 /dev/urandom | od -An -t x | tr -d ' ')
cat > token.csv <


3、运行上面脚本

#设置环境

[root@master ssl]# vi /etc/profile

#在文件最后一行加上

PATH=$PATH:/opt/kubernetes/bin 
[root@master ssl]# source /etc/profile

#执行

[root@master ssl]# chmod +x kubeconfig.sh
[root@master ssl]# ./kubeconfig.sh
#生成bootstrap.kubeconfig kube-proxy.kubeconfig token.csv后面会用


 

你可能感兴趣的:(kubernetes)