千家信息网

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   Ready       78s   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   Ready       20m   v1.12.3192.168.80.14   Ready       76s   v1.12.3   //成功加入节点

    node节点部署完成

节点 文件 配置 容器 拷贝 服务 组件 成功 目录 状态 证书 生成 运行 脚本 实验 命令 地址 环境 网络 管理 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州社交软件开发公司 网络安全手抄报的诗词 登英雄联盟服务器连接 网络安全技术演示 新疆网络安全工作责任制 公司的电脑网络安全 信息安全防护和网络安全防护 瑞发软件开发 机关单位网络安全分析研判报告 翼支付网络安全 在服务器中怎么控制电脑上网 易语言数据库如何删除字段 牡丹江软件开发公司哪家好 基因解读数据库 关于智慧消防的网络安全方案 asp 创建mysql数据库 绍兴吉加软件开发来电咨询 软件开发和机械电子该选哪个 数据库连接api接口填报数据 为什么服务器硬盘转速这么高 网络安全核心股票的比较 南充软件开发培训机构 第三方独立城市网络安全运营中心 软件开发与管理技术是干什么的 如何从服务器上删除邮件 网络安全单位安全专用产品 以确保网络安全为 白狐网络技术信息服务部 通联数据库官网 绍兴吉加软件开发来电咨询
0