AI大模型学习九:‌Sealos cloud+k8s云操作系统私有化一键安装脚本部署完美教程

news2025/4/19 14:22:56

一、说明

Sealos‌是一款基于Kubernetes(K8s)的云操作系统发行版,它将K8s以及常见的分布式应用如Docker、Dashboard、Ingress等进行了集成和封装,使得用户可以在不深入了解复杂的K8s底层原理的情况下,快速搭建起一个功能完备的云原生应用运行平台‌。Sealos具有简单易用、快速部署、高度可定制化等优点,适用于开发测试环境的快速搭建以及生产环境的稳定部署‌

二、 准备工作

 1.服务器配置要求

  • 推荐使用奇数台 Master 节点和若干 Node 节点
  • 每个集群节点应该有不同的主机名,不同的ip
  • 所有节点的时间需要同步

有VMware Workstation 里的VMware tools 开启时自动同主机同步

  • 建议使用干净的操作系统来创建集群。不要自己装 Docker!
  • 支持大多数 Linux 发行版,例如:Ubuntu、Debian、CentOS、Rocky linux。

Ubuntu 22.04.5系统

  • 内核版本 :5.4 及以上

满足

2. 网络要求

  • 所有节点之间网络互通
  • Master 节点可以通过 SSH 免密登陆到其他节点
  • 所有节点可以通过 Ping 通信
  • 需要在 Kubernetes 集群的第一个 Master 节点上执行脚本,目前集群外的节点不支持集群安装

3. 域名要求

  • 需要一个域名用于访问 Sealos 及相关服务
  • 如果您没有域名,可以使用 nip.io 提供的免费域名服务

4. 证书

  • Sealos 需要使用证书来保证通信安全,默认在您不提供证书的情况下我们会使用 cert-manager 来自动签发证书
  • 如果您能提供证书,证书需要解析下列域名 (假设您提供的域名为:http://cloud.example.io):

*.cloud.example.io

cloud.example.io

三、初始化系统

1、安装并启动全部ubuntu 虚拟机

master:8c+8g

node1:2c+2g

node2:2c+2g

我开始就是内存小了,直接安装被系统杀死了,搞了半天才搞明白

echo "192.168.1.120 single" | tee -a /etc/hosts

2、 禁用ufw(测试方便)

#禁禁用ufw用ufw

systemctl stop ufw && systemctl disable ufw

 3、SSH免密登录(在Single节点执行)

ssh-keygen -t rsa
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.101
这里给自己copy一个

ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.111
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.112

4、初始化所有节点

# 所有节点执行
apt update && apt install -y conntrack ipvsadm ipset socat

modprobe br_netfilter && echo "br_netfilter" | tee /etc/modules-load.d/br_netfilter.conf

sysctl --system

5、安装其它 

apt-get install jq

四、域名解决方案

由于没有公网域名,也不想自定义域名,选择直接使用 nip.io 提供的免费域名服务。nip.io 是一个免费的通配符 DNS 服务,它可以将动态分配的 IP 地址映射到一个固定的子域名上,特别适合用于本地开发环境。具体的工作原理为:

您可以使用任何 IP 地址作为 nip.io 子域名的一部分,而 nip.io 会将它解析回相应的 IP 地址。例如,如果你有一个内网 IP 地址 192.168.1.10,你可以使用 192.168.1.10.nip.io 作为域名,所有向这个域名发送的请求都会被解析到 192.168.1.10 这个 IP 地址上。这样就无需修改本地 hosts 文件,也不需要搭建内网 DNS 服务,直接通过这个域名就能访问内网服务了。

 五、部署

1、下载一键安装脚本

# 下载install.sh
curl -sfL https://gh-proxy.com/https://github.com/labring/sealos/blob/v5.0.1/scripts/cloud/install.sh -o install.sh

wget https://github.com/labring/sealos/blob/v5.0.1/scripts/cloud/install.sh

修改install.sh 解决安装过程中无法下载docker.io的镜像的问题


execute_commands() {
    [[ $k8s_installed == "y" ]] || (get_prompt "k8s_installation" && sealos apply -f $CLOUD_DIR/Clusterfile)
	modify_containerd_config
    command -v helm > /dev/null 2>&1 || sealos run "${image_registry}/${image_repository}/helm:v${helm_version#v:-3.14.1}"
    [[ $k8s_ready == "y" ]] || (get_prompt "cilium_requirement" && sealos run "${image_registry}/${image_repository}/cilium:v${cilium_version#v:-1.15.8}" --env ExtraValues="ipam.mode=kubernetes")
    wait_cluster_ready
	
	# containerd配置用于下载docker.io
    # 参考 /etc/containerd/certs.d/sealos.hub:5000/hosts.toml
    echo "modify_containerd_config start"
    mkdir -p /etc/containerd/certs.d/docker.io
    touch /etc/containerd/certs.d/docker.io/hosts.toml

    cat>/etc/containerd/certs.d/docker.io/hosts.toml<<EOF
server = "https://docker.io"

[host."https://docker.m.daocloud.io"]
  capabilities = ["pull", "resolve"]
[host."https://dockerproxy.com/"]
  capabilities = ["pull", "resolve"]
EOF

    systemctl restart containerd
    echo "modify_containerd_config end"
	
    sealos run "${image_registry}/${image_repository}/cert-manager:v${cert_manager_version#v:-1.14.6}"
    sealos run "${image_registry}/${image_repository}/openebs:v${openebs_version#v:-3.10.0}"
    sealos run "${image_registry}/${image_repository}/metrics-server:v${metrics_server_version#v:-0.6.4}"

2、一键安装(单节点安装)

# 运行脚本
bash install.sh \
--image-registry=registry.cn-shanghai.aliyuncs.com \
--proxy-prefix=https://gh-proxy.com \
--cloud-version=v5.0.1 \
# --debug

 ​​​​

单节点安装选择,

请输入 Master IP (单节点安装可输入回车跳过该步骤; 多个 Master 节点使用逗号分隔, 例: 192.168.0.1,192.168.0.2,192.168.0.3):回车就是单节点

 

3、删除

# 清理
sealos reset

#下面是是清除sealos reset删不掉的文件
pkill -9 kubelet
pkill -9 etcd
pkill -9 containerd

rm -rf /etc/kubernetes/
rm -rf /var/lib/kubelet/
rm -rf /var/lib/etcd/
rm -rf /etc/containerd/
rm -rf $HOME/.kube/
rm -rf /var/lib/containerd/*
rm -rf /run/containerd/*
rm -rf /etc/cni/net.d/
rm -rf /var/run/containerd/*
ip link delete cni0 2>/dev/null
ip link delete flannel.1 2>/dev/null
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
umount $(mount | grep kubelet | awk '{print $3}') 2>/dev/null

六、测试

 Sealos cloud login info:
Cloud Version: v5.0.1
URL: https://192.168.1.200.nip.io
admin Username: admin
admin Password: sealos2023 

# 查看 Kubernetes 集群中的所有节点信息
kubectl get nodes

NAME     STATUS   ROLES           AGE   VERSION
single   Ready    control-plane   10h   v1.28.11

#-o wide 选项会显示更多的信息,比如节点的内部IP、外部IP、操作系统等
kubectl get nodes -o wide
root@single:~# kubectl get nodes -o wide
NAME     STATUS   ROLES           AGE   VERSION    INTERNAL-IP     EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION       CONTAINER-RUNTIME
single   Ready    control-plane   10h   v1.28.11   192.168.1.200   <none>        Ubuntu 22.04.5 LTS   5.15.0-136-generic   containerd://1.7.20

#需要更详细的节点信息,可以查看特定节点的描述:
kubectl describe node <node-name>

sealos reset

 bash install.sh \
--image-registry=registry.cn-shanghai.aliyuncs.com \
--proxy-prefix=https://gh-proxy.com \
--cloud-version=v5.0.1

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

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

相关文章

详解关于VS配置好Qt环境之后但无法打开ui界面

目录 找到Qt安装目录中designer.exe的路径 找到vs中的解决方案资源管理器 右键ui文件&#xff0c;找到打开方式 点击添加 然后把前面designer.exe的路径填到程序栏中&#xff0c;点击确定 然后设置为默认值&#xff0c;并点击确定 当在vs中配置好Qt环境之后&#xff0c;但…

【深度学习与大模型基础】第9章-条件概率以及条件概率的链式法则

简单理解条件概率 条件概率就是在已知某件事发生的情况下&#xff0c;另一件事发生的概率。用数学符号表示就是&#xff1a; P(A|B) 在B发生的前提下&#xff0c;A发生的概率。 计算机例子&#xff1a;垃圾邮件过滤 假设你写了一个程序来自动判断邮件是否是垃圾邮件&#xf…

STM32-FreeRTOS的详细配置

配置FreeRTOS 原文链接&#xff1a;https://ydamooc.github.io/posts/c9defcd/ 1.1 下载FreeRTOS 打开FreeRTOS官网&#xff1a;https://www.freertos.org/ 点击下载&#xff0c;并且选择"FreeRTOS 202212.01"版本&#xff0c;再点击Download按钮下载官方的资源包…

视觉自回归图像生成:基于多模态大模型的万字深度梳理

目前利用多模态大模型进行图像生成主要有以下两种形式&#xff1a; LLM作为condtioner&#xff1a;利用MLLM依据用户输入的text prompt来生成条件信息&#xff0c;条件信息被注入到下游生成模型进行更精细化的生成控制。这种形式通常需要外接一个额外专门的多模态生成模型&…

openssh离线一键升级脚本分享(含安装包)

查看当前的版本 [rootmyoracle ~]#ssh -V相关安装包下载地址 openssh下载地址&#xff1a;http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssl下载地址&#xff1a;https://www.openssl.org/source/zlib下载地址&#xff1a;http://www.zlib.net/今天演示从7.4升级…

音视频之H.265/HEVC预测编码

H.265/HEVC系列文章&#xff1a; 1、音视频之H.265/HEVC编码框架及编码视频格式 2、音视频之H.265码流分析及解析 3、音视频之H.265/HEVC预测编码 预测编码是视频编码中的核心技术之一。对于视频信号来说&#xff0c;一幅图像内邻近像素之间有着较强的空间相关性,相邻图像之…

Python异步编程入门:Async/Await实战详解

引言 在当今高并发的应用场景下&#xff0c;传统的同步编程模式逐渐暴露出性能瓶颈。Python通过asyncio模块和async/await语法为开发者提供了原生的异步编程支持。本文将手把手带你理解异步编程的核心概念&#xff0c;并通过实际代码案例演示如何用异步爬虫提升10倍效率&#…

设计模式每日硬核训练 Day 13:桥接模式(Bridge Pattern)完整讲解与实战应用

&#x1f504; 回顾 Day 12&#xff1a;装饰器模式小结 在 Day 12 中&#xff0c;我们学习了装饰器模式&#xff08;Decorator Pattern&#xff09;&#xff1a; 强调在不改变原类结构的前提下&#xff0c;动态为对象增强功能。通过“包装对象”实现运行时组合&#xff0c;支…

库洛游戏一面+二面

目录 一面 1. ArrayList和LinkedList的区别&#xff0c;就是我在插入和删除的时候他们在时间复杂度上有什么区别 2. hashmap在java的底层是怎么实现的 3. 红黑树的实现原理 4. 红黑树的特点 5. 为什么红黑树比链表查询速度快 6. 在java中字符串的操作方式有几种 7. Stri…

XSS攻击(反射型、存储型、dom型、PDF、SWF、SVG)

一、XSS攻击是什么 XSS是恶意攻击者往 Web 页面里插入恶意可执行网页脚本代码&#xff0c;当用户浏览该页之时&#xff0c;嵌入其中 Web 里面的脚本代码会被执行&#xff0c;从而可以达到攻击者盗取用户信息或其他侵犯用户安全隐私的目的。 二、XSS分类 反射型XSS 常见情况是…

C复习(主要复习)

指针和数组 指针数组是一个数组&#xff0c;数组的每个元素都是指针。它适用于需要存储多个指针的场景&#xff0c;如字符串数组。数组指针是一个指针&#xff0c;指向一个数组。它适用于需要传递整个数组给函数或处理多维数组的场景。 函数指针&#xff1a;函数指针的定义需要…

Ubuntu24.04搭建ESP8266_RTOS_SDK V3.4开发环境

【本文发布于https://blog.csdn.net/Stack_/article/details/147194686&#xff0c;未经允许不得转载&#xff0c;转载须注明出处】 需要有Linux使用基础&#xff0c;自行准备 1、VM17 Pro &#xff08;自行搜索教程安装&#xff09; 2、ubuntu-24.04-desktop-amd64 &#xff0…

matlab求和∑函数方程编程?

matlab求和∑函数方程编程&#xff1f; 一 题目&#xff1a;求下列函数方程式的和 二&#xff1a;代码如下&#xff1a; >> sum_result 0; % 初始化求和变量 for x 1:10 % 设…

基于Java+MySQL实现的(Web)科研资讯推送系统

科研资讯推送系统 技术选型 核心框架&#xff1a;SpringBoot 数据库层&#xff1a;springdatajpa 安全框架&#xff1a;Shiro 数据库连接池&#xff1a;Druid 缓存&#xff1a;Ehcache 部署 阿里云学生机:ecs.n4.small Tomcat:9.0 JDK:1.8 数据库:MySQL8.0 操作系统:CentOS…

PHP弱类型hash比较缺陷

目录 0x00 漏洞原因 0x01 利用方法 0x02 [BJDCTF2020]Easy MD5 1 利用md5($password,true)实现SQL注入 PHP md5弱类型比较 数组绕过 0x00 漏洞原因 1、在进行比较的时候&#xff0c;会先将两边的变量类型转化成相同的&#xff0c;再进行比较 2、0e在比较的时候会将其认…

​asm汇编源代码之-汉字点阵字库显示程序源代码下载​

汉字点阵字库显示程序 源代码下载 文本模式下显示16x16点阵汉字库内容的程序(标准16x16字库需要使用CHGHZK转换过后才能使用本程序正常显示) 本程序需要调用file.asm和string.asm中的子程序,所以连接时需要把它们连接进来,如下 C:\> tlink showhzk file string 调用参…

Excel 中让表格内容自适应列宽和行高

Excel 中让表格内容自适应列宽和行高 目录 Excel 中让表格内容自适应列宽和行高自适应列宽自适应行高在Excel中让表格内容自适应列宽和行高,可参考以下操作: 自适应列宽 方法一:手动调整 选中需要调整列宽的列(如果是整个表格,可点击表格左上角行号和列号交叉处的三角形全…

Java使用ANTLR4对Lua脚本语法校验

文章目录 什么是ANTLR&#xff1f;第一个例子ANTLR4 的工作流程Lua脚本语法校验准备一个Lua Grammar文件maven配置生成Lexer Parser Listener Visitor代码新建实体类Lua语法遍历器语法错误监听器单元测试 参考 什么是ANTLR&#xff1f; https://www.antlr.org/ ANTLR (ANothe…

vue3.2 + element-plus 实现跟随input输入框的弹框,弹框里可以分组或tab形式显示选项

效果 基础用法&#xff08;分组选项&#xff09; 高级用法&#xff08;带Tab栏&#xff09; <!-- 弹窗跟随通用组件 SmartSelector.vue --> <!-- 弹窗跟随通用组件 --> <template><div class"smart-selector-container"><el-popove…

Windows VsCode Terminal窗口使用Linux命令

背景描述&#xff1a; 平时开发环境以Linux系统为主&#xff0c;有时又需要使用Windows系统下开发环境&#xff0c;为了能像Linux系统那样用Windows VsCode&#xff0c;Terminal命令行是必不可少内容。 注&#xff1a;Windows11 VsCode 1.99.2 下面介绍&#xff0c;如何在V…