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

SealOS部署k8s集群(单节点)

一、 先决条件

  • 每个集群节点应该有不同的主机名。
  • 需要在 K8s 集群的第一个 master 节点上运行 sealos run 命令。
  • 建议使用干净的操作系统来创建集群。不要自己装 Docker!
  • 支持大多数 Linux发行版,但内核版本建议5以上。例如:Ubuntu、CentOS、Rocky linux。
  • 支持 Docker Hub 中的所有 Kubernetes 版本。
  • 支持使用 Containerd 作为容器运行时。
  • Sealos默认提供了一个私有镜像仓库。
  • 所有操作必须使用 root 用户执行。

二、准备(在所有主机上执行)

本次使用的操作系统是debian 12(本机IP地址192.168.80.12),因其内核为6.1.0-28-amd64

1,设置主机名k8s-master

hostnamectl set-hostname k8s-master  

2,编辑/etc/hosts文件,增加IP与主机名对应关系

192.168.80.12	k8s-master  

3,安装用到的依赖包

apt -y install curl jq ebtables socat iptables  

三、在k8s-master主机上执行部署

1)在线安装方式

1,下载sealos命令行工具(当前使用v5.0.1版本)

在https://github.com/labring/sealos/releases 下载对应系统的版本,debian 12对应的是:
https://github.com/labring/sealos/releases/download/v5.0.1/sealos_5.0.1_linux_amd64.deb

2,在k8s-master上安装sealos命令行工具
dpkg -i sealos_5.0.1_linux_amd64.deb
3,在k8s-master上安装k8s(单节点)
sealos run registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.27.7 \
  registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4 \
  registry.cn-shanghai.aliyuncs.com/labring/calico:v3.27.4

这里使用了calico网络插件。需要注意:helm应当在calico之前。
在干净的服务上直接执行上面的命令,不需要额外多余操作即可安装一个高可用K8S集群(单节点)

2)离线安装方式

离线包下载地址:通过网盘分享的文件:K8S
链接: https://pan.baidu.com/s/12FMstUEmHWPqSml1VVVgSA?pwd=c2bf 提取码: c2bf

1,在k8s-master上安装sealos命令行工具(sealos命令行工具包来源于其它外网环境)
dpkg -i sealos_5.0.1_linux_amd64.deb
2,导入tar包镜像(tar包镜像来源于其它外网环境的sealos的save导出)
sealos load -i kubernetes_v1.27.7.tar
sealos load -i helm_v3.9.4.tar
sealos load -i calico_v3.27.4.tar
3,在k8s-master上安装k8s(单节点)
sealos run registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.27.7 \
  registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4 \
  registry.cn-shanghai.aliyuncs.com/labring/calico:v3.27.4

这里使用了calico网络插件。需要注意:helm应当在calico之前。
在干净的服务上直接执行上面的命令,不需要额外多余操作即可安装一个高可用K8S集群(单节点)

四、k8s镜像部署

当前安装的k8s集群使用containerd作为容器运行;使用calico作为网络插件CNI;sealos默认提供了一个私有镜像仓库,sealos的私有仓库默认运行在集群的第一个节点上,第一个节点是指创建集群的时候输入的第一个节点的地址,使用下面的命令查看守护进程的状态。

systemctl status registry.service

1,使用sealos login命令来登陆,默认用户名和密码为 admin:passw0rd

sealos login -u admin -p passw0rd 192.168.80.12:5000

注:192.168.80.12:5000 (k8s-master的IP地址)为私有镜像仓库中地址

2,sealos导入docker镜像

sealos load -i GBase8sV8.8_3513x25_csdk_x64_20250225.tar

3,sealos重新打tag,注意tag的写法,使用私有镜像时,需要该写法。

sealos tag localhost/gbase8sv8.8:3513x25_csdk_x64 \
 192.168.80.12:5000/gbase8sv8.8:3513x25_csdk_x64

4,推送到本地的私有镜像

sealos push 192.168.80.12:5000/gbase8sv8.8:3513x25_csdk_x64

5,GBase8s单机部署yaml文件(gbase8s-standard-deployment.yaml)

# gbase8s-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: gbase8s-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: gbase8s
  template:
    metadata:
      labels:
        app: gbase8s
      annotations:
        # 使用calico方式,指定使用IP地址,数据库集群中必须指定IP
        # 所有IP网段,使用kubectl get pod -A -o wide | grep calico-apiserver获取
        # 或者k8s-master上使用ip a获取的tunl0网卡对应的网络
        cni.projectcalico.org/ipAddrs: "[\"100.116.59.101\"]"
    spec:
      containers:
        - name: gbase8s
          # 镜像地址
          image: 192.168.80.12:5000/gbase8sv8.8:3513x25_csdk_x64
          ports:
            - containerPort: 9088

---
apiVersion: v1
kind: Service
metadata:
  name: gbase8s-service
spec:
  selector:
    app: gbase8s
  ports:
    - name: sqlexec
      port: 9088
      targetPort: 9088
      nodePort: 30088
  type: NodePort

6,部署GBase8s(单节点)服务

使用kubectl apply部署GBase8s(单节点)的k8s服务

kubectl apply -f gbase8s-standard-deployment.yaml

7,查看pod部署

使用kubectl get pod查看部署情况

kubectl get pod -o wide

示例输出如下:

NAME                                  READY   STATUS    RESTARTS   AGE
gbase8s-deployment-6cd4dbc946-ltfk6   1/1     Running   0          88m

五、一些常用的sealos和kubectl(命令与docker有很大的相同)

1) kubectl命令

显示service

kubectl get service -o wide

显示service详细信息

kubectl describe service gbase8s-service

删除service

kubectl delete service gbase8s-service

显示deployment

kubectl get deployment -o wide

显示deployment详细信息

kubectl describe deployment gbase8s-deployment

删除depolyment

kubectl delete deployment gbase8s-deployment

显示pod

kubectl get pod -o wide

显示pod详细信息

kubectl describe pod gbase8s-deployment-6cd4dbc946-ltfk6  

2) sealos命令

导入docker镜像

sealos load -i GBase8sV8.8_3513x25_csdk_x64_20250225.tar

给镜像打新的tag

sealos tag localhost/gbase8sv8.8:3513x25_csdk_x64 \
192.168.80.12:5000/gbase8sv8.8:3513x25_csdk_x64

推送至本地镜像仓库

sealos push 192.168.80.12:5000/gbase8sv8.8:3513x25_csdk_x64

清理k8s集群

sealos reset

增加master节点

sealos add --masters 192.168.0.13,192.168.0.14

增加node节点

sealos add --nodes 192.168.0.21,192.168.0.22

相关文章:

  • 视频推拉流EasyDSS案例分析:互联网直播/点播技术与平台创新应用
  • Spring Boot 3.x 引入springdoc-openapi (内置Swagger UI、webmvc-api)
  • 【毕业论文格式】word分页符后的标题段前间距消失
  • 面试题:实现学生管理系统
  • kotlin基础知识点汇总
  • 在Eclipse 中使用 MyBatis 进行开发,通常需要以下步骤:
  • UVC摄像头命令推流,推到rv1126里面去
  • MongoDB 数据导出与导入实战指南(附完整命令)
  • ClickHouse 通过 ​*ARRAY JOIN* 结合 ​Map 类型的内置函数取数值
  • 谷歌Chrome或微软Edge浏览器修改网页任意内容
  • AI大数据挖掘的威力
  • .NET下根据文件的哈希值筛选重复文件
  • 虚拟机下ubuntu进不了图形界面
  • STM32 HAL库实战:轻松实现串口通信驱动蓝牙模块与ESP8266开发
  • Spring Boot集成Mybatis中如何显示日志
  • RCE-Labs超详细WP-Level11Level12(0/1的特殊替换)
  • 安装操作系统ubuntu-20.04.6-live-server-amd64
  • Facebook 的框架及技术栈
  • FFmpeg —— 各系统下ffmpeg硬件加速和API支持情况(文内表格形式详细阐述)
  • 【MySQL基础-4】关系型数据库设计中的范式:从基础到高级
  • 关税影响下沃尔玛想涨价,特朗普施压:自行承担,别转嫁给顾客
  • 盐城经济技术开发区党工委书记王旭东接受纪律审查和监察调查
  • 习近平就乌拉圭前总统穆希卡逝世向乌拉圭总统奥尔西致唁电
  • 张国清将赴俄罗斯举行中俄“长江—伏尔加河”地方合作理事会第五次会议和“东北—远东”政府间合作委员会双方主席会晤
  • 临港新片区将新设5亿元启航基金:专门投向在临港发展的种子期、初创型企业
  • 讲武谈兵|视距外的狙杀:从印巴空战谈谈超视距空战