• Ubuntu 22.04.3 LTS单机私有化部署sealos desktop


    • 推荐使用奇数台 Master 节点和若干 Node 节点
    • 操作系统 :Ubuntu 22.04 LTS
    • 内核版本 :5.4 及以上
    • 配置推荐 :CPU 4 核 , 内存 8GB, 存储空间 100GB 以上
    • 最小配置 :CPU 2 核 , 内存 4GB, 存储空间 60GB

    这里采用的Ubuntu 22.04.3 LTS  版本,Ubuntu 20.04.4 LTS这个版本应该也是可以的有兴趣可以测试一下。

    1. root@master:~# lsb_release -a
    2. No LSB modules are available.
    3. Distributor ID: Ubuntu
    4. Description:    Ubuntu 22.04.3 LTS
    5. Release:        22.04
    6. Codename:       jammy

     分区大小,搭建好后磁盘占用51G,所以分区一定要大,这里是通过扩容lvs增加的容量。

    1. root@master:~# df -Th
    2. Filesystem Type Size Used Avail Use% Mounted on
    3. tmpfs tmpfs 791M 8.2M 783M 2% /run
    4. /dev/mapper/ubuntu--vg-ubuntu--lv ext4 97G 51G 42G 55% /
    5. tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm
    6. tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
    7. /dev/sda2 ext4 2.0G 251M 1.6G 14% /boot
    8. tmpfs tmpfs 791M 4.0K 791M 1% /run/user/0

     磁盘容量不够参考,磁盘容量足够请绕过此步骤

    1. root@master:~# lvs
    2. LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
    3. ubuntu-lv ubuntu-vg -wi-ao---- <49.00g
    4. root@master:~# vgs
    5. VG #PV #LV #SN Attr VSize VFree
    6. ubuntu-vg 1 1 0 wz--n- <98.00g 49.00g
    7. root@master:~# pvs
    8. PV VG Fmt Attr PSize PFree
    9. /dev/sda3 ubuntu-vg lvm2 a-- <98.00g 49.00g
    10. root@master:~# lsblk
    11. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
    12. loop0 7:0 0 63.5M 1 loop /snap/core20/2015
    13. loop1 7:1 0 111.9M 1 loop /snap/lxd/24322
    14. loop2 7:2 0 63.4M 1 loop /snap/core20/1974
    15. loop3 7:3 0 53.3M 1 loop /snap/snapd/19457
    16. loop4 7:4 0 40.8M 1 loop /snap/snapd/20092
    17. sda 8:0 0 100G 0 disk
    18. ├─sda1 8:1 0 1M 0 part
    19. ├─sda2 8:2 0 2G 0 part /boot
    20. └─sda3 8:3 0 98G 0 part
    21. └─ubuntu--vg-ubuntu--lv 253:0 0 49G 0 lvm /var/lib/containers/storage/overlay
    22. /
    23. sr0 11:0 1 1024M 0 rom
    24. root@master:~# lvextend -L +49G /dev/ubuntu-vg/ubuntu-lv
    25. Size of logical volume ubuntu-vg/ubuntu-lv changed from <49.00 GiB (12543 extents) to <98.00 GiB (25087 extents).
    26. Logical volume ubuntu-vg/ubuntu-lv successfully resized.
    27. root@master:~# df -Th
    28. Filesystem Type Size Used Avail Use% Mounted on
    29. tmpfs tmpfs 791M 3.3M 788M 1% /run
    30. /dev/mapper/ubuntu--vg-ubuntu--lv ext4 48G 40G 6.4G 86% /
    31. tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm
    32. tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
    33. /dev/sda2 ext4 2.0G 251M 1.6G 14% /boot
    34. tmpfs tmpfs 791M 4.0K 791M 1% /run/user/0
    35. root@master:~# resize2fs /dev/ubuntu-vg/ubuntu-lv
    36. resize2fs 1.46.5 (30-Dec-2021)
    37. Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing required
    38. old_desc_blocks = 7, new_desc_blocks = 13
    39. The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 25689088 (4k) blocks long.
    40. root@master:~# df -Th
    41. Filesystem Type Size Used Avail Use% Mounted on
    42. tmpfs tmpfs 791M 3.3M 788M 1% /run
    43. /dev/mapper/ubuntu--vg-ubuntu--lv ext4 97G 40G 53G 43% /
    44. tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm
    45. tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
    46. /dev/sda2 ext4 2.0G 251M 1.6G 14% /boot
    47. tmpfs tmpfs 791M 4.0K 791M 1% /run/user/0

     首先安装sealos

    1. apt install jq curl vim -y
    2. curl --silent "https://api.github.com/repos/labring/sealos/releases" | jq -r '.[].tag_name'
    3. echo "deb [trusted=yes] https://apt.fury.io/labring/ /" | sudo tee /etc/apt/sources.list.d/labring.list
    4. sudo apt update && sudo apt install sealos -y

    下面安装步骤是参考大佬的文章

    Sealos 私有化部署完全指南_sealos 部署_米开朗基杨的博客-CSDN博客

    1. 230 22:39:35 root sealos apply -f Clusterfile
    2. 231 22:41:17 root sh sealos.sh
    3. 232 22:59:47 root kubectl get pods -A
    4. 233 23:00:12 root sealos run docker.io/labring/sealos-cloud:latest --env cloudDomain="10.1.1.138.nip.io"

     Cluster

    1. sealos gen labring/kubernetes:v1.25.6 \
    2. labring/helm:v3.12.0 \
    3. labring/calico:v3.24.1 \
    4. labring/cert-manager:v1.8.0 \
    5. labring/openebs:v3.4.0 \
    6. --masters 10.1.1.138 > Clusterfile
    7. sealos apply -f Clusterfile

     等待集群就绪后 , 使用 kubectl get pods -A 查看集群状态:

    vim sealos.sh

    1. #!/bin/bash
    2. set -e
    3. cat << EOF > ingress-nginx-config.yaml
    4. apiVersion: apps.sealos.io/v1beta1
    5. kind: Config
    6. metadata:
    7. creationTimestamp: null
    8. name: ingress-nginx-config
    9. spec:
    10. data: |
    11. controller:
    12. hostNetwork: true
    13. kind: DaemonSet
    14. service:
    15. type: NodePort
    16. match: docker.io/labring/ingress-nginx:v1.5.1
    17. path: charts/ingress-nginx/values.yaml
    18. strategy: merge
    19. EOF
    20. sealos run docker.io/labring/kubernetes-reflector:v7.0.151\
    21. docker.io/labring/ingress-nginx:v1.5.1\
    22. docker.io/labring/zot:v1.4.3\
    23. docker.io/labring/kubeblocks:v0.5.3\
    24. --env policy=anonymousPolicy\
    25. --config-file ingress-nginx-config.yaml
    26. echo "patch ingress-nginx-controller tolerations to allow run on master node, if you don't want to run on master node, please ignore this step"
    27. kubectl -n ingress-nginx patch ds ingress-nginx-controller -p '{"spec":{"template":{"spec":{"tolerations":[{"key":"node-role.kubernetes.io/control-plane","operator":"Exists","effect":"NoSchedule"}]}}}}'
    28. echo "waitting for kubeblocks crd created, this may take a while"
    29. while ! kubectl get clusterdefinitions.apps.kubeblocks.io redis >/dev/null 2>&1; do
    30. sleep 5
    31. done
    32. echo "start patch redis clusterdefinition"
    33. kubectl patch clusterdefinitions.apps.kubeblocks.io redis --type='json' -p '[{"op": "add", "path": "/spec/componentDefs/0/podSpec/containers/1/resources/limits", "value": {"cpu":"100m", "memory":"100Mi"}}]'
    34. echo "patch redis success"
    35. echo "wait for all pod to be ready then install Sealos"
    36. kubectl get po -A

     sh sealos.sh

    sh sealos.sh

     执行时间长耐心等待

    kubectl get po -A

    过程可能稍长,等待所有 Pod 均为 Ready 状态后,即可进行下一步。

    最后一条命令

    sealos run docker.io/labring/sealos-cloud:latest    --env cloudDomain="10.1.1.138.nip.io"

    过程还是很曲折,不过最后总算成功了,其实大佬的文章还得仔细看,能节约不少时间,阿里云的无影云桌面有3个月的试用,使用阿里云的无影云桌面也测试成功,就是有一点没有搞定,登陆后可以输入密码,但是浏览器一直提示安全问题,ubuntu不知道怎么设置才能正常。

    阿里云无影云桌面版本,浏览器打开的问题暂时还没有解决办法。

    1. root@1:~# lsb_release -a
    2. LSB Version: core-11.1.0ubuntu2-noarch:security-11.1.0ubuntu2-noarch
    3. Distributor ID: Ubuntu
    4. Description: Ubuntu 20.04.4 LTS
    5. Release: 20.04
    6. Codename: focal

    windows的CHROME的设置请看下面的解决办法。

    mongodb需要avx支持,如果cpu不支持avx会失败,J1900不支持avx所以这个坑请跳过。

    这里要非常感谢BXY大佬!

    日志查看参考

    kubectl logs  sealos-mongodb-mongodb-0 -n sealos

    浏览器访问 Sealos 网址时提示“不安全”
    如果您在部署过程中提供了正确的证书,但仍然收到这个提示,可以采取以下措施:

    检查证书是否和域名匹配:证书需要解析 {{ $domain }} 及 *.{{ $domain }};
    检查证书是否被正确地使用 base64 编码并写入到 tls-secret.yaml 文件中;
    如果您在部署过程中没有提供证书,那么这种现象是正常的,因为默认使用的是 Sealos 的自签名证书。您可以选择以下两种方式解决:

    信任证书:在浏览器中导出证书,然后双击证书打开,导入到受信任的根证书颁发机构中;
    关闭浏览器的安全检查:以 Chrome 为例,修改 Chrome 浏览器的快捷方式,在目标后面添加 --ignore-certificate-errors 参数,然后重新打开浏览器。
    部署时卡在 Waiting waiting for mongodb secret generated 怎么办?
    Sealos 依赖 kubeblocks 提供的数据库服务。如果在部署过程中卡在这一步,说明在上一步,部署 Sealos 依赖组件时出错了。您应该尝试重新部署。

    如何重新部署?
    如果您需要重新部署,只需执行以下命令:

    $ sealos reset
    这个命令将清理所有集群资源,让您可以从头开始部署。
     

    本文参考大佬米开朗基杨的文章,非常感谢!
    https://blog.csdn.net/alex_yangchuansheng/article/details/131937199

     最后欣赏一下sealos的桌面

    sealos还提供一键命令,如果上面没有成功,sealos reset后测试下面这个命令,按提示操作

    curl -sfL https://raw.githubusercontent.com/labring/sealos/main/scripts/cloud/install.sh -o /tmp/install.sh && bash /tmp/install.sh 

    admin

    sealos2023

  • 相关阅读:
    (01)ORB-SLAM2源码无死角解析-(38) EPnP 源代码分析(1)→PnPsolver总体流程与思路
    BUUCTF 基础破解 1
    A_A01_002 MDK5(STM32)软件安装
    DC/DC开关电源学习笔记(七)低压大电流DC/DC变换技术
    专栏更新情况:华为流程、产品经理、战略管理、IPD
    实际编译运行tensorflow Lite Microcontroller的例子《MCU嵌入式AI开发笔记》(第8集)
    服务器白名单
    maven 本地仓库的配置
    传输层——TCP协议
    589页22万字城市智慧应急指挥中心大数据信息化系统整体设计方案
  • 原文地址:https://blog.csdn.net/qq_24768591/article/details/133801231