• 【二进制部署k8s-1.29.4】八、worker端安装kubelet和cotainerd


    简介

    本章节主要讲解安装containerd和kubelet,containerd主要是将压缩包解压到根目录,然后导出配置文件进行修改以后即可,kubelet主要是将先准备好的配置文件和启动脚步拷贝到正确的目录即可,kubelet安装时要注意主机名这段配置。

    第一章.安装前软件准备及系统初始化阶段
    第二章.证书及配置文件的准备
    第三章.etcd集群的安装配置

    一.安装containerd

    1.1.安装containerd

    执行命令:tar zxvf cri-containerd-1.7.16-linux-amd64.tar.gz -C / 解压到根目录即可

    1.2.生成containerd配置文件并启动

    如果在第二章中没有生成containerd的config.toml配置文件可以按照如下命令生成

    mkdir -p /etc/containerd
    containerd config default | sudo tee /etc/containerd/config.toml
    sed -i 's#SystemdCgroup.*#SystemdCgroup = true#' /etc/containerd/config.toml
    sed -i 's#sandbox_image.*#sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.8"#' /etc/containerd/config.toml
    

    启动containerd

    systemctl daemon-reload
    systemctl enable containerd
    systemctl start containerd
    

    二.安装kubelet并配置启动文件

    2.1.准备kubelet配置文件及证书

    配置文件:kubelet-bootstrap.kubeconfig 和 kubelet.yaml
    证书文件:ca.pem和ca-key.pem
    这四个文件均已在第二章中生成,将ca.pem和ca-key.pem拷贝到/opt/kubernetes/ssl,将kubelet-bootstrap.kubeconfig 和 kubelet.yaml 拷贝到/opt/kubernetes/conf.
    其中kubelet.yaml的配置内容和kubelet-bootstrap.kubeconfig的生成参考第二章。

    2.2.安装kubelet

    解压kubernetes-server-linux-amd64.tar.gz,将kubernetes/server/bin/kubelet和kubernetes/server/bin/kube-proxy 拷贝到/opt/kubernetes/bin

    2.3.配置启动脚步

    先修改kubelet.service中的主机名--hostname-override=yt-pcauto-k8s-16-120-81 \,然后拷贝到/usr/lib/systemd/system然后执行:

    hname=$(hostname)
    sed "s#node-hostname#${hname}#" kubelet.service >/usr/lib/systemd/system/kubelet.service
    
    systemctl daemon-reload
    systemctl enable kubelet
    systemctl start kubelet
    

    启动脚本配置如下:

    [Unit]
    Description=Kubernetes Kubelet
    Documentation=https://github.com/kubernetes/kubernetes
    After=containerd.service
    Requires=containerd.service
    
    [Service]
    ExecStart=/opt/kubernetes/bin/kubelet \
      --hostname-override=yt-pcauto-k8s-16-120-81 \ #配置正确的节点主机名
      --bootstrap-kubeconfig=/opt/kubernetes/conf/kubelet-bootstrap.kubeconfig \
      --cert-dir=/opt/kubernetes/ssl \
      --client-ca-file=/opt/kubernetes/ssl/ca.pem \
      --kubeconfig=/opt/kubernetes/conf/kubelet.kubeconfig \
      --config=/opt/kubernetes/conf/kubelet.yaml \
      --container-runtime-endpoint=unix:///var/run/containerd/containerd.sock \
      --v=2
    Restart=on-failure
    RestartSec=5
    LimitNOFILE=65536
    
    [Install]
    WantedBy=multi-user.target
    

    三.将node节点加入集群

    在将containerd和kubelet启动以后,通过kubectl get csr命令确认worker端服务是否安装正常,然后再将节点加入到集群
    执行kubectl get csr的结果如下:
    在这里插入图片描述

    将节点添加到集群,执行命令:kubectl certificate approve node-csr-rRJT9Qyhf9HrjeIahC3G9_zJYuh9A9hgdXHADAfMws8

    节点添加完以后,执行kubectl get node 查看加入集群的结果,之所以是notready是因为还没安装网络插件cni,安装完cilium以后就是ready了:
    在这里插入图片描述

    注意事项

    • 1.记得在/etc/hosts中配置IP和主机名的映射,例如:
      10.16.120.81 yt-pcauto-k8s-16-120-81
      10.16.120.82 yt-pcauto-k8s-16-120-82
      10.16.120.83 yt-pcauto-k8s-16-120-83
      10.16.120.84 yt-pcauto-k8s-16-120-84

    • 2.在未配置好vip之前,可以将调用k8s的vip或域名在/etc/hosts中临时指向到其中一个master节点,关于vip的配置在后续的篇章单独讲解。例如
      10.16.120.81 yt-pcauto-k8s.pc.com.cn

  • 相关阅读:
    Android 8.0系统启动流程_init(一)
    unity脚本_力 c#
    应对恶意IP攻击的有效方法
    共享充电语音提醒功能如何实现?
    JumpServer 如何配置LDAP服务
    Shell sed编辑器
    *常用函数
    【数据结构与算法】图的基本概念
    solidity
    nginx配置代理转发,顺便写点负载均衡
  • 原文地址:https://blog.csdn.net/weixin_56364253/article/details/139408722