- 说明
安装kubelet工具,参考:https://jimmysong.io/kubernetes-handbook/practice/kubectl-installation.html
安装并赋予可执行权限,继续进行操作:
1、创建TLS bootstrapping Token,即token.csv文件
# export BOOTSTRAP_TOKEN=$(head -c 16 /dev/urandom | od -An -t x | tr -d ' ')
# cat > token.csv <<EOF
> ${BOOTSTRAP_TOKEN},kubelet-bootstrap,10001,"system:kubelet-bootstrap"
> EOF
注意事项:
- 更新 token.csv 文件,分发到所有机器 (master 和 node)的 /etc/kubernetes/ 目录下,分发到node节点上非必需;
- 重新生成 bootstrap.kubeconfig 文件,分发到所有 node 机器的 /etc/kubernetes/ 目录下;
- 重启 kube-apiserver 和 kubelet 进程;
- 重新 approve kubelet 的 csr 请求;
拷贝文件到配置文件夹
cp token.csv /etc/kubernetes
补:安装kubectl命令行工具详见:https://blog.csdn.net/baidu_38432732/article/details/107985868
2、创建kubelet(node节点)要用的bootstrap.kubeconfig文件
注意:以下都是一条条执行的命令,不是复制这些代码到文件里。。。注意。。有网友已经错误的这样做了
[root@k8s_Master kubernetes]# export KUBE_APISERVER="https://192.168.0.221:6443"
# 设置集群参数
[root@k8s_Master kubernetes]# kubectl config set-cluster kubernetes \
> --certificate-authority=/etc/kubernetes/ssl/ca.pem \
> --embed-certs=true \
> --server=${KUBE_APISERVER} \
> --kubeconfig=bootstrap.kubeconfig
Cluster "kubernetes" set.
# 设置客户端认证参数
[root@k8s_Master kubernetes]# kubectl config set-credentials kubelet-bootstrap \
> --token=${BOOTSTRAP_TOKEN} \
> --kubeconfig=bootstrap.kubeconfig
User "kubelet-bootstrap" set.
# 设置上下文参数
[root@k8s_Master kubernetes]# kubectl config set-context default \
> --cluster=kubernetes \
> --user=kubelet-bootstrap \
> --kubeconfig=bootstrap.kubeconfig
Context "default" created.
# 设置默认上下文
[root@k8s_Master kubernetes]# kubectl config use-context default --kubeconfig=bootstrap.kubeconfig
Switched to context "default".
3、创建节点要用的kube-proxy.kubeconfig文件
[root@k8s_Master kubernetes]# export KUBE_APISERVER="https://19s.168.0.221:6443"
# 设置集群参数
[root@k8s_Master kubernetes]# kubectl config set-cluster kubernetes \
> --certificate-authority=/etc/kubernetes/ssl/ca.pem \
> --embed-certs=true \
> --server=${KUBE_APISERVER} \
> --kubeconfig=kube-proxy.kubeconfig
Cluster "kubernetes" set.
# 设置客户端认证参数
[root@k8s_Master kubernetes]# kubectl config set-credentials kube-proxy \
> --client-certificate=/etc/kubernetes/ssl/kube-proxy.pem \
> --client-key=/etc/kubernetes/ssl/kube-proxy-key.pem \
> --embed-certs=true \
> --kubeconfig=kube-proxy.kubeconfig
User "kube-proxy" set.
# 设置上下文参数
[root@k8s_Master kubernetes]# kubectl config set-context default \
> --cluster=kubernetes \
> --user=kube-proxy \
> --kubeconfig=kube-proxy.kubeconfig
Context "default" created.
# 设置默认上下文
[root@k8s_Master kubernetes]# kubectl config use-context default --kubeconfig=kube-proxy.kubeconfig
Switched to context "default".
4、分发文件
将两个 kubeconfig 文件分发到所有 Node 机器的 /etc/kubernetes/
目录,本机就是生产的那些
扫描二维码关注公众号,回复:
12405064 查看本文章
[root@k8s_Master kubernetes]# scp bootstrap.kubeconfig kube-proxy.kubeconfig [email protected]:/etc/kubernetes/
[email protected]'s password:
bootstrap.kubeconfig 100% 2167 1.3MB/s 00:00
kube-proxy.kubeconfig 100% 6273 2.6MB/s 00:00
[root@k8s_Master kubernetes]# scp bootstrap.kubeconfig kube-proxy.kubeconfig [email protected]:/etc/kubernetes/
[email protected]'s password:
bootstrap.kubeconfig 100% 2167 1.3MB/s 00:00
kube-proxy.kubeconfig