部署 Worker Node 组件
在所有 node 节点上操作
创建kubernetes工作目录
mkdir -p /opt/kubernetes/{bin,cfg,ssl,logs}

上传 node.zip 到 /opt 目录中,解压 node.zip 压缩包,获得kubelet.sh、proxy.sh
cd /opt/
unzip node.zip
chmod +x kubelet.sh proxy.sh

在 master01 节点上操作
把 kubelet、kube-proxy 拷贝到 node 节点
cd /opt/k8s/kubernetes/server/bin
scp kubelet kube-proxy root@20.0.0.72:/opt/kubernetes/bin/
scp kubelet kube-proxy root@20.0.0.73:/opt/kubernetes/bin/

上传kubeconfig.sh文件到/opt/k8s/kubeconfig目录中,生成kubelet初次加入集群引导kubeconfig文件和kube-proxy.kubeconfig文件

mkdir /opt/k8s/kubeconfig

cd /opt/k8s/kubeconfig
chmod 777 kubeconfig.sh
./kubeconfig.sh 20.0.0.70 /opt/k8s/k8s-cert/

把配置文件 bootstrap.kubeconfig、kube-proxy.kubeconfig 拷贝到 node 节点
scp bootstrap.kubeconfig kube-proxy.kubeconfig root@20.0.0.72:/opt/kubernetes/cfg/
scp bootstrap.kubeconfig kube-proxy.kubeconfig root@20.0.0.73:/opt/kubernetes/cfg/


RBAC授权,使用户 kubelet-bootstrap 能够有权限发起 CSR 请求证书
kubectl create clusterrolebinding kubelet-bootstrap --clusterrole=system:node-bootstrapper --user=kubelet-bootstrap

若执行失败,可先给kubectl绑定默认cluster-admin管理员集群角色,授权对整个集群的管理员权限
kubectl create clusterrolebinding cluster-system-anonymous --clusterrole=cluster-admin --user=system:anonymous

在 node01 节点上操作
启动 kubelet 服务
cd /opt/
./kubelet.sh 20.0.0.72
ps aux | grep kubelet

在 master01 节点上操作,通过 CSR 请求
检查到 node01 节点的 kubelet 发起的 CSR 请求,Pending 表示等待集群给该节点签发证书
NAME                                                   AGE   SIGNERNAME                                    REQUESTOR           CONDITION
node-csr-ubJfHTxHB8FU8gS1Q4ZhjJKv33AEZqgkm73oeBhs08o   22s   kubernetes.io/kube-apiserver-client-kubelet   kubelet-bootstrap   Pending
通过 CSR 请求
kubectl certificate approve node-csr-ubJfHTxHB8FU8gS1Q4ZhjJKv33AEZqgkm73oeBhs08o

Approved,Issued 表示已授权 CSR 请求并签发证书
NAME                                                   AGE   SIGNERNAME                                    REQUESTOR           CONDITION
node-csr-ubJfHTxHB8FU8gS1Q4ZhjJKv33AEZqgkm73oeBhs08o   56s   kubernetes.io/kube-apiserver-client-kubelet   kubelet-bootstrap   Approved,Issued

node02节点同理上

[root@k8s1 opt]# kubectl get node
NAME        STATUS     ROLES    AGE    VERSION
20.0.0.72   NotReady   <none>   3m2s   v1.20.11
20.0.0.73   NotReady   <none>   54s    v1.20.11




在 node01 节点上操作

启动 kubelet 服务
cd /opt/
./kubelet.sh 20.0.0.73
ps aux | grep kubelet

//在 master01 节点上操作,通过 CSR 请求
#检查到 node01 节点的 kubelet 发起的 CSR 请求,Pending 表示等待集群给该节点签发证书
kubectl get csr
NAME                                                   AGE  SIGNERNAME                                    REQUESTOR           CONDITION
node-csr-duiobEzQ0R93HsULoS9NT9JaQylMmid_nBF3Ei3NtFE   12s  kubernetes.io/kube-apiserver-client-kubelet   kubelet-bootstrap   Pending

#通过 CSR 请求
kubectl certificate approve node-csr-duiobEzQ0R93HsULoS9NT9JaQylMmid_nBF3Ei3NtFE

#Approved,Issued 表示已授权 CSR 请求并签发证书
kubectl get csr
NAME                                                   AGE  SIGNERNAME                                    REQUESTOR           CONDITION
node-csr-duiobEzQ0R93HsULoS9NT9JaQylMmid_nBF3Ei3NtFE   2m5s kubernetes.io/kube-apiserver-client-kubelet   kubelet-bootstrap   Approved,Issued

#查看节点,由于网络插件还没有部署,节点会没有准备就绪 NotReady
kubectl get node
NAME            STATUS     ROLES    AGE    VERSION
192.168.233.93   NotReady   <none>   108s   v1.20.11

//在 node01 节点上操作
#加载 ip_vs 模块
for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done

#启动proxy服务
cd /opt/
./proxy.sh 20.0.0.73
ps aux | grep kube-proxy
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐