Ansible的一键部署
用Ansible写过一键部署脚本,把K8s集群加监控环境的搭建时间从4小时压缩到25分钟。
4小时:手工搭建K8s集群+prometheus监控环境
细节:1.每台机器配置 30*3 主要任务:关闭swap 关闭SELinux 加载内核模块 配置sysctl
2.安装containerd容器 配置yum源、安装、生成配置文件等
3.安装kubeadm/kubelet
4.初始化Master
5. 安装calico网络插件 apply网络yaml,等待Pod Runing
6.加入Worker节点 生成join命令,在两台worker上执行
7.验证集群 kubectl get nodes 排查问题等
8.安装Prometheus + Grafana 添加helm repo、安装kube-Prometheus-stack、等待Pod启动
9.配置和调试
25分钟是怎么做到的?
用Ansible一次性并行执行所有节点的配置任务
我在项目的deploy-k8s.yml里面有这个
# 第一阶段:在所有节点上并行执行common角色
- name: Configure all nodes with common settings
hosts: all # 3台机器同时执行
roles:
- common # 关swap、关SELinux、装containerd、装kubeadm
# 第二阶段:只在master上执行
- name: Deploy Kubernetes master node
hosts: masters
roles:
- master # init集群、装calico、生成join命令
# 第三阶段:只在worker上执行
- name: Deploy Kubernetes worker nodes
hosts: workers
roles:
- worker
让机器同时执行,而不是一台一台做,可以节省时间2h左右
脚本可以重复执行,不怕中间出错需要重来
ansible-playbook deploy-k8s.yml完成所有步骤
Calico
是什么: K8s集群中最常用的容器网络插件(CNI),负责给每个Pod分配IP并让它们能跨节点通信。
作用:
-
实现Pod之间的网络互通(跨节点也能ping通)
-
支持Network Policy(网络策略),可以做微隔离
-
比Flannel功能更强,支持BGP路由
Prometheus
是什么: 云原生领域最主流的开源监控和告警系统。
作用:
-
采集指标:从K8s组件、节点、容器拉取CPU、内存、网络等数据
-
存储时序数据:带时间戳的指标(比如"过去5分钟CPU使用率")
-
告警:配置规则,比如
PodCrashLooping告警 -
配合Grafana:可视化展示监控大盘
kubeadm
是什么: Kubernetes官方提供的集群安装工具,用来快速搭建一个符合最佳实践的K8s集群。
作用:
-
初始化Master节点(
kubeadm init) -
生成Worker节点加入集群的命令(
kubeadm token create --print-join-command) -
自动拉取K8s核心组件镜像(kube-apiserver、kube-controller-manager、kube-scheduler、etcd、coredns等)
SELinux
“传统的 Linux 权限是‘用户 + 文件权限’(比如 rwxr-xr-x),但 root 用户几乎什么都能做。如果一个进程被攻破,攻击者就可能拿到整个系统的控制权。
SELinux 提供了更细粒度的控制——哪怕是 root 进程,也只能访问它被允许的资源。”
为什么你的项目里要关掉它?
“K8s 需要访问很多系统资源,SELinux 默认策略可能会阻断容器运行时(containerd)、网络插件(Calico)或者 volume 挂载。在实验环境里,关掉 SELinux 可以避开权限问题快速部署。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)