kubeadm工具快速部署k8s集群实现故障自动发现、转移及修复,集群中部署prometheus+grafan可实现自动收集集群的各项新性能指标数据,可视化界面提升客户对各项性能指标的直观感知,实现高效快速故障排查及解决。
一、kubeadm搭建k8s集群
作为Kubernetes官方提供的集群部署管理工具,采用“一键式”指令进行集群的快速初始化和安装,极大地简化了部署过程,消除了集群安装的痛点。可以快速部署一套k8s集群。
在启动的过程可以查看到拉取组件镜像的过程。之所以kubeadm能成为最快搭建k8s集群的工具就在于它将组件都容器化部署。使用两条命令可以快捷部署一套k8s集群:kubeadm init:初始化集群并启动master相关组件,在计划用做master的节点上执行。kubeadm join:将节点加入上述集群,在计划用做node的节点上执行。
K8s-master: kube-apiserver controller-manager Scheduler Etcd K8s-node: Kubelet Kube-proxy Docker
可根据实际生产环境的需求配备适配的基础环境,本次项目仅作为实验参考
官网建议安装docker-19.03.9版本适配k8s集群
内网建议使用二进制安装,外网可以使用ali源或清华源进行安装
获取yum软件源安装kubeadm
本人使用华为云自带的yum软件源安装部署,仅作为实验参考
Calico是一个纯三层的数据中心网络方案,calico支持广泛的平台,包括kubernets,openstack等等。
Calico在每个计算节点利用linux kernel实现一个高效的虚拟路由器来负责数据转发,而每个vrouter通过bgp协议负责把自己上运行的workload的路由信息向整个calico网络内传播
是默认k8s UI界面,主要用于查看集群资源
Nginx是一个主流Web服务和反向代理服务器,这里用四层实现对apiserver实现负载均衡
Keepalived基于VIP绑定实现服务器双机热备
Keepalived主要根据Nginx运行状态判断是否需要故障转移(偏移VIP),例如当Nginx主节点挂掉,VIP会自动绑定在Nginx备节点,从而保证VIP一直可用,实现Nginx高可用。
二、k8s搭建Prometheus
是一套开源监控、报警、时间序列、数据库的组合采集的样本,以时间序列的方式存在内存(TSDB时序数据库,不属于非关系型或关系型数据库)中,并定时持久化存储在硬盘中。
天生适用于k8s,promethus可以很好记录任何纯数据自时间序列,适用于以机器为中心的监视,也适用于高度动态的面向服务的体系结构的监视。
适用于为微服务架构,优势在于每个 prometheus server是独立的,不依赖与任何介质,当它挂掉的时候自己会书写一份日志。用户可以通过日志排除故障并重启prometheus。
不适合用于一些精准性需求很高的场合
原文链接:http://yjs.jaozi.cn/?article%2F1211689