centos7 本地私有化部署sealos 桌面

发布时间 2023-10-10 15:21:00作者: 会bk的鱼

 

sealos 是什么?我想引用它官方的一句话改造下,sealos 让云像个人电脑一样简单

官方文档地址:https://docs.sealos.io/zh-Hans/docs/Intro

 

今年6月份,sealos 正式发布了公有云托管版本,网上私有化教程不多,自己一点小坑现记录如下

主要参考 https://mp.weixin.qq.com/s/tlXQ92jM2T35z-57oPsaRQ

 

sealos 版本建议下载最新版(latest 版本)

服务器内核版本在5.4及以上    不会的看这个 https://www.cnblogs.com/xq0422/p/17733293.html

配置最低2核4G内存60G硬盘 

Master 节点可以通过 SSH 免密登陆到其他节点

 

主要分成三个步骤

一、部署 Kubernetes 集群                   #修改masters 与nodes 为自己的ip

 

# 注意:helm 版本需要在 3.12.0 及以上!
$ sealos gen labring/kubernetes:v1.25.6 \
    labring/helm:v3.12.0 \
    labring/calico:v3.24.1 \
    labring/cert-manager:v1.8.0 \
    labring/openebs:v3.4.0 \
    --masters 10.140.0.16 \
    --nodes 10.140.0.54 > Clusterfile

# 请修改 Clusterfile 中的 PodSubnet 及 ServiceSubnet
# 默认的 PodSubnet: 100.64.0.0/10
# 默认的 ServiceSubnet: 10.96.0.0/22

$ sealos apply -f Clusterfile

 

二、部署 Sealos 依赖组件         注意kubeblocks 镜像为v0.6.2版本

 

#!/bin/bash
set -e

cat << EOF > ingress-nginx-config.yaml
apiVersion: apps.sealos.io/v1beta1
kind: Config
metadata:
  creationTimestamp: null
  name: ingress-nginx-config
spec:
  data: |
    controller:
      hostNetwork: true
      kind: DaemonSet
      service:
        type: NodePort
  match: docker.io/labring/ingress-nginx:v1.5.1
  path: charts/ingress-nginx/values.yaml
  strategy: merge
EOF

sealos run docker.io/labring/kubernetes-reflector:v7.0.151\
    docker.io/labring/ingress-nginx:v1.5.1\
    docker.io/labring/zot:v1.4.3\
    docker.io/labring/kubeblocks:v0.6.2\
    --env policy=anonymousPolicy\
    --config-file ingress-nginx-config.yaml

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"
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"}]}}}}'

echo "waitting for kubeblocks crd created, this may take a while"
while ! kubectl get clusterdefinitions.apps.kubeblocks.io redis >/dev/null 2>&1; do
  sleep 5
done

echo "start patch redis clusterdefinition"
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"}}]'
echo "patch redis success"

echo "wait for all pod to be ready then install Sealos"
kubectl get po -A

 

、部署Sealos                         #ip 要改成自己的 

 

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

 

 

问题集合:

1.安装失败就多试几次 sealos reset  ,确保kubectl get po -A 都是Running 的情况下再执行下一步

2.“ Waiting waiting for mongodb secret generated ”, 应检查kubeblocks是否正常。
kbcli addon list
应保证apecloud-mysql、mongodb、postgresql、redis为enable

3.私有化充值问题,官方当前还在开发中,用root账号,默认密码sealos2023.,有一定额度