news 2026/5/14 15:56:45

在contos7上面综合部署k8s 使用constainerd zabbix监控 和ansible综合控制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
在contos7上面综合部署k8s 使用constainerd zabbix监控 和ansible综合控制

一、整体架构(先明确)

  • K8s 集群:3 节点(1master+2node),1.24+,含 CSI 存储(PVC)
  • Ansible 控制节点:独立 VM / 物理机,与 K8s 节点互通、免密 sudo
  • Zabbix 组件(容器化部署在 K8s)
    • MySQL(StatefulSet + PVC):存储 Zabbix 配置 / 历史数据
    • Zabbix Server(Deployment):10051 端口
    • Zabbix Web(Deployment + Ingress):80/443
    • Zabbix Agent2(DaemonSet):每节点一个,监控节点与容器
  • 监控对象:K8s 集群(API、Scheduler、kubelet、Node、Pod)+ 所有主机 / 容器

二、环境准备(所有节点)

2.1 基础环境(所有机器)

需要四台机器 一台独立的ansible 一台master 两台node 注意 部署k8s的机器内存要大于四G 内核大于二

# 关闭防火墙/selinux systemctl stop firewalld && systemctl disable firewalld

setenforce 0

sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

# 时间同步

yum install -y chrony systemctl start chrony && systemctl enable chrony

# 主机名解析(所有节点)

cat >> /etc/hosts << EOF

192.168.1.10 k8s-master

192.168.1.11 k8s-node1

192.168.1.12 k8s-node2

192.168.1.20 ansible-controller

EOF

2.2 Ansible 控制节点配置

# 安装 ansible yum install -y epel-release yum install -y ansible

# 生成 ssh 密钥并分发到所有 K8s 节点(免密)

ssh-keygen -t rsa -N '' -f ~/.ssh/id_rsa for ip in 192.168.1.10 192.168.1.11 192.168.1.12; do ssh-copy-id root@$ip done

# 测试免密

ansible all -m ping

2.3 K8s 集群准备(已就绪则跳过)需要提前准备yum源

选择使用 一键更换阿里云的yum源

# 备份原有源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

# 下载阿里云官方源

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

# 生成缓存

yum clean all && yum makecache

# 所有节点安装 kubeadm/kubelet/kubectl(1.24+)

yum install -y kubeadm-1.24.17-0 kubelet-1.24.17-0 kubectl-1.24.17-0

systemctl enable kubelet

# master 初始化

kubeadm init \

--apiserver-advertise-address=192.168.1.10 \

--image-repository registry.aliyuncs.com/google_containers \

--kubernetes-version=v1.24.17 \ --service-cidr=10.96.0.0/12 \

--pod-network-cidr=10.244.0.0/16

# 配置 kubectl

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

# 安装网络插件(calico) kubectl apply -f https://docs.projectcalico.org/v3.25/manifests/calico.yaml

# 加入 node(在 node 执行,用 master 输出的 join 命令)

kubeadm join 192.168.1.10:6443 --token xxx \ --discovery-token-ca-cert-hash sha256:xxx

三、用 Ansible 准备 K8s 环境与依赖

3.1 Ansible Inventory(/etc/ansible/hosts)

[k8s-master] 192.168.1.10 [k8s-nodes] 192.168.1.11 192.168.1.12 [k8s-cluster:children] k8s-master k8s-nodes

3.2 Ansible Playbook:初始化 K8s 节点

ansible-playbook init-k8s.yml

四、K8s 部署 Zabbix(MySQL + Server + Web)

4.1 创建命名空间与存储

kubectl create namespace monitoring

4.2 部署 MySQL(StatefulSet + PVC)

mysql.yaml:

使用命令完成该文件的部署

kubectl apply -f mysql.yaml

4.3 部署 Zabbix Server

zabbix-server.yaml:

使用命令完成部署

kubectl apply -f zabbix-server.yaml

4.4 部署 Zabbix Web 界面

新建zabbix-web.yaml

部署并查看访问端口:

kubectl apply -f zabbix-web.yaml

kubectl get svc -n monitoring

第五阶段:Ansible 批量给所有机器部署 Zabbix Agent2(核心)

5.1 新建 Ansible 项目目录

mkdir -p /opt/ansible/zabbix-agent/templates

cd /opt/ansible/zabbix-agent

5.2 编写 Agent 配置模板

vi templates/zabbix_agent2.conf.j2

PidFile=/run/zabbix/zabbix_agent2.pid

LogFile=/var/log/zabbix/zabbix_agent2.log

Server=192.168.10.10 ServerActive=192.168.10.10

Hostname={{ ansible_hostname }}

5.3 编写 Ansible 部署剧本deploy-agent.yml

5.4 一键批量部署所有节点

ansible-playbook deploy-agent.yml

第六阶段:Zabbix Web 添加监控主机

  1. 浏览器登录 Zabbix
  2. 配置 → 主机 → 创建主机
  3. 主机名称:k8s-masterIP 地址:192.168.10.10模板链接:选择Linux by Zabbix agent 2
  4. 同样方式添加 node1、node2
  5. 等待 5 分钟,即可看到 CPU、内存、磁盘、网络监控数据。

    第七阶段:整体项目总结流程

  6. 3 台虚拟机基础初始化(主机名 / 防火墙 / SELinux / 时间同步)
  7. Master 节点安装 Ansible,配置免密、主机清单
  8. 3 台机器统一安装 Docker、K8s 组件
  9. Kubeadm 初始化集群、加入节点、Calico 组网
  10. K8s 内部用 yaml 部署 MySQL + Zabbix-Server + Zabbix-Web
  11. Ansible 编写 Playbook,一键批量给所有节点装 Zabbix Agent
  12. Zabbix 页面添加主机、绑定模板、查看监控、配置告警
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/14 15:55:07

在Hermes Agent项目中接入Taotoken自定义模型供应商的步骤

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在Hermes Agent项目中接入Taotoken自定义模型供应商的步骤 对于使用Hermes Agent框架的开发者而言&#xff0c;直接对接不同的大模…

作者头像 李华
网站建设 2026/5/14 15:50:05

ESP32实战指南:SDMMC接口高效读写SD卡全解析

1. ESP32与SD卡交互的基础认知 第一次接触ESP32的SD卡功能时&#xff0c;我和很多开发者一样&#xff0c;以为插上就能用。结果发现这就像给电脑插U盘——硬件连接只是第一步&#xff0c;驱动配置才是关键。ESP32通过SDMMC&#xff08;Secure Digital MultiMedia Card&#xff…

作者头像 李华
网站建设 2026/5/14 15:50:04

基于STM32CubeMx与FreeRTOS:从零构建多任务LED控制系统的移植实践

1. 环境准备与工程创建 第一次接触STM32CubeMX和FreeRTOS时&#xff0c;我完全被各种配置选项搞晕了。后来发现只要按照正确顺序操作&#xff0c;其实没那么复杂。我们先从最基础的开发环境搭建说起。 STM32CubeMX是ST官方推出的图形化配置工具&#xff0c;它能自动生成初始化…

作者头像 李华
网站建设 2026/5/14 15:48:03

WorkshopDL:Steam创意工坊模组下载器终极指南

WorkshopDL&#xff1a;Steam创意工坊模组下载器终极指南 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL WorkshopDL是一款功能强大的免费Steam创意工坊下载工具&#xff0c;专…

作者头像 李华
网站建设 2026/5/14 15:42:53

HTTP协议详解:超文本传输协议,请求与响应的完整流程

HTTP协议详解&#xff1a;超文本传输协议&#xff0c;请求与响应的完整流程&#x1f4dd; 本章学习目标&#xff1a;本章深入协议原理&#xff0c;帮助读者理解网络通信的核心机制。通过本章学习&#xff0c;你将全面掌握"HTTP协议详解&#xff1a;超文本传输协议&#xf…

作者头像 李华