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

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

一、说明

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

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

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 socatmodprobe br_netfilter && echo "br_netfilter" | tee /etc/modules-load.d/br_netfilter.confsysctl --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://raw.githubusercontent.com/labring/sealos/main/scripts/cloud/install.sh -o install.sh

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


execute_commands() {[[ $k8s_installed == "y" ]] || (get_prompt "k8s_installation" && sealos apply -f $CLOUD_DIR/Clusterfile)modify_containerd_configcommand -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.tomlecho "modify_containerd_config start"mkdir -p /etc/containerd/certs.d/docker.iotouch /etc/containerd/certs.d/docker.io/hosts.tomlcat>/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"]
EOFsystemctl restart containerdecho "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 containerdrm -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 nodesNAME     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.mrgr.cn/news/98719.html

相关文章:

  • 集群搭建Weblogic服务器!
  • 《Against The Achilles’ Heel: A Survey on Red Teaming for Generative Models》全文阅读
  • 红宝书第四十七讲:Node.js服务器框架解析:Express vs Koa 完全指南
  • 前端基础之《Vue(5)—组件基础(1)》
  • Kubernetes(K8S)内部功能总结
  • 猫咪如厕检测与分类识别系统系列【六】分类模型训练+混合检测分类+未知目标自动更新
  • 【Vue】从 MVC 到 MVVM:前端架构演变与 Vue 的实践之路
  • shell 编程之正则表达式与文本处理器
  • centos7停服yum更新kernel失败解决办法
  • C++中变量、函数存储、包括虚函数多态实现机制说明
  • Deno 统一 Node 和 npm,既是 JS 运行时,又是包管理器
  • chili3d调试笔记2+添加web ui按钮
  • 基础学习:(6)nanoGPT
  • 单片机基础知识-STM32
  • vue3.2 + element-plus 实现跟随input输入框的弹框,弹框里可以分组或tab形式显示选项
  • YOLOV8 OBB 海思3516训练流程
  • 十八、TCP多线程、多进程并发服务器
  • Tomcat与Servlet
  • vmcore分析锁问题实例(x86-64)
  • 面试经历---某能源公司