abi 1.0 2.0混合部署
* 控制平面节点:k8s-master
* 普通计算节点:k8s-node、k8s-node1、k8s-abi1-01、kubernetes-master-1
loong64),操作系统为 Linuxflannel 提供 Pod 网络通信;metallb 提供 LoadBalancer IP 分发,支持多节点多 IP 外部访问ingress-nginx 部署在独立命名空间,提供外部 HTTP/HTTPS 接入建设初衷:统一管理内部构建节点,实现多版本构建和测试环境集中化,降低物理机运维和测试成本。
集群内部业务按照命名空间和功能进行隔离部署:
| 命名空间 | 业务服务/组件 | 类型/用途 |
|---|---|---|
cloud-app |
gohttpserver | 核心二进制仓库服务(deb/rpm),集中管理云计算包构建和分发 |
nexus-helmrepo |
nexus | 存储 Helm 包的仓库服务 |
ingress-nginx |
ingress-nginx-controller | Ingress 控制器,支持外部域名访问与流量管理 |
kube-system |
coredns、kube-apiserver、kube-controller-manager、kube-scheduler、kube-proxy、etcd | Kubernetes 系统组件,保证集群基础功能正常 |
kube-flannel |
flannel-daemonset | 网络插件,提供 Pod 间通信 |
metallb-system |
controller、speaker | LoadBalancer IP 管理 |
yzw |
Prometheus/Kube-Prometheus/Grafana | 监控系统,采集集群和业务指标,可用于客户镜像 CPU 占用观察与分析 |
nacos203 / nacos223 |
nacos 服务 | 配置中心测试服务 |
portainer |
portainer | 容器管理测试服务 |
| … | … | 更多测试/服务 |
存储策略:
cloud、nexus、helm以及后续业务数据统一挂载在内部 NFS(IP:141),保证数据持久化和跨节点访问。
* 核心业务和监控组件主要采用 ClusterIP,集群内部访问和服务发现。
* Pod 标签和 Service 选择器实现负载均衡。
* 通过 Ingress + Metallb 暴露外部服务,支持 HTTP/HTTPS。
* 可在 DNS 节点或本地 DNS 上配置 IP 与域名,实现统一访问。
* 所有业务访问外网无需额外配置端口映射,方便内部统一管理。
* Grafana、Prometheus 暴露为 ClusterIP,通常通过 Ingress 或端口转发访问。
* 对客户运行镜像出现 CPU 占用高的情况,可在集群上部署监控组件观察指标并记录数据。
* 计划将监控数据持久化到 NFS(IP: 141),保证历史指标长期可用。
* 核心业务应用如 gohttpserver 部署多副本(3 个 Pod),保证高可用性。
* 通过 Node Affinity 和 Label 控制 Pod 调度到合适节点,提高资源利用率。
* CoreDNS、kube-proxy、flannel DaemonSet 在每个节点部署,保证基础功能冗余。
* Metallb speaker DaemonSet 在每个节点运行,保证 LoadBalancer IP 分发可用。
* 业务数据和 Helm/Nexus 包存储统一挂载 NFS(IP: 141),保证跨节点共享。
* 未来监控数据也计划持久化到同一 NFS,避免数据丢失。
* 非正式业务服务(nacos、portainer)用于验证部署和配置策略,降低对正式业务的影响。
* Helm Chart、二进制包等先在测试命名空间验证,再推广到生产命名空间。
为了支持不同特性的工作负载,集群对 Worker 节点进行了标签划分,便于 Pod 根据资源或架构要求调度到合适节点:
* ABI1 节点(abi=1)用于部分测试或特定架构需求的工作负载
* 节点示例:k8s-abi1-01、kubernetes-master-1
* 标签规则:node.kubernetes.io/instance-abi=1
* ABI2 节点(abi=2)用于主力业务和正式生产负载
* 节点示例:k8s-master、k8s-node、k8s-node1
* 标签规则:node.kubernetes.io/instance-abi=2
* 使用 NodeSelector 或 NodeAffinity 将 Pod 调度到指定 ABI 节点,保证应用与节点架构匹配。
* 核心业务(cloud 仓库、Helm 仓库等)优先调度到 ABI2 节点,保证稳定性和性能。
* 测试或轻量任务可以调度到 ABI1 节点,降低对主业务节点的影响。
* 节点标签统一使用 node.kubernetes.io/... 前缀,便于识别和运维管理。
* 新增节点时,需按照 ABI 类型和业务特性设置相应标签,保持调度策略一致性。
通过节点标签管理策略,实现了业务与节点特性匹配、负载隔离和统一运维的目标,同时为未来不同架构(ABI)应用的兼容和扩展提供了基础。