从零到壹搭建一个商城架构--k8s集群安装
Posted 温润如风
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从零到壹搭建一个商城架构--k8s集群安装相关的知识,希望对你有一定的参考价值。
如果想了解其他内容,请点击这里查看目录
1、kubeadm
kubeadm是官方 推出的一个用于快速部署kubernetes集群的工具
这个工具能通过两条指令完成一个kubernetes集群的部署:
#创建一个Mster节点
kubeadm init
#将一个Node节点加入到当前集群中
kubeadm join <Master节点的IP和端口>
2、前置要求
一台或多台机器操作系统Centos7x-86_x64
硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多
集群中所有机器之间网络互通
可以访问外网,需要拉取镜像
禁止swap分区
3、部署步骤
1、在所有节点上安装Docker和Kubeadm
2、部署Kubernetes Master
3、部署容器网络插件
4、部署Kubernetes Node,将节点加入Kubernetes及群众
5、部署Dashboard Web页面,可视化查看Kubernetes资
从零到壹搭建一个商城架构--MySQL集群
1)、集群原理
以上可以作为企业中常用的数据库解决方案
- MySQL-MMM是Master-Master Replication Manager for MySQL(mysql主主复制管理器)的简称,是Google的开源项目(Perl脚本)。MMM基于MySQL Replication 做的扩展架构,主要用来监控mysql主主复制并做失败转移,其原理是将真实数据库节点的IP(RIP)映射为虚拟IP(VIP)集。mysql-mm的监管端会提供多个虚拟IP(VIP),包括一个可写VIP,多个可读VIP,通过监管的管理,这些IP会绑定在可用的mysql之上,当某一台mysql宕机时,监管会将VIP迁移至其他mysql。在整个监管过程中,需要在mysql中添加相关授权用户,以便让mysql可以支持监管机的维护。授权的用户包括一个mmm_monitor用户和一个mmm_agent用户,如果想使用mmm的备份工具则添加一个mmm_tools用户。
- MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作(以2019的眼光来说太慢了),并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。
- InnDB Cluster支持自动Failover、强一致性、读写分离、读库高可用、读请求负载均衡横向扩展的特性,是比较完备的一套方案。但是不熟起来复杂,想要解决router单点问题,需要新增组件,如果没有其他更好的方案可考虑该方案。InnDB Cliuster主要由MySQL Shell、MySQL Router和MySQL服务器集群组成,三者协同工作,共同为MySQL提供完成的高可用性解决方案。MySQL Shell对管理人员提供管理接口,可以很方便的对集群进行配置和管理MySQL Router,可以根据部署的集群状况自动的初始化,是客户端连接实例。如果有节点宕机,集群会自动更新配置,集群包含单点写入和多点写入两种模式。在单主模式下,如果主节点宕机,从节点自动替换上来,MySQL Router自动探测,并将客户端连接到新节点。
2)、Docker安装模拟MySQL主从复制集群
-
下载mysql镜像
-
创建Master实例并启动
docker run -p 3307:3306 --name mysql-master \\ -v /mydata/mysql/master/log:/var/log/mysql \\ -v /mydata/mysql/master/data:/var/lib/mysql \\ -v /mydata/mysql/master/conf:/etc/mysql \\ -e MYSQL_ROOT_PASSWORD=root \\ -d mysql:5.7
参数说明:
-p 3307:3306 将容器的3306端口映射到主机的3307端口
-v /mydata/mysql/master/conf:/etc/mysql 将配置文件夹挂载到主机
-v /mydata/mysql/master/log:/var/log/mysql 将日志文件挂载到主机
-v /mydata/mysql/master/data:/var/lib/mysql 将数据文件挂载到主机
-e MYSQL_ROOT_PASSWORD=root 初始化root密码
-
进入到挂载的master目录,修改配置文件
vi /mydata/mysql/master/conf/my.cnf
如以下内容:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect=‘SET collaction_connection=utf8_unicode_ci’
init_connect=‘SET NAMES utf8’
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
#skip-name-resolve一定要加,不然连接mysql会特别慢
#添加master主从复制部分配置
server_id=1
log-bin=mysql-bin
read-only=0
binlog-do-db=hslmall_ums
binlog-do-db=hslmall_pms
binlog-do-db=hslmall_oms
binlog-do-db=hslmall_sms
binlog-do-db=hslmall_wms
binlog-do-db=hslmall_admin
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
-
重启master
-
创建Slave实例并启动
docker run -p 3317:3306 --name mysql-slave-01 \\ -v /mydata/mysal/slave/log:/var/log/mysql \\ -v /mydata/mysql/slave/data:/var/lib/mysql \\ -v /mydata/mysql/slave/conf:/etc/mysql \\ -e MYSQL_ROOT_PASSWORD=root \\ -d mysql:5.7
-
进入挂载的slave配置文件,加入以下内容
如以下内容:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect=‘SET collaction_connection=utf8_unicode_ci’
init_connect=‘SET NAMES utf8’
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
#skip-name-resolve一定要加,不然连接mysql会特别慢
#添加master主从复制部分配置
server_id=2
log-bin=mysql-bin
read-only=1
binlog-do-db=hslmall_ums
binlog-do-db=hslmall_pms
binlog-do-db=hslmall_oms
binlog-do-db=hslmall_sms
binlog-do-db=hslmall_wms
binlog-do-db=hslmall_admin
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
-
为master授权用户来他的同步数据
-
进入
docker exec -it mysql-master /bin/bash
-
进入mysql内部(mysql -uroot -p)
mysql -uroot -p #授权root可以远程访问(主从无关,为了方便我们远程连接mysql) grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option; flush privileges; #添加用来同步的用户 GRANT REPLICATION SLAVE ON *.* to 'backup'@'%' identified by '123456';
-
查看master状态
show master status\\G
-
-
配置slave同步master数据
#进入slave容器 docker exec -it mysql-slave-01 /bin/bash #进入mysql内部(mysql -uroot -p) mysql -uroot -p #授权root可以远程访问 grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option; flush privileges; #设置主库连接 change master to master_host='192.168.56.10',master_user='backup',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=0,master_port=3307 #启动从库同步 start slave #查看从库状态 show slave status\\G
-
示意图
根据官网说明进行文件配置
以上是关于从零到壹搭建一个商城架构--k8s集群安装的主要内容,如果未能解决你的问题,请参考以下文章
从零到壹学习Hyperledger Fabric第七讲:Peer配置剖析
4❤️Jenkins从零到壹❤️ :用户权限管理(JAVA 小虚竹)
4❤️Jenkins从零到壹❤️ :用户权限管理(JAVA 小虚竹)