文章目录
- 简介
- 一.安装containerd
- 1.1.安装containerd
- 1.2.生成containerd配置文件并启动
- 二.安装kubelet并配置启动文件
- 2.1.准备kubelet配置文件及证书
- 2.2.安装kubelet
- 2.3.配置启动脚步
- 三.将node节点加入集群
- 注意事项
简介
本章节主要讲解安装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