一、部署kubelet
按照如下图部署:
1、配置kubelet命令工具
[root@k8s-master ~]# tar -zxvfkubernetes-node-linux-amd64.tar.gz -C /usr/src/
[root@k8s-master ~]# cd /usr/src/kubernetes/node/bin
[root@k8s-master bin]# cp kubelet kubectlkube-proxy /usr/local/kubernetes/bin/
复制
2、创建 kubeletbootstrap.kubeconfig 文件
(1)创建kubeletbootstrap.kubeconfig脚本
[root@k8s-master ~]# vim /usr/local/kubernetes/conf/environment.sh
添加:
# 创建kubelet bootstrapping kubeconfig
BOOTSTRAP_TOKEN=a6cccdfca47a9766da8db559b81fb6c4
KUBE_APISERVER="https://192.168.1.3:6443"
# 设置集群参数
kubectl config set-cluster kubernetes \
--certificate-authority=/usr/local/kubernetes/ssl/ca.pem \
--embed-certs=true \
--server=${KUBE_APISERVER} \
--kubeconfig=/usr/local/kubernetes/conf/bootstrap.kubeconfig
# 设置客户端认证参数
kubectl config set-credentials kubelet-bootstrap \
--token=${BOOTSTRAP_TOKEN} \
--kubeconfig=/usr/local/kubernetes/conf/bootstrap.kubeconfig
# 设置上下文参数
kubectl config set-context default \
--cluster=kubernetes \
--user=kubelet-bootstrap \
--kubeconfig=/usr/local/kubernetes/conf/bootstrap.kubeconfig
# 设置默认上下文
kubectl config use-context default \
--kubeconfig=/usr/local/kubernetes/conf/bootstrap.kubeconfig
复制
(2)执行脚本environment.sh创建bootstrap.kubeconfig文件
[root@k8s-master ~]# chmod +x/usr/local/kubernetes/conf/environment.sh
[root@k8s-master ~]# /usr/local/kubernetes/conf/environment.sh
复制
[root@k8s-master ~]# ls/usr/local/kubernetes/conf/bootstrap.kubeconfig
复制
(3)分发bootstrap.kubeconfig文件
[root@k8s-master ~]# scp /usr/local/kubernetes/conf/bootstrap.kubeconfig192.168.1.1:/usr/local/kubernetes/conf/
[root@k8s-master ~]# scp /usr/local/kubernetes/conf/bootstrap.kubeconfig192.168.1.2:/usr/local/kubernetes/conf/
复制
3、创建 kubelet.kubeconfig 文件
(1)创建脚本
[root@k8s-master ~]# vim/usr/local/kubernetes/conf/envkubelet.kubeconfig.sh
添加:
# 创建kubelet kubeconfig
BOOTSTRAP_TOKEN=a6cccdfca47a9766da8db559b81fb6c4
KUBE_APISERVER="https://192.168.1.3:6443"
# 设置集群参数
kubectl config set-cluster kubernetes \
--certificate-authority=/usr/local/kubernetes/ssl/ca.pem \
--embed-certs=true \
--server=${KUBE_APISERVER} \
--kubeconfig=/usr/local/kubernetes/conf/kubelet.kubeconfig
# 设置客户端认证参数
kubectl config set-credentials kubelet \
--token=${BOOTSTRAP_TOKEN} \
--kubeconfig=/usr/local/kubernetes/conf/kubelet.kubeconfig
# 设置上下文参数
kubectl config set-context default \
--cluster=kubernetes \
--user=kubelet \
--kubeconfig=/usr/local/kubernetes/conf/kubelet.kubeconfig
# 设置默认上下文
kubectl config use-context default \
--kubeconfig=/usr/local/kubernetes/conf/kubelet.kubeconfig
复制
(2)执行envkubelet.kubeconfig.sh脚本创建kubelet.kubeconfig文件
[root@k8s-master ~]# chmod +x /usr/local/kubernetes/conf/envkubelet.kubeconfig.sh
[root@k8s-master ~]#/usr/local/kubernetes/conf/envkubelet.kubeconfig.sh
复制
[root@k8s-master ~]# ls/usr/local/kubernetes/conf/kubelet.kubeconfig
复制
(3)分发kubelet.kubeconfig文件
[root@k8s-master ~]# scp /usr/local/kubernetes/conf/kubelet.kubeconfig 192.168.1.1:/usr/local/kubernetes/conf/
[root@k8s-master ~]# scp /usr/local/kubernetes/conf/kubelet.kubeconfig 192.168.1.2:/usr/local/kubernetes/conf/
复制
4、创建 kubelet.config文件
[root@k8s-master ~]# vim /usr/local/kubernetes/conf/kubelet.config
添加:
kind: KubeletConfiguration
apiVersion: kubelet.config.k8s.io/v1beta1
address: 192.168.1.3 ###改为本机ip地址
port: 10250
readOnlyPort: 10255
cgroupDriver: cgroupfs
clusterDNS: ["10.0.0.10"]
clusterDomain: cluster.local.
failSwapOn: false
authentication:
anonymous:
enabled:true
[root@k8s-master ~]# scp /usr/local/kubernetes/conf/kubelet.config192.168.1.1:/usr/local/kubernetes/conf/
[root@k8s-master ~]# scp /usr/local/kubernetes/conf/kubelet.config192.168.1.2:/usr/local/kubernetes/conf/
复制
5、拉去pause镜像
[root@k8s-master ~]# docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1
复制
6、创建kubelet文件
[root@k8s-master ~]# vim /usr/local/kubernetes/conf/kubelet
添加:
KUBELET_OPTS="--logtostderr=true \
--v=4 \
--hostname-override=k8s-master \
--kubeconfig=/usr/local/kubernetes/conf/kubelet.kubeconfig \
--bootstrap-kubeconfig=/usr/local/kubernetes/conf/bootstrap.kubeconfig \
--config=/usr/local/kubernetes/conf/kubelet.config \
--cert-dir=/usr/local/kubernetes/ssl/ \
--cluster-dns=10.0.0.10 \
--cluster-domain=cluster.local \
--client-ca-file=/usr/local/kubernetes/ssl/ca.pem \
--pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1"
注意:如果启用CNI则添加如下配置:
--network-plugin=cni
--cni-conf-dir=/etc/cni/net.d
--cni-bin-dir=/opt/cni/bin
[root@k8s-master ~]# scp /usr/local/kubernetes/conf/kubelet 192.168.1.1:/usr/local/kubernetes/conf/
[root@k8s-master ~]# scp /usr/local/kubernetes/conf/kubelet 192.168.1.2:/usr/local/kubernetes/conf/
复制
7、配置kubelet服务
[root@k8s-node-1 ~]# vim /usr/lib/systemd/system/kubelet.service
添加:
[Unit]
Description=Kubernetes Kubelet
After=docker.service
Requires=docker.service
[Service]
EnvironmentFile=-/usr/local/kubernetes/conf/kubelet
ExecStart=/usr/local/kubernetes/bin/kubelet$KUBELET_OPTS
Restart=on-failure
KillMode=process
[Install]
WantedBy=multi-user.target
[root@k8s-master ~]# scp /usr/lib/systemd/system/kubelet.service 192.168.1.1:/usr/lib/systemd/system/
[root@k8s-master ~]# scp /usr/lib/systemd/system/kubelet.service 192.168.1.2:/usr/lib/systemd/system/
复制
8、将kubelet-bootstrap用户绑定到系统集群角色
在master服务器中将kubelet-bootstrap用户绑定到系统集群角色中,否则kubelet启动可能会报错。
[root@k8s-master~]# kubectl create clusterrolebindingkubelet-bootstrap --clusterrole=system:node-bootstrapper --user=kubelet-bootstrap
复制
9、启动kubelet服务
[root@k8s-master ~]# systemctl enable kubelet.service
[root@k8s-master ~]# systemctl start kubelet.service
[root@k8s-master ~]# systemctl status kubelet.service
复制
[root@k8s-master ~]# netstat -anpt | grep kubelet
复制
二、讲Node节点添加到群集中
注意:下列操作在master服务器中完成!
1、将kubelet-bootstrap用户绑定到系统集群角色
在master服务器中将kubelet-bootstrap用户绑定到系统集群角色中
[root@k8s-master ~]# kubectl create clusterrolebindingkubelet-bootstrap --clusterrole=system:node-bootstrapper --user=kubelet-bootstrap
复制
2、在Master节点查看请求签名的Node
[root@k8s-master ~]# kubectl get csr
复制
3、在Master节点批准签名(将node节点服务器加入群集中)
[root@k8s-master ~]# kubectl certificate approvenode-csr-4f1CiCedNim94v0u8dMrj0YKw79wrU8BzEl5oDKKINY
[root@k8s-master ~]# kubectl certificate approvenode-csr-HU6O86iGyvB_L45oQMEQPS-4EdMA_8Rkjv2GqQurIjM
[root@k8s-master ~]# kubectl certificate approvenode-csr-XGnfhQvE0b1dnOlHKrzHTRqi9YGA4ZetwmG64_vKi0g
复制
4、查看node节点的签名状态
[root@k8s-master ~]# kubectl get nodes
复制
注意:如下图所示NotReady。
原因是:
1、网络未配置,部署Flannel网络后,回复正常。
2、网络设置存在问题,检查网络配置是否正确。
文章转载自dodo在线,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
2025年4月中国数据库流行度排行榜:OB高分复登顶,崖山稳驭撼十强
墨天轮编辑部
2453次阅读
2025-04-09 15:33:27
数据库国产化替代深化:DBA的机遇与挑战
代晓磊
1128次阅读
2025-04-27 16:53:22
2025年3月国产数据库中标情况一览:TDSQL大单622万、GaussDB大单581万……
通讯员
811次阅读
2025-04-10 15:35:48
2025年4月国产数据库中标情况一览:4个千万元级项目,GaussDB与OceanBase大放异彩!
通讯员
642次阅读
2025-04-30 15:24:06
数据库,没有关税却有壁垒
多明戈教你玩狼人杀
563次阅读
2025-04-11 09:38:42
天津市政府数据库框采结果公布,7家数据库产品入选!
通讯员
546次阅读
2025-04-10 12:32:35
国产数据库需要扩大场景覆盖面才能在竞争中更有优势
白鳝的洞穴
526次阅读
2025-04-14 09:40:20
最近我为什么不写评论国产数据库的文章了
白鳝的洞穴
499次阅读
2025-04-07 09:44:54
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
451次阅读
2025-04-17 17:02:24
一页概览:Oracle GoldenGate
甲骨文云技术
447次阅读
2025-04-30 12:17:56