Kubernetes安装-Kubernetes 1.26 for RHEL 9安装配置及升级迁移详细过程
1. 硬件环境检查
在安装Kubernetes之前,必须对服务器的硬件环境进行全面检查,确保满足Kubernetes 1.26的最低要求。更多学习教程www.fgedu.net.cn
# 检查内存大小
# free -h
total used free shared buff/cache available
Mem: 16G 2.1G 12G 8.5M 1.8G 13G
Swap: 8G 0B 8G
# 检查磁盘空间
# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 8G 0 8G 0% /dev
tmpfs 8G 0 8G 0% /dev/shm
tmpfs 8G 8.5M 8G 1% /run
tmpfs 8G 0 8G 0% /sys/fs/cgroup
/dev/sda1 50G 15G 36G 30% /
/dev/sdb1 200G 20G 180G 10% /data
# 检查CPU核心数
# nproc
8
# Worker节点硬件检查
# 检查内存大小
# free -h
total used free shared buff/cache available
Mem: 8G 1.5G 5G 8.5M 1.5G 6G
Swap: 4G 0B 4G
# 检查CPU核心数
# nproc
4
2. 操作系统检查
Kubernetes 1.26支持RHEL 7.3+、RHEL 8.0+、RHEL 9.0+等操作系统。本文以RHEL 9为例。学习交流加群风哥微信: itpux-com
# cat /etc/redhat-release
Red Hat Enterprise Linux release 9.0 (Plow)
# 检查内核版本
# uname -r
5.14.0-70.22.1.el9_0.x86_64
# 检查SELinux状态
# getenforce
Disabled
# 关闭SELinux(如未关闭)
# vi /etc/selinux/config
SELINUX=disabled
# 检查防火墙状态
# systemctl status firewalld
# 关闭防火墙
sudo systemctl stop firewalld
sudo systemctl disable firewalld
3. 安装准备
在安装Kubernetes之前,需要进行一系列准备工作,包括配置内核参数、安装依赖包、配置网络等。
cat <
4. Kubernetes软件安装
现在开始安装Kubernetes 1.26软件,按照以下步骤进行。
sudo dnf install -y kubeadm-1.26.0 kubelet-1.26.0 kubectl-1.26.0
sudo systemctl enable kubelet
# 初始化Master节点
sudo kubeadm init –pod-network-cidr=10.244.0.0/16
# 配置kubectl
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# 安装Flannel网络插件
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
# 加入Worker节点
# 在Worker节点上执行(使用Master节点初始化时生成的命令)
sudo kubeadm join
5. Kubernetes配置
配置Kubernetes集群,包括网络配置、存储配置、RBAC配置等。
kubectl cluster-info
kubectl get nodes
# 配置RBAC
kubectl create clusterrolebinding cluster-admin-binding –clusterrole=cluster-admin –user=admin
# 配置存储类
kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/nfs-subdir-external-provisioner/master/deploy/rbac.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/nfs-subdir-external-provisioner/master/deploy/deployment.yaml
# 配置Ingress
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/baremetal/deploy.yaml
6. 测试验证
验证Kubernetes集群是否正常运行,包括节点状态、Pod状态和测试应用。学习交流加群风哥QQ113257174
kubectl cluster-info
kubectl get nodes
kubectl get pods –all-namespaces
# 运行测试应用
kubectl create deployment nginx –image=nginx
kubectl expose deployment nginx –port=80 –type=NodePort
kubectl get services
# 访问测试应用
# 打开浏览器,访问 http://
7. 备份配置
配置Kubernetes备份策略,确保集群数据和配置的安全。
mkdir -p /backup/kubernetes
# 备份etcd数据
sudo ETCDCTL_API=3 etcdctl snapshot save /backup/kubernetes/etcd-snapshot.db –endpoints=https://127.0.0.1:2379 –cacert=/etc/kubernetes/pki/etcd/ca.crt –cert=/etc/kubernetes/pki/etcd/server.crt –key=/etc/kubernetes/pki/etcd/server.key
# 备份集群配置
kubectl get all –all-namespaces -o yaml > /backup/kubernetes/k8s-all-resources.yaml
# 验证备份文件
ls -la /backup/kubernetes/
drwxr-xr-x 4 root root 4096 Mar 31 10:20 .
drwxr-xr-x 3 root root 4096 Mar 31 10:15 ..
-rw-r–r– 1 root root 123456789 Mar 31 10:20 etcd-snapshot.db
-rw-r–r– 1 root root 12345678 Mar 31 10:20 k8s-all-resources.yaml
# 创建备份脚本
vi /root/backup_kubernetes.sh
#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR=”/backup/kubernetes”
# 创建备份目录(如果不存在)
mkdir -p $BACKUP_DIR
# 执行备份
sudo ETCDCTL_API=3 etcdctl snapshot save $BACKUP_DIR/etcd-snapshot-$DATE.db –endpoints=https://127.0.0.1:2379 –cacert=/etc/kubernetes/pki/etcd/ca.crt –cert=/etc/kubernetes/pki/etcd/server.crt –key=/etc/kubernetes/pki/etcd/server.key
kubectl get all –all-namespaces -o yaml > $BACKUP_DIR/k8s-all-resources-$DATE.yaml
# 保留最近7天的备份
find $BACKUP_DIR -name “etcd-snapshot-*.db” -mtime +7 -delete
find $BACKUP_DIR -name “k8s-all-resources-*.yaml” -mtime +7 -delete
# 给脚本添加执行权限
chmod +x /root/backup_kubernetes.sh
# 添加到crontab
crontab -e
# 添加以下内容(每天凌晨2点执行备份)
0 2 * * * /root/backup_kubernetes.sh
8. 升级迁移
Kubernetes的升级和迁移过程。
# 1. 备份现有环境
sudo ETCDCTL_API=3 etcdctl snapshot save /backup/kubernetes/etcd-snapshot-before-upgrade.db –endpoints=https://127.0.0.1:2379 –cacert=/etc/kubernetes/pki/etcd/ca.crt –cert=/etc/kubernetes/pki/etcd/server.crt –key=/etc/kubernetes/pki/etcd/server.key
kubectl get all –all-namespaces -o yaml > /backup/kubernetes/k8s-all-resources-before-upgrade.yaml
# 2. 升级Master节点
# 升级kubeadm
sudo dnf install -y kubeadm-1.26.1
# 升级控制平面
sudo kubeadm upgrade plan
sudo kubeadm upgrade apply v1.26.1
# 升级kubelet和kubectl
sudo dnf install -y kubelet-1.26.1 kubectl-1.26.1
sudo systemctl restart kubelet
# 3. 升级Worker节点
# 在每个Worker节点上执行
sudo dnf install -y kubeadm-1.26.1
sudo kubeadm upgrade node
sudo dnf install -y kubelet-1.26.1 kubectl-1.26.1
sudo systemctl restart kubelet
# 4. 验证升级结果
kubectl cluster-info
kubectl get nodes
# 1. 在旧集群上创建备份
sudo ETCDCTL_API=3 etcdctl snapshot save /backup/kubernetes/etcd-snapshot.db –endpoints=https://127.0.0.1:2379 –cacert=/etc/kubernetes/pki/etcd/ca.crt –cert=/etc/kubernetes/pki/etcd/server.crt –key=/etc/kubernetes/pki/etcd/server.key
kubectl get all –all-namespaces -o yaml > /backup/kubernetes/k8s-all-resources.yaml
# 2. 将备份文件复制到新集群
scp -r /backup/kubernetes root@new-master:/backup/
# 3. 在新集群上安装Kubernetes
# 按照安装步骤在新服务器上安装Kubernetes
# 4. 恢复etcd数据
sudo ETCDCTL_API=3 etcdctl snapshot restore /backup/kubernetes/etcd-snapshot.db –data-dir=/var/lib/etcd
# 5. 导入集群配置
kubectl apply -f /backup/kubernetes/k8s-all-resources.yaml
# 6. 验证迁移结果
kubectl cluster-info
kubectl get nodes
9. 总结
本文详细介绍了Kubernetes 1.26 for RHEL 9的安装、配置、升级和迁移过程。通过按照本文的步骤操作,可以成功部署Kubernetes集群并确保其稳定运行。from:www.itpux.com
– 定期备份etcd数据和集群配置,建议每天执行一次全备份
– 监控Kubernetes集群性能,定期检查集群状态和日志
– 定期更新Kubernetes版本,确保系统安全性和性能
– 合理规划集群资源,避免资源不足
– 配置合适的网络插件和存储解决方案
– 对于生产环境,建议部署多Master节点高可用集群,提高可用性和可靠性
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
