k8s部署---node节点组件部署(四)
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,kubelet组件简介kubernetes 是一个分布式的集群管理系统,在每个节点(node)上都要运行一个 worker 对容器进行生命周期的管理,这个 worker 程序就是 kubeletkub
千家信息网最后更新 2025年12月01日k8s部署---node节点组件部署(四)
kubelet组件简介
- kubernetes 是一个分布式的集群管理系统,在每个节点(node)上都要运行一个 worker 对容器进行生命周期的管理,这个 worker 程序就是 kubelet
- kubelet 的主要功能就是定时从某个地方获取节点上 pod/container 的期望状态(运行什么容器、运行的副本数量、网络或者存储如何配置等等),并调用对应的容器平台接口达到这个状态。
kubelet组件特性
- 定时汇报当前节点的状态给 apiserver,以供调度的时候使用
- 镜像和容器的清理工作,保证节点上镜像不会占满磁盘空间,退出的容器不会占用太多资源
- 运行 HTTP Server,对外提供节点和 pod 信息,如果在 debug 模式下,还包括调试信息
- 等等...
kubelet 主要功能
- Pod 管理
- 容器健康检查
- 容器监控
kube-proxy组件介绍
- 在 node节点上实现 Pod网络代理,维护网络规划和四层负载均衡工作
实验部署
实验环境
- Master01:192.168.80.12
- Node01:192.168.80.13
- Node02:192.168.80.14
- 本篇实验部署是接上篇文章master节点部署继续部署,实验环境不变,本篇文章主要是部署node节点中kubelet组件与kube-proxy组件
kubelet组件部署
- master01服务器操作
[root@master01 k8s]# cd /root/k8s/kubernetes/server/bin //进入之前解压好的软件命令目录[root@master01 bin]# lsapiextensions-apiserver kube-apiserver.docker_tag kube-proxycloud-controller-manager kube-apiserver.tar kube-proxy.docker_tagcloud-controller-manager.docker_tag kube-controller-manager kube-proxy.tarcloud-controller-manager.tar kube-controller-manager.docker_tag kube-schedulerhyperkube kube-controller-manager.tar kube-scheduler.docker_tagkubeadm kubectl kube-scheduler.tarkube-apiserver kubelet mounter[root@master01 bin]# scp kubelet kube-proxy root@192.168.80.13:/opt/kubernetes/bin/ //把 kubelet、 kube-proxy拷贝到node节点上去root@192.168.80.13's password:kubelet 100% 168MB 91.4MB/s 00:01kube-proxy 100% 48MB 71.8MB/s 00:00[root@master01 bin]# scp kubelet kube-proxy root@192.168.80.14:/opt/kubernetes/bin/root@192.168.80.14's password:kubelet 100% 168MB 122.5MB/s 00:01kube-proxy 100% 48MB 95.2MB/s 00:00[root@master01 bin]# scp /mnt/node.zip root@192.168.80.13:/root //将宿主机挂载的压缩文件拷贝到node01节点root@192.168.80.13's password:node.zip 100% 1240 4.1KB/s 00:00 - node01节点操作
[root@node01 ~]# lsanaconda-ks.cfg flannel.sh flannel-v0.10.0-linux-amd64.tar.gz node.zip README.md[root@node01 ~]# unzip node.zip //解压压缩包Archive: node.zipinflating: proxy.shinflating: kubelet.sh master01节点操作
[root@master01 bin]# cd /root/k8s/[root@master01 k8s]# mkdir kubeconfig //创建配置文件目录[root@master01 k8s]# cd kubeconfig[root@master01 kubeconfig]# cp /mnt/kubeconfig.sh /root/k8s/kubeconfig/ //拷贝脚本到配置文件目录[root@master01 kubeconfig]# mv kubeconfig.sh kubeconfig //更名[root@master01 kubeconfig]# vim kubeconfig //编辑文件# 创建 TLS Bootstrapping Token#BOOTSTRAP_TOKEN=$(head -c 16 /dev/urandom | od -An -t x | tr -d ' ')BOOTSTRAP_TOKEN=0fb61c46f8991b718eb38d27b605b008cat > token.csv <- node01节点操作
[root@node01 ~]# ls /opt/kubernetes/cfg/ //检查是否成功拷贝bootstrap.kubeconfig flanneld kube-proxy.kubeconfig[root@node01 ~]# bash kubelet.sh 192.168.80.13 //执行脚本文件生成kubelet的配置文件与启动脚本Created symlink from /etc/systemd/system/multi-user.target.wants/kubelet.service to /usr/lib/systemd/system/kubelet.service.[root@node01 ~]# systemctl status kubelet.service //查看服务是否启动● kubelet.service - Kubernetes KubeletLoaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled)Active: active (running) since 一 2020-02-10 14:17:12 CST; 1min 45s ago //成功运行Main PID: 79678 (kubelet)Memory: 14.2M... - master01服务器操作
[root@master01 kubeconfig]# kubectl get csr //查看是否有node01节点请求申请证书NAME AGE REQUESTOR CONDITIONnode-csr-WQGufSR06MTCWv0Neu0AexyqBZ1UgFDM1qdSziNEq_w 3m16s kubelet-bootstrap Pending[root@master01 kubeconfig]# kubectl certificate approve node-csr-WQGufSR06MTCWv0Neu0AexyqBZ1UgFDM1qdSziNEq_w //同意自签node01节点自签请求certificatesigningrequest.certificates.k8s.io/node-csr-WQGufSR06MTCWv0Neu0AexyqBZ1UgFDM1qdSziNEq_w approved[root@master01 kubeconfig]# kubectl get csr //同意后再次查看请求状态NAME AGE REQUESTOR CONDITIONnode-csr-WQGufSR06MTCWv0Neu0AexyqBZ1UgFDM1qdSziNEq_w 4m40s kubelet-bootstrap Approved,Issued //已经被允许加入群集[root@master01 kubeconfig]# kubectl get node //查看群集节点,成功加入node01节点NAME STATUS ROLES AGE VERSION192.168.80.13 Ready78s v1.12.3 - node01节点操作
[root@node01 ~]# bash proxy.sh 192.168.80.13 //执行脚本文件,启动kube-proxy服务并生成配置文件Created symlink from /etc/systemd/system/multi-user.target.wants/kube-proxy.service to /usr/lib/ systemd/system/kube-proxy.service.[root@node01 ~]# systemctl status kube-proxy.service //查看服务是否启动● kube-proxy.service - Kubernetes ProxyLoaded: loaded (/usr/lib/systemd/system/kube-proxy.service; enabled; vendor preset: disabled)Active: active (running) since 一 2020-02-10 14:23:59 CST; 1min 2s ago //成功启动Main PID: 80889 (kube-proxy)...[root@node01 ~]# scp -r /opt/kubernetes/ root@192.168.80.14:/opt/ //把现成的/opt/kubernetes目录复制到node02节点进行修改即可The authenticity of host '192.168.80.14 (192.168.80.14)' can't be established.ECDSA key fingerprint is SHA256:Ih0NpZxfLb+MOEFW8B+ZsQ5R8Il2Sx8dlNov632cFlo.ECDSA key fingerprint is MD5:a9:ee:e5:cc:40:c7:9e:24:5b:c1:cd:c1:7b:31:42:0f.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '192.168.80.14' (ECDSA) to the list of known hosts.root@192.168.80.14's password:flanneld 100% 235 139.5KB/s 00:00bootstrap.kubeconfig 100% 2167 4.6MB/s 00:00kube-proxy.kubeconfig 100% 6269 14.2MB/s 00:00kubelet 100% 377 430.7KB/s 00:00kubelet.config 100% 267 262.3KB/s 00:00kubelet.kubeconfig 100% 2296 3.3MB/s 00:00kube-proxy 100% 189 299.2KB/s 00:00mk-docker-opts.sh 100% 2139 2.3MB/s 00:00scp: /opt//kubernetes/bin/flanneld: Text file busykubelet 100% 168MB 134.1MB/s 00:01kube-proxy 100% 48MB 129.8MB/s 00:00kubelet.crt 100% 2185 3.3MB/s 00:00kubelet.key 100% 1675 2.8MB/s 00:00kubelet-client-2020-02-10-14-21-18.pem 100% 1273 608.4KB/s 00:00kubelet-client-current.pem 100% 1273 404.9KB/s 00:00[root@node01 ~]# scp /usr/lib/systemd/system/{kubelet,kube-proxy}.service root@192.168.80.14:/usr/lib/systemd/system/ //把kubelet,kube-proxy的service文件拷贝到node2中root@192.168.80.14's password:kubelet.service 100% 264 350.1KB/s 00:00kube-proxy.service 100% 231 341.5KB/s 00:00 - node02上操作
[root@node02 ~]# cd /opt/kubernetes/ssl/ //进入node01节点拷贝过来的证书目录[root@node02 ssl]# rm -rf * //删除证书,稍后我们在重新申请证书[root@node02 ssl]# cd ../cfg/ //进入配置文件目录[root@node02 cfg]# vim kubelet //修改文件KUBELET_OPTS="--logtostderr=true \--v=4 \--hostname-override=192.168.80.14 \ //修改IP地址--kubeconfig=/opt/kubernetes/cfg/kubelet.kubeconfig \--bootstrap-kubeconfig=/opt/kubernetes/cfg/bootstrap.kubeconfig \--config=/opt/kubernetes/cfg/kubelet.config \--cert-dir=/opt/kubernetes/ssl \--pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google-containers/pause-amd64:3.0":wq[root@node02 cfg]# vim kubelet.config //修改配置文件kind: KubeletConfigurationapiVersion: kubelet.config.k8s.io/v1beta1address: 192.168.80.14 //修改IP地址port: 10250readOnlyPort: 10255cgroupDriver: cgroupfsclusterDNS:- 10.0.0.2clusterDomain: cluster.local.failSwapOn: falseauthentication:anonymous:enabled: true:wq[root@node02 cfg]# vim kube-proxy //修改kube-proxy配置文件KUBE_PROXY_OPTS="--logtostderr=true \--v=4 \--hostname-override=192.168.80.14 \ //修改IP地址--cluster-cidr=10.0.0.0/24 \--proxy-mode=ipvs \--kubeconfig=/opt/kubernetes/cfg/kube-proxy.kubeconfig":wq[root@node02 cfg]# systemctl start kubelet.service //启动服务[root@node02 cfg]# systemctl enable kubelet.service //设置开机自启Created symlink from /etc/systemd/system/multi-user.target.wants/kubelet.service to /usr/lib/systemd/system/kubelet.service.[root@node02 cfg]# systemctl start kube-proxy.service //启动服务[root@node02 cfg]# systemctl enable kube-proxy.service //设置开机自启Created symlink from /etc/systemd/system/multi-user.target.wants/kube-proxy.service to /usr/lib/ systemd/system/kube-proxy.service. - master01节点操作
[root@master01 kubeconfig]# kubectl get csr //查看node节点请求NAME AGE REQUESTOR CONDITIONnode-csr-WQGufSR06MTCWv0Neu0AexyqBZ1UgFDM1qdSziNEq_w 22m kubelet-bootstrap Approved,Issuednode-csr-jUI3h8Ae2tC5OmihpylXEVlMiJnNO117Z1OgpopxAA0 4m54s kubelet-bootstrap Pending //等待集群给该节点颁发证书[root@master01 kubeconfig]# kubectl certificate approve node-csr-jUI3h8Ae2tC5OmihpylXEVlMiJnNO117Z1OgpopxAA0 //使用命令授权许可加入群集certificatesigningrequest.certificates.k8s.io/node-csr-jUI3h8Ae2tC5OmihpylXEVlMiJnNO117Z1OgpopxAA0 approved[root@master01 kubeconfig]# kubectl get csr //再次查看node节点请求NAME AGE REQUESTOR CONDITIONnode-csr-WQGufSR06MTCWv0Neu0AexyqBZ1UgFDM1qdSziNEq_w 23m kubelet-bootstrap Approved,Issuednode-csr-jUI3h8Ae2tC5OmihpylXEVlMiJnNO117Z1OgpopxAA0 5m58s kubelet-bootstrap Approved,Issued //成功加入[root@master01 kubeconfig]# kubectl get node //查看群集中的节点NAME STATUS ROLES AGE VERSION192.168.80.13 Ready20m v1.12.3192.168.80.14 Ready 76s v1.12.3 //成功加入节点 node节点部署完成
节点
文件
配置
容器
拷贝
服务
组件
成功
目录
状态
证书
生成
运行
脚本
实验
命令
地址
环境
网络
管理
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广州社交软件开发公司
网络安全手抄报的诗词
登英雄联盟服务器连接
网络安全技术演示
新疆网络安全工作责任制
公司的电脑网络安全
信息安全防护和网络安全防护
瑞发软件开发
机关单位网络安全分析研判报告
翼支付网络安全
在服务器中怎么控制电脑上网
易语言数据库如何删除字段
牡丹江软件开发公司哪家好
基因解读数据库
关于智慧消防的网络安全方案
asp 创建mysql数据库
绍兴吉加软件开发来电咨询
软件开发和机械电子该选哪个
数据库连接api接口填报数据
为什么服务器硬盘转速这么高
网络安全核心股票的比较
南充软件开发培训机构
第三方独立城市网络安全运营中心
软件开发与管理技术是干什么的
如何从服务器上删除邮件
网络安全单位安全专用产品
以确保网络安全为
白狐网络技术信息服务部
通联数据库官网
绍兴吉加软件开发来电咨询