Go 语言项目开发实战
孔令飞
腾讯云专家工程师,前 Red Hat、联想云工程师
41031 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 61 讲
Go 语言项目开发实战
15
15
1.0x
00:00/00:00
登录|注册

40 | 软件部署实战(上):部署方案及负载均衡、高可用组件介绍

业务进程监控和VIP切换
全局定义、检测脚本配置、VRRP实例配置
下载最新版本、安装依赖、安装、配置、启动并设置开机启动
根据负载策略转发请求到不同的后端服务器
配置示例
确认安装成功、启动并设置开机启动
使用yum命令在CentOS 8.x系统上安装
反向代理和负载均衡功能
轻量级、高性能、开源的HTTP服务器和反向代理服务器
通过给虚拟IP绑定腾讯云弹性公网IP实现外部访问
Nginx实现IAM服务的高可用和负载均衡
备服务器部署了iam-apiserveriam-authz-serveriam-pump
主服务器部署了iam-apiserveriam-authz-serveriam-pump和数据库
主备服务器共享同一个VIP
内网部署,保证安全和性能
两台物理机/虚拟机
2. 如何实现iam-pump的高可用?
1. 如何实现整个系统的高可用在交换机故障时?
需要确保整个应用具备高可用和弹性扩缩容能力
Nginx + Keepalived实现IAM应用的高可用和弹性伸缩能力
Keepalived配置文件解析
Keepalived安装步骤
Nginx负载均衡功能
Nginx反向代理功能
Nginx安装步骤
Nginx功能简介
Nginx + Keepalived部署高可用架构
课后练习
总结
Keepalived安装和配置
Nginx安装和配置
部署方案
软件部署方案及负载均衡、高可用组件介绍

该思维导图由 AI 生成,仅供参考

你好,我是孔令飞。
接下来,我们就进入到这门课的最后一个模块,服务部署部分的学习。在这一模块中,我会带着你一步一步地部署一个生产级可用的 IAM 应用。
03 讲 中,我们快速在单机上部署了 IAM 系统,但这样的系统缺少高可用、弹性扩容等能力,是很脆弱的,遇到流量波峰、发布变更很容易出问题。在系统真正上线前,我们需要重新调整部署架构,来保证我们的系统具有负载均衡、高可用、弹性伸缩等核心运维能力。
考虑到你手中的系统资源有限,这一模块会尽量简单地展示如何部署一个相对高可用的 IAM 系统。按照我讲的部署方法,基本上可以上线一个中小型的系统。
在这一模块中,我会介绍两种部署方式。
第一种是传统的部署方式,基于物理机 / 虚拟机来部署,容灾、弹性伸缩能力要部署人员自己实现。第二种是容器化部署方式,基于 Docker、Kubernetes 来部署,容灾、弹性伸缩等能力,可以借助 Kubernetes 自带的能力来实现。
接下来的三讲,我们先来看下传统的部署方式,也就是如何基于虚拟机来部署 IAM 应用。今天我主要讲跟 IAM 部署相关的两个组件,Nginx + Keepalived 的相关功能。

部署方案

先来整体看下我们的部署方案。
这里,我采用 Nginx + Keepalived 来部署一个高可用的架构,同时将组件都部署在内网,来保证服务的安全和性能。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文详细介绍了如何利用Nginx + Keepalived实现高可用架构,并提供了具体的安装和配置步骤。文章首先介绍了IAM应用的部署需求,然后详细介绍了采用Nginx + Keepalived部署高可用架构的方案。作者分别在两台服务器上执行了Keepalived的安装步骤,并解析了Keepalived的默认配置文件。此外,文章还介绍了如何配置`vrrp_script`脚本来实现对Nginx运行状况的监控,以及如何通过Nginx的反向代理功能和负载均衡功能实现后端服务的高可用。总的来说,通过本文,读者可以了解到如何利用Nginx + Keepalived实现高可用架构,以及具体的安装和配置步骤。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Go 语言项目开发实战》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(11)

  • 最新
  • 精选
  • Realm
    1 可以把交换机搞成堆叠模式,服务器分别接在两个不同的交换机上,可以减少单点故障。可以看看这篇文章https://blog.51cto.com/netlt/2589364 2 有状态一般是cookie或者session,负载均衡支持基于cookie的会话保持,开启后,相同cookie的http请求,始终打到某一个服务端. 请老师指点!

    作者回复: 高抬不通交换机的机器,一台出故障,另一台可以手动切换

    2021-08-26
    4
  • daz2yy
    Nginx 确保服务的高可用; Keepalived 确保 Nginx 的高可用; 谁来保证 Keepalived 的高可用呢?感觉如果能确保 Keepalived 的高可用,那么去掉这一层,把保证 Keepalived 高可用的方式应用到保证 Nginx 的高可用上不是简单一些吗?

    作者回复: Nginx不带VIP的能力。Keepalived的高可用通过VRRP技术来实现的

    2021-08-27
    2
  • 张翀
    请问老师两台机器的NGINX和keepalive配置是基本一致的,对吗

    作者回复: 是一致的

    2022-11-01归属地:广东
  • 张靖
    iam-pump 个人理解,还没有看服务相关源码,如果是有状态的比如session,可以通过session同步或异步复制。 或者通过一致性hash 在固定节点处理 鸡蛋篮子理论,高可用一般都是多副本的,采用Quorum 机制 控制多副本数据一致性,保证半数写入

    作者回复: 6666

    2022-02-11
  • 阿甘
    老师你好,使用Keepalived做VIP failover要求VIP和后端RIPs必须在同一个网段,但是有时候MASTER和BACKUP可能就不在一个网段,比如出于容灾的需要,MASTER和BACKUP位于不同的机架,这时候他们就不会处于同一个子网中。那么这种情况下,怎样使用Keepalived做VIP failover呢?

    作者回复: 这个是keepalived的限制,暂时应该没法避免吧。 可以这么来,同机架使用keepalived做热备。不同机架手动切(冷备)

    2021-11-30
  • 授人以🐟,不如授人以渔
    「客户端只能通过VIP:443端口访问 Nginx 服务」是否可修改为:「客户端只能通过公网IP:443端口访问 Nginx 服务」?

    作者回复: 这里的VIP还不一定是公网,也有可能是内网。

    2021-10-19
  • 随风而过
    多台交换机做备用,监测交换机状态

    作者回复: 是个方案

    2021-09-09
  • kkgo
    怎么做nginx负载均衡?

    作者回复: 老哥,请看下一讲

    2021-08-27
  • XI
    老师,单台gin框架应该起多少goroutine性能才是最优的啊,100 个1000个?,单台服务器起能抗住多少的并发啊?

    作者回复: 具体要看机器配置了。你可以参考2C8G的并发

    2021-08-26
  • 那时刻
    对于如果交换机故障,如何实现整个系统的高可用? 其一采用备份交换机,当云解析到主交换机不同之后,把请求路由到备份交换机上,主交换机和备份交换机都指向同一后台服务器 其二可以采用备份服务器集群,与主服务器集群一致,备灾使用

    作者回复: 对的,只能采用冷备了。

    2021-08-26
收起评论
显示
设置
留言
11
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部