fast known when vm/docker failover to another machine (Linux exp)

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:
我们在使用VM或DOCKER环境时, 如果VM或DOCKER发生failover, 转移到其他宿主机运行后,
原来APP和Server建立的TCP会话怎样才能快速的感知并重新和新的Server建立TCP会话呢?
假设结构如下 : 
fast known when vm/docker failover to another machine (Linux exp) - 德哥@Digoal - PostgreSQL research

假设APP使用主机名连接Server, 比较靠谱的是使用DNS做这类解析.
当vm/docker failover后, Server的IP可能发生变化, 也可能不发生变化. 
如果vm/docker ip发生变化, 势必设计到DNS的变更, 那么为了快速的解析到正确的IP, DNS的TTL不能太大.
如果vm/docker ip不发生, 那么不需要变更DNS, 所以DNS TTL无所谓.
另一方面, TCP会话断开后, app要迅速的感知, 除了应用层自己做心跳以外(这里假设APP没有心跳功能), 可以依靠TCP的心跳.
[root@150 ~]# sysctl -a|grep keepa
net.ipv4.tcp_keepalive_time = 7200
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_intvl = 75
缩短这些心跳值, linux 内核会处理会话的状态.
fast known when vm/docker failover to another machine (Linux exp) - 德哥@Digoal - PostgreSQL research

1. app连接主机名, 从DNS解析VM/DOCKER IP
2. vm/docker container failover to another machine
3.1. when vm/docker ip changed, 修改DNS (需快速修改)
3.2. app等待tcp会话超时, 或应用层感知  (需快速超时)
3.3. 等待DNS TTL超时, 才能解析主机名到新的IP地址,   (需快速超时)
3.4. APP连接到新的地址

4.1 when vm/docker ip unchanged
4.2. app等待tcp会话超时, 或应用层感知   (需快速超时)
4.3app连接主机名, 从DNS解析VM/DOCKER IP

[参考]
目录
相关文章
|
2月前
|
Linux Docker 容器
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
本篇博客重在讲解Centos安装docker,经博主多次在不同服务器上测试,极其的稳定,尤其是阿里的服务器,一路复制命令畅通无阻。
1371 4
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
|
27天前
|
应用服务中间件 网络安全 数据安全/隐私保护
【赵渝强老师】使用Docker Machine远程管理Docker
Docker Machine 是 Docker 官方提供的远程管理工具,可帮助开发人员在远程主机或虚拟机上安装和管理 Docker 环境。本文介绍了如何在远程主机上安装 Docker 并配置免密码登录,以及使用 Docker Machine 管理远程 Docker 主机的常用命令。
|
4月前
|
机器学习/深度学习 存储 Linux
【机器学习 Azure Machine Learning】使用VS Code登录到Linux VM上 (Remote-SSH), 及可直接通过VS Code编辑VM中的文件
【机器学习 Azure Machine Learning】使用VS Code登录到Linux VM上 (Remote-SSH), 及可直接通过VS Code编辑VM中的文件
|
4月前
|
机器学习/深度学习 Ubuntu Linux
【机器学习 Azure Machine Learning】使用Aure虚拟机搭建Jupyter notebook环境,为Machine Learning做准备(Ubuntu 18.04,Linux)
【机器学习 Azure Machine Learning】使用Aure虚拟机搭建Jupyter notebook环境,为Machine Learning做准备(Ubuntu 18.04,Linux)
|
4月前
|
Kubernetes Linux Docker
【Azure 应用服务】使用Docker Compose创建App Service遇见"Linux Version is too long. It cannot be more than 4000 characters"错误
【Azure 应用服务】使用Docker Compose创建App Service遇见"Linux Version is too long. It cannot be more than 4000 characters"错误
|
4月前
|
虚拟化 数据中心 Docker
深入探讨Docker Machine
【8月更文挑战第25天】
50 0
|
4月前
|
存储 Linux 网络安全
【Azure 存储服务】如何把开启NFS 3.0协议的Azure Blob挂载在Linux VM中呢?(NFS: Network File System 网络文件系统)
【Azure 存储服务】如何把开启NFS 3.0协议的Azure Blob挂载在Linux VM中呢?(NFS: Network File System 网络文件系统)
|
4月前
|
缓存 NoSQL Linux
【Azure Redis 缓存】Linux VM使用6380端口(SSL方式)连接Azure Redis (redis-cli & stunnel)
【Azure Redis 缓存】Linux VM使用6380端口(SSL方式)连接Azure Redis (redis-cli & stunnel)
101 0
|
4月前
|
运维 Kubernetes Linux
docker和kubectl客户端安装Linux
通过上述步骤,您应该已经在Linux环境中成功安装了Docker和kubectl客户端。安装完成后,您可以开始使用Docker来创建和管理容器,使用kubectl来管理Kubernetes集群。这些工具的安装和使用,对于现代云原生应用的开发和运维来说,是一个基础且关键的步骤。
44 0
|
5月前
|
Ubuntu Linux 数据安全/隐私保护
Linux系统使用Docker部署Cloudreve云盘并实现远程访问
Linux系统使用Docker部署Cloudreve云盘并实现远程访问
78 0