本文将在RockyLinux9.2中使用kubeadm部署Kubernetes1.27,同时配置containerd、calico和BGP等组件,还将使用OpenELB作为LoadBalancer,BIRD模拟物理路由器,以及kube-vip实现control-plane高可用,为了确保系统的稳定性,所有k8s相关组件都将固定版本安装。
环境说明
序号 | CPU | 内存(G) | 操作系统 | IP | 主机名 | 备注 |
1 | 2 | 12 | RockyLinux9.2 | 192.168.3.51 | bgp-k8s-01.tiga.cc | master |
2 | 2 | 12 | RockyLinux9.2 | 192.168.3.52 | bgp-k8s-02.tiga.cc | master |
3 | 2 | 12 | RockyLinux9.2 | 192.168.3.53 | bgp-k8s-03.tiga.cc | master |
4 | 2 | 12 | RockyLinux9.2 | 192.168.3.54 | bgp-k8s-04.tiga.cc | master |
5 | 2 | 12 | RockyLinux9.2 | 192.168.3.55 | bgp-k8s-05.tiga.cc | worker |
6 | 2 | 12 | RockyLinux9.2 | 192.168.3.56 | bgp-k8s-06.tiga.cc | worker |
7 | 2 | 12 | RockyLinux9.2 | 192.168.3.57 | bgp-k8s-07.tiga.cc | worker |
8 | 2 | 12 | RockyLinux9.2 | 192.168.3.58 | bgp-k8s-08.tiga.cc | worker |
9 | 2 | 2 | RockyLinux9.2 | 192.168.3.61 | bird-01.tiga.cc | router |
准备工作
1.检查mac和product_uuid
确保同一个k8s集群内的所有节点的mac地址和product_uuid均唯一,部署前需检查信息:
检查mac地址
cat/sys/class/dmi/id/product_uuid
2.修改host文件
编辑/etc/hosts
文件,添加各节点的IP和主机名映射:
echo'192.168.3.50bgp-k8s-api-server.tiga.cc'>>/etc/hosts
echo'192.168.3.51bgp-k8s-01.tiga.cc'>>/etc/hosts
echo'192.168.3.52bgp-k8s-02.tiga.cc'>>/etc/hosts
echo'192.168.3.53bgp-k8s-03.tiga.cc'>>/etc/hosts
echo'192.168.3.54bgp-k8s-04.tiga.cc'>>/etc/hosts
echo'192.168.3.55bgp-k8s-05.tiga.cc'>>/etc/hosts
echo'192.168.3.56bgp-k8s-06.tiga.cc'>>/etc/hosts
echo'192.168.3.57bgp-k8s-07.tiga.cc'>>/etc/hosts
echo'192.168.3.58bgp-k8s-08.tiga.cc'>>/etc/hosts
echo'192.168.3.61bird-01.tiga.cc'>>/etc/hosts
3.关闭firewalld
禁用并停止firewalld服务:
systemctldisablefirewalld
systemctlstopfirewalld
4.关闭swap
编辑/etc/fstab
文件注释掉swap:
sed-i's:/dev/mapper/rl-swap:#/dev/mapper/rl-swap:g'/etc/fstab
5.关闭selinux
编辑/etc/selinux/config
和/etc/sysconfig/selinux
文件,将SELINUX=enforcing改为SELINUX=disabled:
sed-i's/SELINUX=enforcing/SELINUX=disabled/g'/etc/sysconfig/selinux
setenforce0
6.安装ipvs
安装并启动ipvsadm:
yuminstall-yipvsadm
systemctlenable--nowipvsadm
7.开启路由转发
编辑/etc/sysctl.conf
文件,添加net.ipv4.ip_forward=1:
echo'net.ipv4.ip_forward=1'>>/etc/sysctl.conf
8.加载bridge
安装epel-release和bridge-utils:
yuminstall-yepel-release
yuminstall-ybridge-utils
modprobebr_netfilter
echo'br_netfilter'>>/etc/modules-load.d/bridge.conf
echo'net.bridge.bridge-nf-call-iptables=1'>>/etc/sysctl.conf
echo'net.bridge.bridge-nf-call-ip6tables=1'>>/etc/sysctl.conf
安装containerd
按照官方文档进行containerd的安装和配置:
添加Docker仓库
yuminstall-yyum-utils
yum-config-manager--add-repohttps://download.docker.com/linux/centos/docker-ce.repo
查看所有containerd版本
yumlistcontainerd.io--showduplicates|sort-r
安装指定版本的containerd
yuminstall-ycontainerd.io-1.6.21
systemctlstartcontainerd
systemctlenablecontainerd
确认containerd是否安装成功:
containerd-v
输出示例:containerdcontainerd.io1.6.213dce8eb055cbb6872793272b4f20ed16117344f8
设置crictl的CRIendpoint为containerd:
echo'runtime-endpoint:unix:///run/containerd/containerd.sock'>>/etc/crictl.yaml
echo'image-endpoint:unix:///run/containerd/containerd.sock'>>/etc/crictl.yaml
安装Kubernetes组件
添加Kubernetes仓库并安装kubelet、kubeadm和kubectl:
cat<<EOF>/etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpghttps://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
exclude=kube*
EOF
yuminstall-ykubelet-1.27.2kubeadm-1.27.2kubectl-1.27.2--disableexcludes=kubernetes
systemctlenable--nowkubelet
初始化Kubernetes主节点:
kubeadminit--pod-network-cidr=10.244.0.0/16
记录下kubeadmjoin
命令用于后续加入节点。
安装网络插件Calico
在主节点上应用Calico网络配置:
kubectlapply-fhttps://docs.projectcalico.org/manifests/calico.yaml
验证Pod状态:
kubectlgetpods-nkube-system-owide
加入工作节点到集群
在每个工作节点上运行之前记录的kubeadmjoin
命令,
sudokubeadmjoin<master-ip>:<master-port>--token<token>--discovery-token-ca-cert-hashsha256:<hash>
验证集群状态:
kubectlgetnodes
所有节点的状态应为Ready,这表明它们已成功加入集群并可以运行Pod。
常见问题与解答
问题1:如何检查Kubernetes集群是否正常运行?
答:可以通过以下命令来检查集群状态:
kubectlgetnodes
kubectlgetpods--all-namespaces-owide
所有节点和Pod的状态都应为Running,如果有任何NotReady的状态,需要检查相关日志以找出问题所在。
问题2:如何升级Kubernetes集群的版本?
答:升级Kubernetes集群需要以下步骤:
1、备份数据:确保所有重要数据和应用都已备份。
2、更新Kubeadm:首先更新Kubeadm工具。
3、升级主节点:使用kubeadmupgradeapply
命令升级主节点。
4、升级工作节点:在工作节点上使用相同的命令完成升级。
5、验证升级:最后通过检查节点状态和Pod状态来验证升级是否成功。
各位小伙伴们,我刚刚为大家分享了有关“RockyLinux服务器安装配置Kubernetes教程”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!