当前位置:首页 > Web开发 > 正文

如monitor namespace统一管理诸如监控告警和日志管理方面的pod、service、pvc、ingress等

2024-03-31 Web开发

首先,我们来梳理下Kubernetes出产架构,其设计适用于绝大大都环境。如下图所示

技术图片

在该架构中,我们可以将其分为四层,如下:

Client层:即Kubernetes集群外部用户、客户端等;

处事访谒层:即由Traefik ingress实现处事发明、负载均衡和路由法则界说等;

业务应用层:即基于Kubernetes平台构建和运行企业业务应用,如CI/CD连续集成、微处事项目、监控告警和日志打点、私有镜像货仓等处事;

根本设施层:即由Kubernetes容器打点平台和Ceph数据长期化存储等系统构成的根本设施处事。

下面,我们分袂来谈谈各层的具体实现方案。

根本设施层

Kubernetes平台

部署打点:Kubernetes平台除了直接使用公有云如阿里云、AWS等云处事供给商的K8s处事外,我们还可以本身部署和打点等,如使用Kubespray工具。

网络通信:在容器和容器之间、容器和主机网络方面,可以使用Calico或Flannel等方案。

HA高可用:Kubernetes节点分为Master和Node两种类型节点,前者卖力运行集群相关的控制打点处事,而后者卖力运行Pod容器。在多Node节点模式下,由于Kubernetes Pod具有天然的容灾冗余HA高可用实现,因此,我们并不需要关心Node节点的HA高可用,而只需关心Master节点的HA即可,Master节点的HA高可用,通过多Master节点+HAProxy方案实现即可。从Kubernetes 1.12版本起,kube-proxy处事默认使用ipvs实现,打消了之前的iptables。这有助于提升K8s大规模集群环境下的性能和不变性。

Docker和操纵系统优化:在出产环境中,Docker和操纵系统版本该当使用较新的release版本。并且,主机操纵系统该当做必然水平的优化配置,如封锁swap内存交换分区,预留必然的CPU核数和内存资源给宿主机使用等。

Ceph/NFS数据存储

Kubernetes平台的数据长期化存储,可以使用Ceph、NFS等存储方案。此中,Ceph适用于有其技术配景或大容量存储需求的公司;而NFS适用于存储容量需求相对较小,无专业存储技术配景的公司。

业务应用层

镜像打点:使用Harbor私有镜像货仓处事;

日志打点:使用Elasticsearch、Filebeat 和 Kibana技术栈;

监控告警打点:使用Cadvisor、Prometheus和Grafana技术栈;

微处事架构:使用Service Mesh处事网格中的Istio方案;

Devops:使用Gitlab、Jenkins等连续集成工具;

单体应用:无状态类处事使用deployment,有状态类处事则使用Statefulset,如果关联的处事较多且庞大则使用Helm。

规划好Namespace:该当做到每个namespace专属用于某类型的应用,如monitor namespace统一打点诸如监控告警和日志打点方面的pod、service、pvc、ingress等资源。这样,可以较为便利的打点和区分K8s上的各类应用。

处事访谒层

外部客户端访谒K8s集群内的处事、负载均衡和路由法则界说使用Traefik Ingress实现。别的,该当实现Ingress处事HA高可用,可以想象在K8s集群中,大量的收支口流量都进过Ingress,其负载长短常大的,其重要水平不言而喻,因此实现HA就非常重要。ingress controller节点(无论是基于nginx还是traefik实现)该当至少为2个节点,并在这些节点上,部署Keepalived和HAproxy配合维护一个VIP地点,将其供给给ingress使用。

架构如下图所示

技术图片

在该架构中,Ingress节点一般使用独立的处事器,即只做将集群外部流量接入到集群内部。除了使用external Ip来袒露ingress的Service到集群外部,,还可以使用hostNetwork,如果是公有云,还可以使用LoadBalance。这样Ingress Controller将监听节点的80和443端口,通过热备的形式部署多个ingress节点,并在每个节点上部署Keepalived,多个节点配合维护一个VIP,实现Ingress处事的高可用。

如上图所示,部署两个ingress节点172.16.10.11和172.16.10.12。公网ip映射或转发到内网的VIP地点172.16.10.10上(如果VIP自己是公网IP则可以不用转发)。ingress controller的副本数replicaCount为2,将被调理到node1和node2这两个节点上。同时,使用pod反亲和性禁止ingress pod调理在同一个节点上。

我们来梳理下Kubernetes出产架构,其设计适用于绝大大都环境

标签:

原文地点:https://www.cnblogs.com/xiexun/p/12116669.html

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/32729.html