傻瓜式网站制作软件/免费做网站

傻瓜式网站制作软件,免费做网站,wordpress前端投稿插件,便宜建网站目录 前言1 K8S集群节点准备1.1 主机列表1.2 kubespray节点python3及pip3准备1.2.1. 更新系统1.2.2. 安装依赖1.2.3. 下载Python 3.12源码1.2.4. 解压源码包1.2.5. 编译和安装Python1.2.6. 验证安装1.2.7. 设置Python 3.12为默认版本(可选)1.2.8. 安装pi…

目录

  • 前言
  • 1 K8S集群节点准备
    • 1.1 主机列表
    • 1.2 kubespray节点python3及pip3准备
      • 1.2.1. 更新系统
      • 1.2.2. 安装依赖
      • 1.2.3. 下载Python 3.12源码
      • 1.2.4. 解压源码包
      • 1.2.5. 编译和安装Python
      • 1.2.6. 验证安装
      • 1.2.7. 设置Python 3.12为默认版本(可选)
      • 1.2.8. 安装pip
      • 1.2.9. 验证pip
    • 1.3 kubespray源文件获取
    • 1.4 kubespray环境准备
    • 1.5 配置主机清单
    • 1.6 准备K8S集群配置文件
    • 1.7 准备k8s集群插件文件
    • 1.8 设置kubespray主机免密登录到其他集群主机
      • 1.8.1. 在kubespray主机生成ssh密钥
      • 1.8.2. 使用ssh-copy-id复制ssh密钥到k8s集群节点主机
      • 1.8.3. 在K8S集群节点添加sysops用户指行授权
    • 1.9 k8s集群主机安全设置
    • 1.10 k8s集群主机路由转发设置
    • 1.11 禁用swap分区
  • 2 k8s集群部署及可用性验证
    • 2.1 k8s集群部署
    • 2.2 查看集群节点的配置是否已就绪
    • 2.3 验证集群部署成功
  • 3 移除节点
  • 4 增加节点
  • 5 清理k8s集群

前言

Kubespray 是一个自由开源的工具,它提供了 Ansible 剧本(playbook) 来部署和管理 Kubernetes 集群。它旨在简化跨多个节点的 Kubernetes 集群的安装过程,允许用户快速轻松地部署和管理生产就绪的 Kubernetes 集群。

它支持一系列操作系统,包括 Ubuntu、CentOS、Rocky Linux 和 Red Hat Enterprise Linux(RHEL),它可以在各种平台上部署 Kubernetes,包括裸机、公共云和私有云。

1 K8S集群节点准备

1.1 主机列表

主机名称IP地址硬件配置主机角色
node1192.168.191.133/244C4G1Tmaster
node2192.168.191.129/244C4G1Tmaster
node3192.168.191.128/244C4G1Tmaster
node4192.168.191.130/244C4G1Tworker
node5192.168.191.132/244C4G1Tworker
kubespray192.168.191.131/244C4G1Tansible

所有的node节点均为centos9
在这里插入图片描述

1.2 kubespray节点python3及pip3准备

此操作只需要在 kubespary 节点!!!

1.2.1. 更新系统

首先,确保系统是最新的:

sudo dnf update -y

1.2.2. 安装依赖

安装编译Python所需的依赖包:

sudo dnf install -y gcc openssl-devel bzip2-devel libffi-devel zlib-devel ncurses-devel sqlite-devel readline-devel tk-devel xz-devel libuuid-devel

1.2.3. 下载Python 3.12源码

前往Python官网下载Python 3.12的源码包,或使用wget直接下载:

wget https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tgz

1.2.4. 解压源码包

解压下载的源码包:

tar -xvf Python-3.12.0.tgz

1.2.5. 编译和安装Python

进入解压后的目录并编译安装Python:

cd Python-3.12.0
./configure --enable-optimizations
make -j$(nproc)
sudo make altinstall

make altinstall 用于避免覆盖系统自带的Python 2.x或3.x版本。

1.2.6. 验证安装

安装完成后,验证Python 3.12是否安装成功:

python3.12 --version

1.2.7. 设置Python 3.12为默认版本(可选)

如果你希望将Python 3.12设置为默认的Python版本,可以更新alternatives

sudo alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.12 1
sudo alternatives --config python3

1.2.8. 安装pip

确保pip已安装:

python3.12 -m ensurepip --upgrade

1.2.9. 验证pip

验证pip是否安装成功:

pip3.12 --version

如果日志提醒升级pip也可以根据提示命令去升级到提示版本
下面是我kuberspray主机上的版本
在这里插入图片描述

1.3 kubespray源文件获取

此操作只需要在 kubespary 节点!!!

创建个空目录,我本地创建的目录叫workspace
在这里插入图片描述

在workspace下通过kubespray官网下载代码
在这里插入图片描述

下载完后查看目录
在这里插入图片描述
本篇部署是基于release-2.26这个版本部署的,所以切换到对应的版本

git checkout release-2.26
git branch

在这里插入图片描述

1.4 kubespray环境准备

此操作只需要在 kubespary 节点!!!

kubespray部署所需要的环境及配置说明在kubespray/requirements.txt这个文件下
在这里插入图片描述

使用pip进行下载

pip3 install -r requirements.txt

下载一定要注意报错!!确保所有的环境都成功安装!!

查看ansible是否安装成功,这个是重中之重!

ansible --version

在这里插入图片描述

1.5 配置主机清单

此操作只需要在 kubespary 节点!!!

inventory/sample这个文件夹是一个样例,我们拷贝一份叫mycluster,再进行配置

cp -rfp inventory/sample inventory/mycluster

声明集群ip,这里替换成你的master及node的节点ip

declare -a IPS=(192.168.191.133 192.168.191.129 192.168.191.128 192.168.191.130 192.168.191.132)

创建主机清单

CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]}

上面的命令会给我们生成配置到inventory/mycluster/hosts.yaml这个文件下,这个就是主机清单

[root@kubespray kubespray]# ls inventory/mycluster/
group_vars  inventory.ini  patches[root@kubespray kubespray]# CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]}DEBUG: Adding group all
DEBUG: Adding group kube_control_plane
DEBUG: Adding group kube_node
DEBUG: Adding group etcd
DEBUG: Adding group k8s_cluster
DEBUG: Adding group calico_rr
DEBUG: adding host node1 to group all
DEBUG: adding host node2 to group all
DEBUG: adding host node3 to group all
DEBUG: adding host node4 to group all
DEBUG: adding host node5 to group all
DEBUG: adding host node1 to group etcd
DEBUG: adding host node2 to group etcd
DEBUG: adding host node3 to group etcd
DEBUG: adding host node1 to group kube_control_plane
DEBUG: adding host node2 to group kube_control_plane
DEBUG: adding host node1 to group kube_node
DEBUG: adding host node2 to group kube_node
DEBUG: adding host node3 to group kube_node
DEBUG: adding host node4 to group kube_node
DEBUG: adding host node5 to group kube_node
[root@kubespray kubespray]# ls inventory/mycluster/
group_vars  hosts.yaml  inventory.ini  patches

这个清单还不正确,让我们查看并修改一下

vim inventory/mycluster/hosts.yaml

在这里插入图片描述
核对一下master节点和work节点是否符合要求,不符合进行对应的调整

1.6 准备K8S集群配置文件

此操作只需要在 kubespary 节点!!!

修改k8s的集群的配置文件

vim inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml

在这里插入图片描述
这里有一些集群的配置,确保这里的版本是v1.28.0,如果不是请修改为该版本,因为我们使用的是kubespray的release-2.26版本

1.7 准备k8s集群插件文件

此操作只需要在 kubespary 节点!!!

要启用 Kuberenetes 仪表板和入口控制器等插件,请在文件inventory/mycluster/group_vars/k8s_cluster/addons.yml 中将参数设置为已启用

根据业务自身去进行修改

vim inventory/mycluster/group_vars/k8s_cluster/addons.yml

在这里插入图片描述
我这里只开启了helm和dashboard

1.8 设置kubespray主机免密登录到其他集群主机

1.8.1. 在kubespray主机生成ssh密钥

[root@kubespray ~]# ssh-keygen

1.8.2. 使用ssh-copy-id复制ssh密钥到k8s集群节点主机

下面的过程会有页面交互,输入yes后还会验证目标主机的密码,输入即可

[root@kubespray ~]# ssh-copy-id root@192.168.191.133
[root@kubespray ~]# ssh-copy-id root@192.168.191.129
[root@kubespray ~]# ssh-copy-id root@192.168.191.128
[root@kubespray ~]# ssh-copy-id root@192.168.191.130
[root@kubespray ~]# ssh-copy-id root@192.168.191.132

成功后直接ssh任何集群主机无需密码登录即可,这一步是保证ansible成功部署的关键!
在这里插入图片描述

1.8.3. 在K8S集群节点添加sysops用户指行授权

⬇️此操作需要在集群中的所有节点!!!

echo "sysops ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/sysops

1.9 k8s集群主机安全设置

此操作只需要在 kubespary 节点!!!

ansible all -i inventory/mycluster/hosts.yaml -m shell -a "systemctl stop firewalld && systemctl disable firewalld"

1.10 k8s集群主机路由转发设置

ansible all -i inventory/mycluster/hosts.yaml -m shell -a "echo 'net.ipv4.ip_forward=1' | tee -a /etc/sysctl.conf"

1.11 禁用swap分区

ansible all -i inventory/mycluster/hosts.yaml -m shell -a "sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab &&  swapoff -a"

以上就是所有的环境准备了,只有一步需要在集群节点操作,其他的都在kubespray节点上操作即可!!!

2 k8s集群部署及可用性验证

2.1 k8s集群部署

建议接下来的操作可以开科学上网!!!

执行部署集群的代码

ansible-playbook -i inventory/mycluster/hosts.yaml --become --become-user=root cluster.yml

如果上面的部署失败了可以重复执行,如果重复报错相同错误可以在上面的命令后面加-vvv可以打印详细报错。不明白的就复制到ai里!!

部署成功应该是如下这样,没有红色的报错,且failed=0
在这里插入图片描述

2.2 查看集群节点的配置是否已就绪

我们现在登录到集群节点执行获取节点状态的命令

kubectl get nodes

在这里插入图片描述
查看kube配置

kubectl config view

在这里插入图片描述
可以看到集群配置不正确

kubespray生成了一份配置没有替换,我们手动执行一下

mkdir -p $HOME/.kube
sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

再去查看kube配置
在这里插入图片描述

2.3 验证集群部署成功

查看node节点

kubectl get nodes

在这里插入图片描述

3 移除节点

不用修改hosts.yaml文件

[root@kubespray kubespray]# ansible-playbook -i inventory/mycluster/hosts.yaml --become --become-user=root remove-node.yml -v -b --extra-vars "node=node5"

4 增加节点

需要修改hosts.yaml文件,在inventory/mycluster/hosts.yaml中添加新增节点信息

[root@kubespray kubespray]# cat inventory/mycluster/hosts.yaml
all:hosts:node1:ansible_host: 192.168.10.160ip: 192.168.10.160access_ip: 192.168.10.160node2:ansible_host: 192.168.10.161ip: 192.168.10.161access_ip: 192.168.10.161node3:ansible_host: 192.168.10.162ip: 192.168.10.162access_ip: 192.168.10.162node4:  添加ansible_host: 192.168.10.163ip: 192.168.10.163access_ip: 192.168.10.163node5:  添加ansible_host: 192.168.10.164ip: 192.168.10.164access_ip: 192.168.10.164children:kube_control_plane:hosts:node1:node2:node3:kube_node:hosts:node4:  添加node5:  添加etcd:hosts:node1:node2:node3:k8s_cluster:children:kube_control_plane:kube_node:calico_rr:hosts: {}
[root@kubespray kubespray]# ansible-playbook -i inventory/mycluster/hosts.yaml --become --become-user=root scale.yml -v -b

5 清理k8s集群

[root@kubespray ~]# cd kubespray/
[root@kubespray kubespray]# ansible-playbook -i inventory/mycluster/hosts.yaml  --become --become-user=root reset.yml

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/71526.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

审批流AntV框架蚂蚁数据可视化X6饼图(注释详尽)

大家好,这次使用的是AntV的蚂蚁数据可视化X6框架,类似于审批流的场景等,代码如下: X6框架参考网址:https://x6.antv.vision/zh/examples/showcase/practices#bpmn 可以进入该网址,直接复制下方代码进行调试…

用于管理 Elasticsearch Serverless 项目的 AI Agent

作者:来自 Elastic Fram Souza 由自然语言驱动的 AI 代理,可轻松管理 Elasticsearch Serverless 项目 - 支持项目创建、删除和状态检查。 这个小型命令行工具让你可以用简单的英语管理你的无服务器 Elasticsearch 项目。它通过AI(这里是 Ope…

通过计费集成和警报监控 Elasticsearch Service 成本

作者:来自 Elastic Alexis Charveriat 使用 Elasticsearch 服务计费集成来跟踪、定制和提醒 Elasticsearch 服务费用。 监控和管理你的Elasticsearch服务(ESS)使用情况和成本对高效运营至关重要。 Elasticsearch服务计费集成提供了一种简化的…

【第12节】C++设计模式(结构型模式)-Proxy(代理)模式

一、问题背景 使用 Proxy 模式优化对象访问 在某些情况下,直接访问对象可能会导致性能问题或安全性问题。Proxy 模式(代理模式)通过引入一个代理对象来控制对原始对象的访问,从而解决这些问题。以下是几种典型的应用场景&#xf…

Python-07PDF转Word

2025-03-04-PDF转Word DeepSeek等大模型从来都不是简单的写一个静态博客这么肤浅(太多博主都只讲这个内容了)借助全网大神的奇思妙想,拓展我狭隘的思维边界。 文章目录 2025-03-04-PDF转Word [toc]1-参考网址2-学习要点3-核心逻辑4-核心代码 …

XTDrone+Mavros+Gazebo仿真——配置与控制不同的无人机

参考资料为XTDrone官方文档: 配置与控制不同的无人机 语雀XTDrone目前支持多旋翼飞行器(multiroto...https://www.yuque.com/xtdrone/manual_cn/vehicle_config# 1、修改无人机机型为solo 以outdoor3.launch为例,讲解如何配置不同的机型 …

快速熟悉JavaScript

目录 1.js的基本认知 2.js的基本语法 2.1 变量的声明 三个关键字的区别 2.2数据类型 2.2.1 基本数据类型 2.2.2 复杂数据类型 2.3对象的属性和方法 2.3.1属性 2.3.2访问方式 2.4.3动态操作 2.4.4方法 2.4字符串的常用属性和方法 2.5运算符 2.6逻辑控制语句 2.7函…

perl初试

我手头有一个脚本,用于从blastp序列比对的结果文件中,进行文本处理, 获取序列比对最优的hit记录 #!/usr/bin/perl -w use strict;my ($blast_out) ARGV; my $usage "This script is to get the best hit from blast output file wit…

unity6 打包webgl注意事项

webgl使用资源需要异步加载 使用localization插件时要注意,webgl不支持WaitForCompletion,LocalizationSettings.InitializationOperation和LocalizationSettings.StringDatabase.GetTable都不能用 web里想要看到具体的报错信息调试开启这两个&#xf…

Three.js 入门(基础材质、贴图、纹理、环境、遮蔽光、透明度、高光贴图)

本篇主要学习内容 : three常用的几种材质环境贴图、贴图、环境光、遮蔽光、透明度、高光贴图(纹理贴图) 点赞 关注 收藏 学会了 1.three常用的几种材质 1.1) 基础网格材质MeshBasicMaterial、漫反射网格材质MeshLambertMaterial、高光…

【大模型安全】大模型的技术风险

【大模型安全】大模型的技术风险 1.DDoS攻击2.常见的传统网络攻击方式3.恶意意图的识别4.AI生成虚假信息传播5.利用AI进行黑客攻击6.模型对抗攻击7.后门攻击8.Prompt攻击9.数据投毒攻击10.模型窃取攻击11.数据窃取攻击 1.DDoS攻击 2023年11月9日凌晨,OpenAI在官网公…

C++学习之路,从0到精通的征途:入门基础

目录 一.C的第一个程序 二.命名空间 1.namespace的价值 2.命名空间的定义 3.命名空间使用 三.C的输入与输出 1.<iostream> 2.流 3.std(standard) 四.缺省参数 1.缺省参数的定义 2.全缺省/半缺省 3.声明与定义 ​五.函数重载 1.参数个数不同 2.参数类型不…

本地YARN集群部署

请先完成HDFS的前置部署&#xff0c;部署方式可查看:本地部署HDFS集群https://blog.csdn.net/m0_73641796/article/details/145998092?spm1001.2014.3001.5502 部署说明 组件配置文件启动进程备注Hadoop HDFS需修改 需启动: NameNode作为主节点 DataNode作为从节点 Secondary…

UnrealEngine UE5 可视化 从地球观察火星 金星 土星 运动轨迹

视频参考&#xff1a;https://www.bilibili.com/video/BV1KpXSYdEdo/ 从地球观察土星的运动轨迹 从地球观察火星 轨迹 从地球观察金星的运动轨迹

通用信息抽取大模型PP-UIE开源发布,强化零样本学习与长文本抽取能力,全面适配多场景任务

背景与简介 信息抽取&#xff08;information extraction&#xff09;是指&#xff0c;从非结构化或半结构化数据&#xff08;如自然语言文本&#xff09;中自动识别、提取并组织出结构化信息。通常包含多个子任务&#xff0c;例如&#xff1a;命名实体识别&#xff08;NER&am…

Matlab实现车牌识别

车牌识别技术作为现代智能交通系统、安防监控以及诸多车辆管理应用场景中的关键环节&#xff0c;正发挥着日益重要的作用&#xff0c;它能够自动、快速且精准地从车辆图像或视频流中提取车牌信息&#xff0c;实现车辆身份的智能化识别。 技术原理 车牌识别主要依托于图像处理、…

基于Asp.net的零食购物商城网站

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

Ubuntu20.04双系统安装及软件安装(十一):向日葵远程软件

Ubuntu20.04双系统安装及软件安装&#xff08;十一&#xff09;&#xff1a;向日葵远程软件 打开向日葵远程官网&#xff0c;下载图形版本&#xff1a; 在下载目录下打开终端&#xff0c;执行&#xff1a; sudo dpkg -i SunloginClient(按tab键自动补全)出现报错&#xff1a; …

快速生成viso流程图图片形式

我们在写详细设计文档的过程中总会不可避免的涉及到时序图或者流程图的绘制&#xff0c;viso这个软件大部分技术人员都会使用&#xff0c;但是想要画的好看&#xff0c;画的科学还是比较难的&#xff0c;现在我总结一套比较好的方法可以生成好看科学的viso图(图片格式)。主要思…

C++设计一:日期类Date实现

一、引言与概述 1 引言 日期操作是软件开发中的常见需求&#xff0c;如日程管理、数据统计等场景均需处理日期的比较、偏移及合法性校验。为简化此类操作&#xff0c;本文设计了一个高效且类型安全的C日期类Date。 该类通过构造函数内嵌合法性检查&#xff0c;确保对象初始状…