在部署 Web 集群时,要保证集群里的各个节点之间数据和代码的一致性。以下是一些需要注意的方面:
代码版本一致:所有节点上部署的代码版本应该一致,保证各个节点处理请求的算法、逻辑和业务流程等都相同。
配置文件一致:集群中的所有节点应该使用相同的配置文件,包括数据库连接信息、缓存配置、日志输出等内容。
静态资源一致:静态资源包括 HTML、CSS、JS 文件等,应该在所有节点上保持一致,保证页面展现和用户体验的一致性。
Session 数据一致性:如果应用程序使用了 Session 来保存用户信息和状态,那么集群中的各个节点应该共享 Session 数据,以保持用户会话的一致性。这可以通过将 Session 存储在集中式的缓存系统中实现。
数据库数据一致性:如果应用程序使用了数据库来存储数据,那么数据库中的数据应该在所有节点上保持一致。这可能涉及到数据库主从同步、读写分离等机制。
总之,在部署 Web 集群时,需要关注各个节点之间的数据和代码一致性问题,以确保集群的高可用和稳定性。
ELK日志系统,运行在 K8S 集群中 ,存储使用StorageClass 动态存储卷
本文中 ELK 部署在集群default命名空间,如果部署在自定义命名空间,执行命令请替换default名称
可以看到空间磁盘使用率高达96%
可以看到返回信息中包含"read_only_allow_delete": "true" 从这里可以定位故障原因,虽然磁盘没有写满,但是触发了ES的保护机制:
日志ELK默认部署在集群default命名空间,如果部署在自定义命名空间,执行命令请替换default名称
扩容后参考检查步骤
如果目前 ES PVC 容量非常大,按照ES默认配置 90% 存储依然剩余大量空余空间,可以调大ES参数阈值, 解除索引只读模式 , 将ES集群恢复至正常状态
ES相关参数说明:
一、目录1、工具
2、安装tcl
3、安装单机版redis
4、把redis设置为daemon进程,每次系统启动,redis进程一起启动
5、安装redis cluster
二、工具
21、tcl861-srctargz
22、ruby-231targz
23、redis-411gem
24、redis-328targz
25、openssl-102rtargz
三、安装tcl(安装redis必须先要安装tcl)
31、把tcl861-srctargz通过WinSCP上传到虚拟机中的/usr/local目录下
四、安装单机版redis
41、把redis-328targz通过WinSCP上传到虚拟机中的/usr/local目录下
42、依次运行如下命令:
tar -zxvf redis-328targz 解压文件
cd redis-328
make && make test && make install
五、把redis设置为daemon进程,每次系统启动,redis进程一起启动
51、将redis的utils目录下的redis_init_script脚本拷贝到linux的/etc/initd目录中,将redis_init_script重命名为redis_6379,6379是我们希望这个redis实例监听的端口号
52、修改redis_6379脚本的第6行的REDISPORT,设置为相同的端口号(默认就是6379)
protected-mode no 取消保护模式,保护模式只能127001访问
daemonize yes 让redis以daemon进程运行
pidfile /var/run/redis_6379pid 设置redis的pid文件位置
bind 1921683110
port 6379 设置redis的监听端口号
dir /var/redis/6379 设置持久化文件的存储位置
logfile /var/log/redis/6379log 设置日志文件位置
56、启动redis,依次执行:
cd /etc/initd,
chmod 777 redis_6379,赋读写执行的权限(chmod -R 777 是递归把该目录下的所有文件和其子文件全部赋权限)
/redis_6379 start 启动
57、确认redis进程是否启动,ps -ef | grep redis
58、让redis跟随系统启动自动启动
59、重启系统,不手动启动redis,直接连接redis,可以连接上,表示配置成功
此时一个单机版的redis的生产环境已经搭建好了,每次服务器重启,redis都会自动的启动
六、安装redis cluster
(redis cluster集群,要求至少3个master,去组成一个高可用,健壮的分布式的集群,每个master都建议至少给一个slave,3个master,3个slave)
61、前提,我在其它机器上启动了六个redis(安装步骤都如下)
22、创建三个目录:
mkdir -p /etc/redis-cluster 存放集群配置信息,自动生成配置
mkdir -p /var/log/redis redis日志
mkdir -p /var/redis/7001 存放redis的rdb文件和aof文件
63、将redis的utils目录下的redis_init_script脚本拷贝到linux的/etc/initd目录中,将redis_init_script重命名为redis_7001,7001是我们希望这个redis实例监听的端口号,并修改redis_7001配置文件中的REDISPORT=7001
64、修改/etc/redis/7001conf中的部分配置为生产环境
65、完成了一个redis环境的配置,依次再配置其余五个,分别为7002、7003、7004、7005、7006,每个启动脚本内,都修改对应的端口号
66、启动6个redis实例
67、创建集群(需要安装ruby、rubygems)
上述命令在部分机器上是可以直接运行完成,成功安装的,但在部分机器上运行第三条命令时会提示ruby版本太低、openssl找不到的问题,下面依次解决这两个问题:
68、再次运行gem install redis命令,报出两个错误
69、再次运行gem install redis命令,报出一个错误
610、再次运行gem install redis命令,报出一个错误
611、再次运行gem install redis命令
[root@ceshi01 local]# gem install redis
Successfully installed redis-411
Parsing documentation for redis-411
Done installing documentation for redis after 1 seconds
WARNING: Unable to pull data from ' >
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)