简介

本章节主要讲解安装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

Logo

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

更多推荐