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

AlmaLinux使用Ansible自动部署k8s集群


一、环境准备

  1. 节点规划(最低要求)

    • 1台Master节点(4核/8GB内存)
    • 2台Worker节点(2核/4GB内存)
    • 1台Ansible控制机(可复用Master节点)
  2. 系统配置

    # 所有节点执行
    sudo hostnamectl set-hostname master  # 主节点
    sudo hostnamectl set-hostname worker1 # 工作节点
    sudo hostnamectl set-hostname worker2# 配置/etc/hosts(所有节点)
    echo "192.168.1.10 master
    192.168.1.11 worker1
    192.168.1.12 worker2" | sudo tee -a /etc/hosts# 关闭SELinux和防火墙
    sudo setenforce 0
    sudo sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    sudo systemctl stop firewalld && sudo systemctl disable firewalld
    
  3. SSH免密登录

    # 在Ansible控制机生成密钥并分发
    ssh-keygen -t rsa
    ssh-copy-id root@master
    ssh-copy-id root@worker1
    ssh-copy-id root@worker2
    

二、Ansible配置

  1. 安装Ansible

    # 在控制机安装Ansible
    sudo dnf install epel-release -y
    sudo dnf install ansible sshpass -y
    
  2. 配置Inventory文件
    创建hosts文件:

    [master]
    master ansible_host=192.168.1.10[workers]
    worker1 ansible_host=192.168.1.11
    worker2 ansible_host=192.168.1.12[k8s_cluster:children]
    master
    workers
    

三、编写Ansible Playbook

创建k8s-cluster.yml,内容如下:

- name: Deploy Kubernetes Clusterhosts: k8s_clusterbecome: yestasks:- name: Install containerdyum:name: containerd.iostate: present- name: Configure containerdcopy:src: containerd-config.tomldest: /etc/containerd/config.tomlnotify: restart containerd- name: Enable kernel modulesshell: |modprobe overlaymodprobe br_netfilterecho "overlay" >> /etc/modules-load.d/k8s.confecho "br_netfilter" >> /etc/modules-load.d/k8s.conf- name: Configure sysctlsysctl:name: "{{ item.key }}"value: "{{ item.value }}"state: presentreload: yeswith_items:- { key: net.bridge.bridge-nf-call-ip6tables, value: 1 }- { key: net.bridge.bridge-nf-call-iptables, value: 1 }- { key: net.ipv4.ip_forward, value: 1 }- name: Install kubeadm/kubelet/kubectlyum:name: "{{ item }}"state: presentwith_items:- kubeadm-1.24.2- kubelet-1.24.2- kubectl-1.24.2- name: Enable kubeletsystemd:name: kubeletenabled: yesstate: started- name: Initialize Kubernetes Masterhosts: masterbecome: yestasks:- name: Initialize clustershell: kubeadm init --pod-network-cidr=10.244.0.0/16register: init_output- name: Save join commandcopy:content: "{{ init_output.stdout }}"dest: /root/join-command.sh- name: Join Workershosts: workersbecome: yestasks:- name: Copy join commandfetch:src: /root/join-command.shdest: /tmp/join-command.shflat: yes- name: Join clustershell: "sh /tmp/join-command.sh"

四、执行部署

# 运行Playbook
ansible-playbook -i hosts k8s-cluster.yml

五、验证集群

# 在Master节点执行
kubectl get nodes  # 应显示所有节点状态为Ready
kubectl apply -f   # 安装网络插件

注意事项

  1. 离线部署:若环境无外网,需提前下载所有依赖包(如containerd、kubeadm二进制文件)并配置本地仓库。
  2. 架构支持:AlmaLinux默认支持x86_64,若需ARM64需调整镜像源和软件包。
  3. 证书配置:建议使用cfssl工具生成自定义证书,避免默认证书过期问题。

通过以上步骤,您可以在AlmaLinux上快速完成Kubernetes集群的自动化部署。若需更复杂的配置(如多Master高可用),可参考中的负载均衡方案。

相关文章:

AlmaLinux使用Ansible自动部署k8s集群

一、环境准备 节点规划(最低要求) 1台Master节点(4核/8GB内存)2台Worker节点(2核/4GB内存)1台Ansible控制机(可复用Master节点) 系统配置 # 所有节点执行 sudo hostnamectl set-hos…...

solidworks零件的绘制学习

1、拉伸凸台拉伸切除可以在一个零件中打孔,如下图: 2、旋转凸台配合旋转切除; 3、薄壁特征:在拉伸凸台,旋转凸台中都有;在一个面中画完草图,然后选择拉伸凸台或旋转凸台,里面就会出…...

DeepSeek-V3模型底层架构的核心技术一(多Token预测(MTP)技术)

一、DeepSeek-V3的框架结构 DeepSeek-V3的框架结构基于三大核心技术构建:多头潜在注意力(MLA)、DeepSeekMoE架构和多token预测(MTP)。这些创新使得模型在处理长序列、平衡计算负载以及生成连贯文本方面表现出色。 1. 基础架构 DeepSeek-V3的基础架构仍然基于Transformer框…...

llama.cpp部署 DeepSeek-R1 模型

一、llama.cpp 介绍 使用纯 C/C推理 Meta 的LLaMA模型(及其他模型)。主要目标llama.cpp是在各种硬件(本地和云端)上以最少的设置和最先进的性能实现 LLM 推理。纯 C/C 实现,无任何依赖项Apple 芯片是一流的——通过 A…...

Spring源码分析のBean创建流程(上)

文章目录 前言一、preInstantiateSingletons1.1、getMergedLocalBeanDefinition1.2、isFactoryBean 二、getBean 前言 原生Spring在refresh方法中,会在finishBeanFactoryInitialization:preInstantiateSingletons方法中直接创建所有非懒加载的单例Bean。…...

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_time_update函数

定义在 src\core\ngx_times.c 中 ngx_time_init 函数后面 void ngx_time_update(void) {u_char *p0, *p1, *p2, *p3, *p4;ngx_tm_t tm, gmt;time_t sec;ngx_uint_t msec;ngx_time_t *tp;struct timeval tv;if (!ngx_trylock(&ngx…...

DeepSeek笔记(二):DeepSeek局域网访问

如果有多台电脑,可以通过远程访问,实现在局域网环境下多台电脑共享使用DeepSeek模型。在本笔记中,首先介绍设置局域网多台电脑访问DeepSeek-R1模型。 一、启动Ollama局域网访问 1.配置环境变量 此处本人的操作系统是Windows11,…...

基于大数据的全国热门旅游景点数据分析系统的设计与实现

【大数据】基于大数据的全国热门旅游景点数据分析系统的设计与实现(完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 该系统主要包括登录注册、系统首页、图表分析、数据管理和个人信息五大功能模…...

【Unity3D】Jenkins Pipeline流水线自动构建Apk

目录 一、准备阶段 二、创建Pipeline流水线项目 三、注意事项 四、扩展 1、Pipeline添加SVN更新项目Stage阶段 一、准备阶段 1、安装tomcat 10.0.5 Index of apache-local/tomcat/tomcat-10 2、安装jdk 17 Java Archive Downloads - Java SE 17.0.13 and later 3、…...

10G EPON光模块

一、10G EPON对称光模块 工作模式:上行突发接收、下行连续发射。 工作原理:当需要发送信号时,系统信号通过光模块的电接口把信号传送到驱动芯片,芯片处理后,驱动激光器发出调制光信号,经光纤发到远端&…...

Edge浏览器翻译|自动翻译设置

文章目录 Edge浏览器翻译|自动翻译设置右键翻译显示原文 Edge浏览器翻译|自动翻译设置 在 Microsoft Edge 浏览器中使用 Microsoft Translator - Microsoft 支持 进入浏览器设置,从首选语言列表中移除多余的语言设置 网站将以受支持语言列表中的第一种语言进行显示。若要重新…...

基于微信小程序的场地预约设计与实现

第3章 系统设计 3.1系统设计目标 本系统的实现可以帮助体育馆场地信息的管理。帮助管理员对注册用户管理以及用户预约管理。同时可以帮助用户进行场地预约。本系统可以实现用户足不出户预约到需要的场地,为用户提供场地信息了解的平台。 3.2系统功能结构图 本系统的…...

腾讯发布混元-3D 2.0: 首个开源高质3D-DiT生成大模型

在之前的文章中已经和大家介绍过腾讯HunYuan-3D 1.0,感兴趣的小伙伴可以点击下面链接阅读~ HunYuan-3D 是首个开源高质3D-DiT生成大模型,几何与纹理解藕生成,一键将创意具象化。 2.0模型架构图及介绍 2.0模型将几何和纹理生成解耦&#xff0…...

计算机性能与网络体系结构探讨 —— 基于《计算机网络》谢希仁第八版

(꒪ꇴ꒪ ),Hello我是祐言QAQ我的博客主页:C/C语言,数据结构,Linux基础,ARM开发板,网络编程等领域UP🌍快上🚘,一起学习,让我们成为一个强大的攻城狮&#xff0…...

C# 控制台相关 API 与随机数API

C# 控制台相关 API 与随机数API 控制台输入输出 功能说明 Console.WriteLine(string): 输出字符串并换行Console.Write(string, string): 输出字符串不换行Console.ReadLine(): 等待用户输入并返回字符串Console.ReadKey(bool).KeyChar: 读取按键,指定是否显示输…...

Git的常用命令及常见问题处理方法

目录 一、介绍二、常用 Git 命令1. 配置用户信息2. 初始化仓库3. 克隆远程仓库4. 查看状态5. 添加文件到暂存区6. 提交更改7. 查看提交历史8. 查看文件差异9. 查看分支10. 切换分支11. 合并分支12. 处理冲突13. 远程操作14. 标签管理15. 撤销操作 三、常见问题处理方法1. 无法推…...

基于vue3实现的课堂点名程序

设计思路 采用vue3实现的课堂点名程序&#xff0c;模拟课堂座位布局&#xff0c;点击开始点名按钮后&#xff0c;一朵鲜花在座位间传递&#xff0c;直到点击结束点名按钮&#xff0c;鲜花停留的座位被点名。 课堂点名 座位组件 seat.vue <script setup>//组合式APIimpo…...

kkFileView二开之pdf转图片接口

kkFileView二开之Pdf转图片接口 kkFileView二开系列文章&#xff1a;1 kkFileView源码下载及编译2 Pdf转图片接口2.1 背景2.2 分析2.2 接口开发2.2.1 编写Pdf转图片方法2.2.2 编写转换接口 2.3 接口测试2.3.1 Pdf文件准备2.3.2 pdf2Image 3 部署 kkFileView二开系列文章&#x…...

神经网络常见激活函数 9-CELU函数

文章目录 CELU函数导函数函数和导函数图像优缺点pytorch中的CELU函数tensorflow 中的CELU函数 CELU 连续可微指数线性单元&#xff1a;CELU&#xff08;Continuously Differentiable Exponential Linear Unit&#xff09;,是一种连续可导的激活函数&#xff0c;结合了 ELU 和 …...

什么是网关?网关有什么作用?API网关的主要功能,SpringCloud可以选择有哪些API网关?什么是限流算法?网关如何实现限流?一篇文章读懂网关的前世今生

1、什么是网关&#xff1f; API网关&#xff08;API Gateway&#xff09;是一种中间层服务器&#xff0c;用于集中管理&#xff0c;保护和路由对后端服务的访问。它充当了客户端与后端服务之间的入口点&#xff0c;提供了一组统一的接口管理和控制API的访问。 2、网关示意图 3…...

OpenCV机器学习(1)人工神经网络 - 多层感知器类cv::ml::ANN_MLP

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::ml::ANN_MLP 是 OpenCV 库中的一部分&#xff0c;用于实现人工神经网络 - 多层感知器&#xff08;Artificial Neural Network - Multi-Layer…...

DeepSeek告别服务器繁忙

原文地址&#xff1a;http://shen.iwiki.fun/2025/02/09/free-deepseek/ 博客地址&#xff1a;http://shen.iwiki.fun 一、申请API 1、硅基流动 免费额度&#xff1a;14元 注&#xff1a;平台 2000 万 Tokens 特指 Qwen2.5-14B-Instruct 模型单价下的数量&#xff0c;实际到账…...

线性代数中的正交和标准正交向量

在线性代数中&#xff0c;理解正交向量和正交向量至关重要&#xff0c;尤其是对于机器学习中的应用。这篇博文将简化这些概念&#xff0c;而不会太深入地深入研究复杂的数学。 正交向量 如果两个向量的点积等于零&#xff0c;则认为这两个向量是正交的。但点积到底是什么呢&am…...

从安装软件到flask框架搭建可视化大屏(一)——创建一个flask页面,零基础也可以学会

1.第一步&#xff1a;安装软件 Flask是一个轻量级Web应用框架&#xff0c;用python代码编写&#xff0c;简单方便应用。 如何安装pycharm_pycharm只能安装在c盘吗-CSDN博客 Pycharm分为专业版和社区版&#xff0c;是python的主流工具 如何安装Anaconda_如何安装anacoda csdn-…...

python opencv基础使用总结

1.安装opencv库&#xff1a;pip install opencv-python 2.基础使用范例 import cv2 #图片的基本操作#1.读取一张图片 参数 1&#xff1a;图片的文件名如果图片放在当前文件夹下&#xff0c;直接写文件名就行&#xff0c;如lena.jpg否则需要给出绝对路径&#xff0c;如D:\Ope…...

【已解决】TypeError: AsyncConnectionPool.__init__(), new install bug, httpx==0.24.1

1&#xff0c;参考社区链接&#xff0c;首先降低gradio版本&#xff0c;降低到4以下&#xff0c;但是也不能降太低&#xff0c;也不能太高&#xff0c;要适中&#xff0c;推荐版本3.39.0 pip install gradio3.39.0 2&#xff0c;下载正确的httpx版本 参考社区链接&#xff0…...

react中如何获取真实的dom

在 React 中&#xff0c;获取真实的 DOM 元素通常通过 ref 来实现。ref 是一个特殊的属性&#xff0c;用于引用组件或 DOM 元素的实例。你可以通过 ref 获取到组件的真实 DOM 元素或组件实例。 1. 函数组件中的 useRef 在函数组件中&#xff0c;获取 DOM 元素的引用需要使用 …...

HTTP协议 (爬虫)

本质上 协议就是两个计算机协商好相互沟通的方式 计算机传输的数据是0or1 需要协商好数据的规则。HTTP协议是传输网站相关的东西的。 HTTP把一条消息分成三个部分 请求&#xff1a; 请求行&#xff1a;请求方式&#xff08;get、post&#xff09; 请求URL 协议 请求头&a…...

Python elasticsearch客户端连接常见问题整理

python 访问 elasticsearch 在python语言中&#xff0c;我们一般使用 pip install elasticsearch 软件包&#xff0c;来访问es服务器。 正确用法 本地安装elasticsearch时&#xff0c;应指定与服务端相同的大版本号&#xff1a; pip install elasticsearch7.17.0然后就可以…...

清华大学KVCache.AI团队联合趋境科技联合的KTransformers开源项目为什么那么厉害

KTransformers是一个由清华大学KVAV.AI团队开发的开源项目&#xff0c;旨在优化大语言模型&#xff08;LLM&#xff09;的推理性能&#xff0c;特别是在有限显存资源下运行大型模型。以下是KTransformers的详细介绍&#xff1a; 1. 核心特点 高性能优化&#xff1a;KTransfor…...