containerd的安装与配置详见文章 containerd安装与配置
kubelet安装与配置
cd /root
#下载客户端软件包并解压
wget https://dl.k8s.io/v1.29.0/kubernetes-node-linux-amd64.tar.gz
#复制软件包到/usr/bin目录
tar xf kubernetes-node-linux-amd64.tar.gz
cd kubernetes/node/bin/
cp kubelet kube-proxy /usr/bin/
mkdir -p /etc/kubernetes/pki
#修改配置文件
cd /etc/kubernetes/
vim /usr/lib/systemd/system/kubelet.service
[Unit]
Description=Kubernetes Kubelet Server
Documentation=https://github.com/kubernetes/kubernetes
After=containerd.service
Requires=containerd.service
[Service]
EnvironmentFile=/etc/kubernetes/kubelet
ExecStart=/usr/bin/kubelet $KUBELET_ARGS
Restart=always
[Install]
WantedBy=multi-user.target
vim /etc/kubernetes/kubelet
KUBELET_ARGS="--kubeconfig=/etc/kubernetes/kubeconfig
--config=/etc/kubernetes/kubelet.config \
--hostname-override=192.168.88.61"
#--hostname-override=192.168.88.61 表明 kubelet 会使用 192.168.88.61 这个 IP 地址作为该节点在 Kubernetes 集群中的名称,而非操作系统默认的主机名。这样一来,在 Kubernetes 集群里,这个节点就会以 192.168.88.61 来进行标识和管理。
#注意事项
#要保证 --hostname-override 指定的名称在集群内是唯一的,不然会引发节点注册冲突。
#若使用 IP 地址作为主机名,要确保该 IP 地址在集群内是可访问的。
vim /etc/kubernetes/kubelet.config
kind: KubeletConfiguration
apiVersion: kubelet.config.k8s.io/v1beta1
address: 0.0.0.0
port: 10250
cgroupDriver: systemd
clusterDNS: ["10.245.0.100"]
clusterDomain: cluster.local
authentication:
anonymous:
enabled: false
webhook:
enabled: true
x509:
clientCAFile: /etc/kubernetes/pki/ca.crt
systemctl start kubelet && systemctl enable kubelet
#把各种配置文件拷贝到node002,003
scp /usr/lib/systemd/system/kubelet.service node002:/usr/lib/systemd/system/kubelet.service
scp /usr/lib/systemd/system/kubelet.service node003:/usr/lib/systemd/system/kubelet.service
scp /etc/kubernetes/kubelet node002:/etc/kubernetes/kubelet
scp /etc/kubernetes/kubelet node003:/etc/kubernetes/kubelet
scp /etc/kubernetes/kubelet.config node002:/etc/kubernetes/kubelet.config
scp /etc/kubernetes/kubelet.config node003:/etc/kubernetes/kubelet.config
kube-proxy安装与配置
#加载需要的内核模块,安装需要的软件包
for i in overlay br_netfilter nf_conntrack;do
modprobe ${i}
echo "${i}" >>/etc/modules-load.d/containerd.conf
done
cat >/etc/sysctl.d/99-kubernetes-cri.conf<<EOF
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF
dnf -y install iptables ipvsadm ipset nfs-utils
#创建所需的配置文件
vim /usr/lib/systemd/system/kube-proxy.service
[Unit]
Description=Kubernetes Kube-Proxy Server
Documentation=https://github.com/kubernetes/kubernetes
After=network.target
[Service]
EnvironmentFile=/etc/kubernetes/proxy
ExecStart=/usr/bin/kube-proxy $KUBE_PROXY_ARGS
Restart=always
[Install]
WantedBy=multi-user.target
vim /etc/kubernetes/proxy
KUBE_PROXY_ARGS="--kubeconfig=/etc/kubernetes/kubeconfig \
--hostname-override=192.168.88.61 \
--proxy-mode=ipvs \
--ipvs-strict-arp=true \
--cluster-cidr=169.169.0.0/16"
#把配置文件拷贝到node002,003
scp /usr/lib/systemd/system/kube-proxy.service node002:/usr/lib/systemd/system/kube-proxy.service
scp /usr/lib/systemd/system/kube-proxy.service node003:/usr/lib/systemd/system/kube-proxy.service
scp /etc/kubernetes/proxy node002:/etc/kubernetes/proxy
scp /etc/kubernetes/proxy node003:/etc/kubernetes/proxy
#启动服务
systemctl start kube-proxy && systemctl enable kube-proxy
#在/etc/kubernetes/目录中的kubelet和proxy文件中,有个hostname-override配置项,把它的值改为当前主机的IP地址
#node002::--hostname-override=192.168.88.62 \
sed -i "/override=/s/61/62/" /etc/kubernetes/proxy
sed -i "/override=/s/61/62/" /etc/kubernetes/kubelet
#node003:--hostname-override=192.168.88.63 \
sed -i "/override=/s/61/63/" /etc/kubernetes/proxy
sed -i "/override=/s/61/63/" /etc/kubernetes/kubelet
#开启服务
systemctl start kube-proxy && systemctl enable kube-proxy
评论 (0)