简介
本章节主要讲解k8s-1.34的worker节点组件的安装包括containerd,kubelet,其中containerd又包括了cni-plugins,runc,cri-tools等组件。安装完并进行woker的节点的安装验证
== 文章导航===
【k8s-1.34.2安装部署】一.系统初始化及k8s集群规划
【k8s-1.34.2安装部署】二.kubernets软件、证书、配置、脚本等文件准备
【k8s-1.34.2安装部署】三.etcd-v3.6.6 TLS版集群安装
【k8s-1.34.2安装部署】四.kubernets master组件kube-apiserver,kube-controller-manager,kube-scheduler安装
【k8s-1.34.2安装部署】五.worker端containerd2.2.1、kubelet-1.34.2安装
【k8s-1.34.2安装部署】六.企业级部署cilium-1.18.4网络插件
【k8s-1.34.2安装部署】七.coredns-v1.13.1安装
【k8s-1.34.2安装部署】八.metric-server-0.8.0安装
【k8s-1.34.2安装部署】九.k8s管理平台xkube安装部署
【k8s-1.34.2安装部署】十.gateway Api v1.4.0安装
【k8s-1.34.2安装部署】十一.metallb-v0.15.2安装
一.安装containerd 和 kubelet
1.1. 安装包安装
在第二章时我们准备了containerd的安装包,只需要将containerd下的文件拷贝到根目录/下即可。
containerd的目录结构如下:
├── etc
│ ├── containerd
│ │ └── config.toml
│ ├── crictl.yaml
│ └── systemd
│ └── system
│ └── containerd.service
├── opt
│ └── cni
│ └── bin
│ ├── bandwidth
│ ├── bridge
│ ├── dhcp
│ ├── dummy
│ ├── firewall
│ ├── host-device
│ ├── host-local
│ ├── ipvlan
│ ├── LICENSE
│ ├── loopback
│ ├── macvlan
│ ├── portmap
│ ├── ptp
│ ├── README.md
│ ├── sbr
│ ├── static
│ ├── tap
│ ├── tuning
│ ├── vlan
│ └── vrf
└── usr
└── local
├── bin
│ ├── containerd
│ ├── containerd-shim-runc-v2
│ ├── containerd-stress
│ ├── crictl
│ └── ctr
└── sbin
└── runc
1.2. 安装kubelet
将kubelet.service 拷贝到/usr/lib/systemd/system/下,其余的拷贝到/opt/kubernetes 下。
node节点的目录结构如下:
├── bin
│ ├── kubelet
│ └── kube-proxy
├── conf
│ ├── kubelet-bootstrap.kubeconfig
│ ├── kubelet.yaml
├── kubelet.service
├── logs
└── ssl
├── ca-key.pem
├── ca.pem
1.2.配置主机名映射
修改/etc/hosts,添加如下配置,在安装kubelet上都要配置如下映射,映射中的IP是kube-apiserver的IP,主要是为了kubelet能调通apiserver
192.168.10.185 apiserver.my-k8s.local
二.启动containerd、kubelet
在三台机上分别执行如下命令启动master相关组件kube-apiserver、kube-controller-manager、kube-scheduler。kubelet 暂时先不启动,等master相关组件都启动正常以后,安装完containerd以后再启动。注意启动顺序,需要先启动containerd
systemctl daemon-reload
systemctl enable containerd
systemctl enable kubelet
systemctl start containerd
systemctl start kubelet
四.验证node相关组件安装是否正常
- 执行
systemctl status containerd和systemctl status kubelet查看是否有报错 - 在安装了kubect的机器上 执行命令:
kubectl get csr查看刚启动的kubelet 是否有申请到证书,正常执行结果如下:
NAME AGE SIGNERNAME REQUESTOR REQUESTEDDURATION CONDITION
node-csr-iHrKsmW7N0FQJ5FfImDh26jGOMQh2Jl6Wg8D7b3hX2Q 67s kubernetes.io/kube-apiserver-client-kubelet kubelet-bootstrap <none> Pending
3.当上一步能看到Pending的证书后,执行命令:kubectl certificate approve node-csr-iHrKsmW7N0FQJ5FfImDh26jGOMQh2Jl6Wg8D7b3hX2Q,执行成功后,再次查看结果如下:
NAME AGE SIGNERNAME REQUESTOR REQUESTEDDURATION CONDITION
node-csr-iHrKsmW7N0FQJ5FfImDh26jGOMQh2Jl6Wg8D7b3hX2Q 10m kubernetes.io/kube-apiserver-client-kubelet kubelet-bootstrap <none> Approved,Issued
注:kubelet 安装启动成功以后会生成如下几个文件:
/opt/kubernetes/conf/kubelet.kubeconfig
/opt/kubernetes/ssl/kubelet.crt
/opt/kubernetes/ssl/kubelet.key
当approve成功会后生成如下文件:
/opt/kubernetes/ssl/kubelet-client-current.pem