1.mycat 高可用
2.部署容器运行时未CRI-O,码安网络插件为kube-ovn的码安k8s集群
mycat 高可用
mycat 高可用
mycat 可通过 zookeeper 集群进行配置文件管理。
1.1 搭建 zookeeper 集群
此处不做 zookeeper集群搭建讲解
1.2 配置mycat支持zookeeper
修改 mycat conf 目录下myid.properties
loadZk=true # zk集群地址,码安多个用",码安"隔开 zkURL=..3.:,..3.:,..3.: # zk集群内Mycat集群ID clusterId=mycat-cluster-1 # Mycat集群内本实例ID,禁止重复 myid=mycat_fz_ # Mycat集群内节点个数 clusterSize=3 #集群内所有节点的码安 id clusterNodes=mycat_fz_,mycat_fz_,mycat_fz_ #server booster ; booster install on db same server,will reset all minCon to 1 type=server boosterDataHosts=dataHost1
1.3 自定义配置
将需要修改的配置文件替换到 conf 目录中的 zkconf 目录下,只需要在一台机器修改即可,需要注意 conf目录中的 server.xml 中用户名和密码与 zkconf 中的不一致
1.4 上传配置
执行修改了配置文件的 mycat 下的bin 目录下的initzkdata.sh,上传配置文件,(在修改了配置文件的机器上执行)
./initzkdata.sh
1.5 启动所有 mycat
启动后发现其他 mycat conf 下的配置文件已经自动变化为修改的内容,是zookeeper 中下载的
2. 使用的是 lvs+keepalived 的方式
此处使用的是 lvs+keepalived 的方式实现mycat高可用负载均衡集群
2.1 配置环境
角色 主机IP 主机名 操作系统版本 软件版本
VIP ..3.
LVS-DR-Master ..3. keepalived CentOS6.9 Keepalived v1.2.,LVS 1.2.1
LVS-DR-Backup ..3. keepalived CentOS6.9 Keepalived v1.2.,码安php源码 自动采集LVS 1.2.1
mycat-Realserver ..3. mycat CentOS6.9 mycat v1.6.5
mycat-Realserver ..3. mycat CentOS6.9 mycat v1.6.5
mycat-Realserver ..3. mycat CentOS6.9 mycat v1.6.5
2.2 安装keepalived和ipvsadm
注意:ipvsadm并不是码安lvs,它只是码安lvs的配置工具。在 CentOS1.1 的码安内核版本中是默认支持的。因此,码安这里不需要重新安装。码安使用 yum 的码安安装方式,分别在 keepalived 和 keepalived 两台主机上安装 keepalived 和 ipvsadm。码安除了这种简易方式外,码安也可直接编译官方的码安源码包。安装步骤可参考文档。
2.3 配置Keepalived
2.3.1 master
vi /etc/keepalived/keepalived.conf
配置详细内容如下,注意优先级、状态、导航类目源码接口、虚拟IP地址、负载调度算法、服务器节点配置、检查间隔、会话保持时间、协议类型等参数设置。
2.3.2 backup
备份机配置与主机一致,除了优先级和状态修改外。列表滚动源码
在配置文件中,特别需要注意的是interface的修改,根据实际情况进行相应的修改。
2.4 安装配置 mycat
安装mycat请参考相关文档。
2.4.1 绑定虚拟 vip
在mycat服务器上为lo:0绑定VIP地址、抑制ARP广播。
执行脚本./realserver.sh start在mycat和mycat、mycat三台主机上。
2.4.2 查看
运行 ifconfig 查看结果。留言提交源码
2.5 启动 keeplive
分别在keepalived和keepalived上启动Keepalived服务。
2.5.1 查看
通过ipvsadm -L 查看映射。
2.5.2 测试
通过一台装有 mysql的机器连接虚拟 ip 发现可以登录数据库。
2.5.3 查看转发
再次在 keepalived 的机器执行ipvsadm -L,发现被转到上面一次。
2.5.4 负载均衡方式
与配置相关,多次都指向一个机器,因为我们在 keepalived 的配置文件中persistence_timeout属性指定为,则代表秒内同一个机器来的请求会被 hash 一致性分配。如果想实现严格意义上面的拍照特效源码轮询,修改为0即可。
部署容器运行时未CRI-O,网络插件为kube-ovn的k8s集群
在部署不使用CRI-O作为容器运行时,而是采用kube-ovn网络插件的 Kubernetes 集群过程中,需要进行一系列的准备工作。首先,确保加载必要的内核模块并安装ipvsadm,接着安装依赖,包括配置yum源和go环境。
对于cri-o的安装,需要下载源码包并生成默认配置文件。接着,安装conmon和CNI,可能需要从本地上传源码包。plugin的安装涉及获取源码并克隆github仓库。配置crio时,启动服务并确保crictl的安装,虽然crictl会随kubeadm自动下载,但建议单独安装以避免覆盖。安装完成后,可通过crictl验证crio的运行状态。
在部署kubernetes集群时,添加相应的yum源,安装必要的组件,如kubeadm,并配置kubeadm的配置文件,包括criSocket路径、imageRepository地址和podSubnet设置。需要检查和配置镜像,然后在所有节点上调整crio.conf,并利用kubeadm进行初始化集群操作。在node节点上,执行集群加入步骤。
安装kube-ovn时,需要修改install.sh脚本,执行安装,然后可能需要卸载和重新安装以解决特定问题。可能遇到的问题包括创建pod时的containercreating状态,这可能是runc版本需要升级;初始化集群时可能出现error getting node的错误,可以检查并修改crio.conf;以及可能遇到fs.may_detach_mounts相关的sysctl错误,通过调整系统设置来解决启动CRIO时的错误。