通信链路改造后管理面HA相关.md

逻辑架构

引擎集群内信息同步

Host 机制

使用 /etc/hosts 对集群 host 进行维护

(安装时由引擎安装所填充)

1
2
3
4
5
127.0.0.1 localhost

192.168.0.1 ouryun_m_node_1 ouryun_m
192.168.0.2 ouryun_m_node_2 ouryun_m
192.168.0.3 ouryun_m_node_3 ouryun_m

kubernetes 的客户端会依据 ouryun_m 自动找到 Apiserver 服务端

Etcd 集群机制

  • etcd 通过 Hostname 进行集群组建
  • 组建好的 etcd 集群会内部通信,保证集群内部数据一致性

Apiserver 机制

  • Apiserver 连接本地的 etcd,利用 etcd 的数据一致性保证 Apiserver 之间的数据一致
  • 向引擎所有节点的组件提供服务,并提供认证鉴权
  • Apiserver 签发证书时不需要关注自己的 ip ,而是为多个 hostname 申请即可,提高了灵活性和可维护性(为后续引擎修改 ip 做铺垫)

引擎集群内部组件通过 Apiserver 进行组件间信息同步(operator 开发模型)

Apiserver 的客户端 client-go 已提供通过 hostname 进行集群的服务发现机制,确保了客户端总是可以找到提供特定服务的 Apiserver。

---
title: 通信链路改造后管理面HA相关
---
graph TB
    subgraph Sc[总控]
		sc_core[sc core]
		sc[sc]
    end

	subgraph Se
    	subgraph M_Group[管理面集群]
    		subgraph M_Node1[管理节点]
    		    webserver1[webserver]
    		    apiserver1[Apiserver]
    		    etcd1[Etcd]
    		    webserver1 -->|127.0.0.1| apiserver1 -->|127.0.0.1| etcd1
    		end
    		subgraph M_Node2[管理节点]
    			webserver2[webserver]
    			apiserver2[Apiserver]
    			etcd2[Etcd]
    			webserver2 -->|127.0.0.1| apiserver2 -->|127.0.0.1| etcd2
    		end
    		subgraph M_Node3[管理节点]
    			webserver3[webserver]
    			apiserver3[Apiserver]
    			etcd3[Etcd]
    			webserver3 -->|127.0.0.1| apiserver3 -->|127.0.0.1| etcd3
    		end
    		
    		etcd1 & etcd2 <--> etcd3
    		etcd2 <---> etcd1
    	end
    	subgraph S_Group[调度节点集群]
    		webserver4[webserver]
    		webserver5[webserver]
    	end
    	subgraph W_Group[工作节点集群]
    		webserver6[webserver]
    		webserver7[webserver]
    		webserver8[webserver]
    	end
		webserver4 & webserver5 & webserver6 & webserver7 & webserver8 --->|host: ouryun_m| apiserver1
%%		webserver4 --> webserver1
		
	end
	
	sc <-->sc_core
	webserver1 & webserver2 & webserver3 & webserver4 & webserver5 & webserver6 & webserver7 & webserver8 ====>|channel| sc_core
	
	style Sc fill:#87CEFA
	style Se fill:#708090
	
    linkStyle 9,10,11,12,13 stroke:#FFA07A,stroke-width:2px,color:green;
    linkStyle 6,7,8 stroke:#FFD700,stroke-width:3px,color:green;
    linkStyle 1,3,5 stroke:#32CD32,stroke-width:2px,color:yellow;
	linkStyle 14,15,16,17,18,19,20,21,22 stroke:#FF6347,stroke-width:8px,color:green;

总控-引擎通信

总控-管理面通信

webserver 服务注册机制

webserver 启动时会向 sc-core 注册本组件信息,其中包括本节点角色(M)、引擎序列号、引擎节点ID 等信息

sc-core 负载均衡机制

sc-core 在转发总控到引擎管理面流量时,指定对应引擎和节点角色,可以通过已注册的引擎的 webserver 负载均衡一个可用的引擎管理面中的 webserver 进行处理。

总控-任意节点 webserver 通信

sc-core 在转发总控到任意引擎节点时,指定对应引擎和节点ID,可以通过注册信息,转发到指定节点的 webserver 中进行处理。

物理架构

流程图

引擎 webserver -> sc-core 注册流程

引擎安装 webserver 流程

  • 修改 hosts
  • 安装 webserver
  • 配置启动参数
  • apiserver、etcd 安装逻辑

sc 向管理面 webserver 通信

调度节点、工作节点组件访问管理面组件

异常场景


通信链路改造后管理面HA相关.md
https://abrance.github.io/2024/03/18/project/sr/通信链路改造/通信链路改造后管理面HA相关/
Author
xiaoy
Posted on
March 18, 2024
Licensed under