当前位置: 首页 > news >正文

Ansible 自动化部署K8S1.34.1

Kubernetes 安装与配置自动化

项目简介

  • 该项目使用 Ansible 来自动化部署和配置 Kubernetes 集群,包含多个角色和任务,支持高可用性部署,并集成了一些常用的 Kubernetes 插件(如 Calico、CoreDNS、Helm 等)。项目中的主要目标是通过精心设计的 site.yml 和相关的 Ansible 角色(roles)来简化 Kubernetes 集群的安装与配置。
  • Ansible 脚本配置过程完全按照这个文档编写:https://blog.csdn.net/qq_39965541/article/details/151965990?spm=1011.2415.3001.5331
  • 脚本用到的所有安装包下载地址:https://pan.baidu.com/s/19iY9wQrCxC7hX6kHBrcALA?pwd=i25f (下载下来放到 packages 目录即可,再本页面下载的不用直接下载下来就是全量的安装包)
  • githup 项目地址 :git@github.com:peopleurl/ansible-k8s-bootstrap.git

目录结构

ansible-k8s-1.34.1/
├──  packages                   # K8S 相关的安装包  (这个安装包  比较大已经其放到百度云 下载下来解压覆盖这个目录即可)
├── group_vars/└── all.yml               # 全局变量配置 (写的着急 只添加了一部分变量)
├── inventory/                  # 存放 K8S 清单文件(inventory)
│   └── hosts.yml               # 定义了 Kubernetes 集群的主机信息
├── roles/                      # 存放各个角色的配置
│   ├── ca                      # Kubernetes CA 证书相关配置
│   ├── calico                  # Calico 网络插件
│   ├── copy-ca                 # 复制 CA 证书到各节点
│   ├── coredns                 # CoreDNS 插件
│   ├── cri                     # 配置容器运行时
│   ├── etcd                    # ETCD 集群配置
│   ├── ha                      # 高可用性配置(Keepalived+Haproxy)
│   ├── helm                    # Helm 包管理工具配置
│   ├── ingress-nginx           # Ingress Nginx 控制器配置
│   ├── kube-master             # 主节点配置
│   ├── kube-node               # 工作节点配置
│   ├── Metrics                 # 集群监控(Metrics)配置
│   └── prepare                 # 集群准备工作(如依赖安装等)
├── site.yml                    # Ansible 主 playbook 文件
└── README.md                   # 脚本说明文件

安装与使用

系统要求

  • 支持 Ansible 的操作系统
  • 需要提前升级内核版本到4.19以上,或者系统本
  • 我当前的系统版本:AlmaLinux release 10.0 内核:6.12.0-55.9.1.el10_0.x86_64
  • Centos7 系统不能用,这个系统再启动 containerd 时候会报错 尽量使用最新的linux系统去安装

安装 Ansible

我当前使用的系统,如果需要部署多个节点 比如10个以上 需要增加 ansible 主机配置要不会特别卡。

AlmaLinux release 10.0 (Purple Lion)
dnf install -y epel-release
dnf install -y ansible-core

修改 ansible 配置

## 再 /etc/ansible/ansible.cfg 这个文件中 添加这两行
[defaults]
host_key_checking = False

配置清单文件 (hosts.yml)

项目中的清单文件定义了 Kubernetes 集群中各节点的主机名与 IP 地址。根据你的集群环境,修改文件 inventory/hosts.yml 中的 ansible_host 和其他配置项。

##  如果有多个 master 或者 node 节点  按照我那个直接在下面添加即可all:children:kube_control_plane:  hosts:master01:ansible_host: 192.168.1.11keepalived_state: MASTERpriority: 100master02:ansible_host: 192.168.1.12keepalived_state: BACKUPpriority: 90master03:ansible_host: 192.168.1.13keepalived_state: BACKUPpriority: 80kube_node:    如果没有 node 节点将这个删除  并同步修改site.yml 一并删除 kube_node 这个组hosts:worker01:ansible_host: 192.168.1.14worker02:ansible_host: 192.168.1.15worker03:ansible_host: 192.168.1.16## etcd 集群是奇数节点 比如 1个 3个  或者5个节点   根据需求修改就行etcd_cluster:  ## 如果etcd节点 是和 master 节点再一起的 直接将下面的替换为master节点hosts:etcd01:ansible_host: 192.168.1.17etcd02:ansible_host: 192.168.1.18etcd03:ansible_host: 192.168.1.19

执行 Playbook

site.yml 是主要的 Ansible Playbook 文件,包含了多个任务和角色。可以直接运行以下命令来启动自动化配置过程:

## 可以再这条命令的末尾加上 -vv   输出详细日志
ansible-playbook -i inventory/hosts.yml site.yml

当前的这个ansible 脚本还不能完全做到离线安装 有几个步骤需要安装相应的工具,如果没有外网可以提前安装如下工具

dnf install -y ipvsadm ipset sysstat conntrack libseccomp wget git vim lsof tar unzip zip sysstat nc bash-completion keepalived haproxy
yum install -y ipvsadm ipset sysstat conntrack libseccomp wget git vim lsof tar unzip zip sysstat nc bash-completion keepalived haproxy

角色说明

  • prepare: 执行集群的准备工作,包括安装必要的依赖、配置工具等。
  • cri: 配置容器运行时(Container Runtime Interface),如 Docker 或 containerd。
  • ca: 配置 Kubernetes 集群的 CA 证书。
  • copy-ca: 将 CA 证书分发到各节点。
  • etcd: 配置 ETCD 集群,Kubernetes 的关键数据存储。
  • ha: 配置 Kubernetes 高可用性(Keepalived)。
  • kube-master: 配置 Kubernetes master 节点,安装 API server、controller manager、scheduler 等。
  • kube-node: 配置 Kubernetes 工作节点,安装 Kubelet、KubeProxy 等。
  • calico: 安装并配置 Calico 网络插件,提供网络策略和网络管理功能。
  • coredns: 安装并配置 CoreDNS,作为 DNS 服务提供集群服务发现。
  • helm: 安装并配置 Helm,Kubernetes 的包管理工具。
  • ingress-nginx: 配置 Nginx Ingress Controller,用于管理外部访问。
  • Metrics: 配置监控系统,如 Prometheus、Metrics Server 等。

高可用性配置

site.yml 中,kube_control_plane 组中的节点使用 KeepalivedHA 配置来实现高可用性,确保 Kubernetes master 节点的高可用性。通过 keepalived_statepriority 设置每个 master 节点的状态和优先级。

集群节点配置

集群节点被分为三大组:

  1. kube_control_plane: 主节点,运行 Kubernetes 控制层(API server、controller manager、scheduler 默认我把node相关组件也安装上了 如果不需要删除 这个配置即可 修改这个文件 site.yml 即可)。
  2. kube_node: 工作节点,运行 Kubelet 和容器化应用。
  3. etcd_cluster: ETCD 集群,用于存储 Kubernetes 的所有集群数据。

资源解压密码:1qazxsw2

http://www.dtcms.com/a/477409.html

相关文章:

  • 1. 使用VSCode开发uni-app环境搭建
  • Docker监控:cAdvisor+Prometheus+Grafana实战指南
  • Redis-持久化之AOF
  • Python Redis 教程
  • R语言绘制热图
  • GPU微架构
  • Vue-- Axios 交互(二)
  • 中煤浙江基础建设有限公司网站曹妃甸网站建设
  • phpcms做汽车网站wordpress如何关注博客
  • 读《华为基本法》,聚焦可复用的方法论
  • CAD多面体密堆积_圆柱体试件3D V1.1版本更新
  • JavaScript变量完全指南:从基础定义到高级用法
  • 什么是VR?什么是AR?
  • NineData云原生智能数据管理平台新功能发布|2025年9月版
  • 基于AR技术交互式设备维修的技术方案剖析|阿法龙XR云平台
  • 利用 Meshery 提升云原生管理效率
  • [3dmax自研插件]——3ds Max 智能材质检查器
  • 5G+AR:开启航空维修的智能新时代
  • 长春火车站人工电话企业做响应式网站好吗
  • 竹子林附近网站建设移动互联网技术
  • 基于物联网的体温心率监测系统设计(论文+源码)
  • 股指10月想法
  • 融资业务类型、AMS 的通用支持能力、各业务在 AMS 中的流程实现
  • 波音引领航空维修变革:AR技术重塑行业未来
  • 零基础快速上手Playwright自动化测试
  • ArcGIS Pro 修改单个波段的值并组合输出新的影像数据
  • Vue 脚手架(Vue CLI)
  • 自己建设网站需要花多少钱爱南宁app下载官网最新
  • 蓝牙物联网多个核心应用场景开发与应用细化分析
  • 百度装修网站郑州建设局官网