可以到我主页资源进行查看喔
针对k8s-1.31.1版本多master多node高可用集群的离线安装部署,以下是一个详细的指南:
### 一、前期准备
1. 硬件与软件要求
确保所有节点(master和node)的硬件配置满足Kubernetes的运行要求。
操作系统:推荐使用CentOS 8(stream)或openEuler 24.03(LTS)等支持Kubernetes的Linux发行版。
确保所有节点可以相互通信,并且网络配置正确。
2. 下载Kubernetes相关软件包
由于是离线安装,需要提前下载Kubernetes v1.31.1版本的所有必需软件包,包括kubeadm、kubectl、kubelet以及containerd等。
可以通过官方渠道或可信的镜像源下载这些软件包,并将其保存到一个可访问的本地位置。
3. 节点规划
确定master节点的数量(至少3个)和node节点的数量。
规划每个节点的主机名、IP地址以及所需的服务(如keepalived、haproxy等)。
### 二、节点配置
1. 修改主机名
使用`hostnamectl set-hostname`命令为每个节点设置唯一的主机名。
2. 配置hosts解析
在每个节点的`/etc/hosts`文件中添加其他节点的IP地址和主机名映射。
3. 关闭防火墙和SELinux
在每个节点上执行`systemctl stop firewalld`和`setenforce 0`命令来关闭防火墙和SELinux。
修改`/etc/selinux/config`文件,将SELinux设置为permissive或disabled模式。
4. 关闭交换分区
在每个节点上执行`sudo swapoff -a`命令来关闭交换分区。
修改`/etc/fstab`文件,注释掉与交换分区相关的行。
5. 配置免密登录
在所有master节点之间配置SSH免密登录,以便在初始化集群时能够方便地进行节点间的通信。
### 三、安装Docker和Containerd
1. 安装Docker
如果使用的是CentOS等基于RPM的发行版,可以通过yum等包管理器安装Docker。
配置Docker的阿里云加速镜像源以提高下载速度。
2. 安装Containerd
Containerd是Kubernetes推荐的容器运行时之一。
通过yum等包管理器安装containerd,并确保其正常运行。
### 四、安装Kubernetes组件
1. 安装kubeadm、kubectl和kubelet
将提前下载的Kubernetes软件包上传到每个节点。
使用yum等包管理器安装kubeadm、kubectl和kubelet。
配置kubelet的开机启动,并启动kubelet服务。
2. 配置Kubernetes仓库
在每个节点上配置Kubernetes的yum仓库,以便后续可以方便地安装和更新Kubernetes相关软件包。
### 五、初始化Kubernetes集群
1. 在master1节点上初始化kubeadm
使用`kubeadm init`命令初始化Kubernetes集群。
指定`--image-repository`参数为本地或可访问的镜像仓库地址。
记录初始化过程中生成的kubeadm join命令,以便后续将其他节点加入集群。
2. 配置kubectl
将kubeadm init命令输出的kubeconfig文件复制到`/root/.kube/config`路径下。
使用`kubectl get nodes`命令验证kubectl是否可以正确访问集群。
3. 将其他master节点加入集群
在每个要加入的master节点上执行之前记录的kubeadm join命令。
等待节点状态变为Ready。
4. 将node节点加入集群
同样地,在每个要加入的node节点上执行kubeadm join命令。
等待节点状态变为Ready。
### 六、配置高可用
1. 配置负载均衡器
使用haproxy或keepalived等负载均衡器软件,在所有master节点前配置一个负载均衡层。
将所有master节点的kube-apiserver服务暴露给负载均衡器。
2. 验证高可用
验证负载均衡器是否正常工作。
验证在故障转移情况下,集群是否能够自动恢复并继续提供服务。
### 七、后续操作
1. 部署CNI插件
部署一个支持Kubernetes的CNI插件(如flannel或calico),以确保Pod之间的网络通信正常。
2. 部署其他Kubernetes组件
* 根据需要部署Kubernetes的其他组件和服务,如Ingress控制器、监控和日志收集系统等
添加我为好友,拉您入交流群!
请使用微信扫一扫!