sealos是以kubernetes为内核的云操作系统。在早期阶段,操作系统采用了分层的体系结构,后来演变成了像Linux和Windows这样的内核体系结构。
(1)基于sealos,你可以将数据中心中的所有机器想象成一台“抽象”的超级计算机,sealos就是用来管理这台超级计算机的操作系统,kubernetes是这个操作系统的内核。
(2)此后云计算IaaS,PaaS,SaaS的划分会慢慢淡去,只有云操作系统驱动(CSI,CNI,CRI实现)云操作系统内核(kubernetes)和分布式应用组成。

核心特性

(1)集群生命周期的管理。快速安装高可用K8S集群,添加,删除节点,清理集群,备份与自动恢复等。
(2)下载和使用完全兼容OCI标准的分布式应用。OpenEBS,MinIO,Ingress,Postgresql,MySQL,Redis等。
(3)分布式应用的定制化。用Dockerfile构建分布式应用镜像,保存所有的依赖。发布分布式应用镜像到Docker Hub。融合多个应用构建专属的云平台。

部署sealos的先决条件

为每个节点设置不同的主机名称

hostnamectl set-hostname <newhostname>

并且同步系统时间,不赘述。

基于sealos安装k8s

(1)首先为sealos添加软件源,版本4.1.2

echo "deb [trusted=yes] https://apt.fury.io/labring/ /" | sudo tee /etc/apt/sources.list.d/labring.list

(2)更新apt的源

apt-get update

(3)安装sealos前需要把原本的docker删除,

apt-get purge --autoremove docker.io

否则在用sealos部署k8s时会报下面的错误

ERROR [2022-09-06 09:50:42] >> The machine docker is not clean. Please clean docker the system

(4)安装sealos

apt-get install sealos

(5)搭建k8s集群

可供修改sealos镜像源的文件位置

/etc/containers/registries.conf
sealos run labring/kubernetes:v1.24.2 labring/calico:v3.22.1 --masters 192.168.36.128 --nodes 192.168.36.129,192.168.36.130 -p 123

其中 -p 是node节点上root用户的密码。执行一下语句,并出现以下信息说明k8s已经部署成功

root@master:/home/sword/DC/sealos# kubectl get nodes -o wide
NAME      STATUS   ROLES           AGE    VERSION   INTERNAL-IP      EXTERNAL-IP   OS-IMAGE           KERNEL-VERSION      CONTAINER-RUNTIME
master    Ready    control-plane   119m   v1.24.2   192.168.36.128   <none>        Ubuntu 20.04 LTS   5.4.0-125-generic   containerd://1.6.2
worker1   Ready    <none>          119m   v1.24.2   192.168.36.129   <none>        Ubuntu 20.04 LTS   5.4.0-125-generic   containerd://1.6.2
worker2   Ready    <none>          119m   v1.24.2   192.168.36.130   <none>        Ubuntu 20.04 LTS   5.4.0-125-generic   containerd://1.6.2

以上有一列ROLES说明了每个节点在整个集群中的角色,如果是control-plane,说明它是master,如果是<none>,则是worker。

安装k8s-dashboard

(1)使用以下命令可以查看k8s目前提供的服务。

root@master:/home/sword/DC/sealos# kubectl get svc --all-namespaces
NAMESPACE       NAME                              TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                  AGE
calico-system   calico-kube-controllers-metrics   ClusterIP   10.96.2.93   <none>        9094/TCP                 3h32m
calico-system   calico-typha                      ClusterIP   10.96.2.74   <none>        5473/TCP                 3h33m
default         kubernetes                        ClusterIP   10.96.0.1    <none>        443/TCP                  3h33m
kube-system     kube-dns                          ClusterIP   10.96.0.10   <none>        53/UDP,53/TCP,9153/TCP   3h33m

(2)创建kubernetes-dashboard服务。

sealos run docker.io/labring/kubernetes-dashboard:v1.0.8

上面的命令运行到最后可以看到以下信息

--------------------------------
$(kubectl -n kubernetes-dashboard create token admin-user)
--------------------------------"
You can login through this TOKEN
--------------------------------
eyJhbGciOiJSUzI1NiIsImtpZCI6ImVKMk1sUWk3bzNQc2lISUNZS2FLN2Z0UFdrbHhTaEZRSGNlRWR4YVpxYW8ifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjoxNjYyNTE2MDUzLCJpYXQiOjE2NjI1MTI0NTMsImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJhZG1pbi11c2VyIiwidWlkIjoiMWRmY2M5NjQtNDEzYi00YmFhLWJkNzAtNzM3ZDgxZDU5OWJiIn19LCJuYmYiOjE2NjI1MTI0NTMsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDphZG1pbi11c2VyIn0.hCs1-SCJll7jGI02UjMK1_1cRjmRSZMvHkWhIK8Ome-fBS6OnMCpdgODuUddMQMH1MpXIP7ybcXh5IT-P2pA1iJv3JDSFY-1IvjzKLjZllR1DtFAEb-yDgEcUs-2t3M5rTsV3o2FlSQsBLNshugDyPsGswAlwNpx6LWmjaXryn-AAj4jUC7zZECoQNmf19eXaUEXCKl7I_Eu6n8USjs3wc0yL56q0tP-ywDmQTFh2gDrLA9qxr6surk4DMomUuUI7oMk3A6KvrtXs1qd3-FYZL6V4pirNiUoiShcFVTNjHjY_3IJNAsBa0H2_gGNHi0Bw6WzcMvBV0sFYfai7Ve8SQ
--------------------------------

(3)创建k8s服务器代理

kubectl port-forward -n kubernetes-dashboard --address 0.0.0.0 svc/kubernetes-dashboard 8001:443

(4)访问dashboard

访问 https://<服务器ip>:8001 即可访问dashboard,此处的8001对应上面命令中的8001,进入页面之后,输入(2)中的token即可。

k8s替代nacos服务注册与发现_kubernetes

基于sealos安装helm

运行以下命令

sealos run labring/helm:v3.8.2

k8s常用命令