使用sealer-构建、交付、运行【kubernetes】-demo

sealos 离线部署 k8s 高可用集群 sealos简介sealos 特性与优势: 通过内核 ipvs 对 apiserver 进行负载均衡,并且带 apiserver 健康检测,并不依赖 haproxy 和 keepalived。 支持离线安装,工具与资源包(二进制程序 配置文件 镜像 yaml文件等)分离,这样不同版本替换不同离线包即可 证书延期 使用简单 支持自定义配置 内核负载,极其稳定,因为简单所以排查问题也极其简单 支持9... 阅读详情
AI摘要

本文介绍Sealer工具,一种能够一键部署Kubernetes集群的方法。Sealer简化了Kubernetes的安装流程,支持集群镜像化构建、交付及运行,适用于快速搭建测试或生产环境。

Kubernetes 是一个开源的容器编排引擎,用来对容器化应用进行自动化部署、 扩缩和管理.


sealer
把整个集群看成一台服务器,把kubernetes看成云操作系统,吸取docker设计精髓实现分布式软件镜像化构建、交付、运行

  • 构建: 使用Kubefile定义整个集群所有依赖,把kubernetes 中间件 数据库和SaaS软件所有依赖打包到集群镜像中
  • 交付: 像交付Docker镜像一样交付整个集群和集群中的分布式软件
  • 运行: 一条命令启动整个集群, 集群纬度保障一致性,兼容主流linux系统与多种架构

当前文档简单使用sealer,暂未应用,通过sealer看看Kubernetes。

参考

在这里插入图片描述
sealer
在这里插入图片描述
Kubernetes 文档
sealer是如何把sealos按在地上摩擦的
sealos-gitee
sealos-github
sealer-gitee
sealer-github
Containerd 的前世今生和保姆级入门教程
sealos爆火后依然要开发sealer,背后原因有哪些?
K8S高可用之Sealos

demo-操作

使用sealer创建一个kubernetes集群

主要参考:

下载

wget -c https://sealer.oss-cn-beijing.aliyuncs.com/sealers/sealer-v0.8.5-linux-amd64.tar.gz

在这里插入图片描述

解压并移动

tar -xvf  sealer-v0.8.5-linux-amd64.tar.gz -C /usr/bin/

在这里插入图片描述

调整授权用户(如果是root请忽略)

在这里插入图片描述
压缩文件内
在这里插入图片描述

chown root:root /usr/bin/sealer
ll /usr/bin/ |grep  seal

在这里插入图片描述

命令

版本

sealer version
{
    "gitVersion": "v0.8.5",
    "gitCommit": "f9c3d99",
    "buildDate": "2022-04-28 14:16:58",
    "goVersion": "go1.16.15",
    "compiler": "gc",
    "platform": "linux/amd64"
}

当前版本命令

Available Commands:
  apply       应用kubernetes集群
  build       从Kubefile构建云image
  cert        更新k8s API服务器证书
  check       检查群集的状态
  completion  为bash生成自动完成脚本
  debug       为POD和节点创建调试会话
  delete      删除集群
  exec        在所有节点上执行shell命令或脚本。
  gen         生成一个Clusterfile来接管未由sealer部署的正常集群
  gen-doc     使用降价格式为sealer CLI生成MarkDown
  help        关于任何命令的帮助
  images      列出所有集群images
  inspect     打印image信息或Clusterfile
  join        将节点加入集群
  load        从tar文件加载image
  login       登录image存储库
  merge       将多个image合并为一个
  prune       削减sealer数据目录
  pull        将云image拉到本地
  push        将云image推送到注册表
  rmi         按名称删除本地image
  run         使用image和参数运行集群
  save        将image保存到tar文件
  search      sealer搜索kubernetes
  tag         将image标记为新image
  upgrade     升级kubernetes集群
  version     显示sealer版本

Flags:
      --config string   配置文件 (默认是 $HOME/.sealer.json)
  -d, --debug           启用调试模式
  -h, --help            sealer帮助
      --hide-path       隐藏日志路径
      --hide-time       隐藏日志时间
  -t, --toggle          切换的帮助消息

一个命令部署整个 Kubernetes 集群

Flags:
      --cmd-args strings     set args for image cmd instruction
  -e, --env strings          set custom environment variables
  -h, --help                 help for run
  -m, --masters string       set Count or IPList to masters
  -n, --nodes string         set Count or IPList to nodes
  -p, --passwd string        set cloud provider or baremetal server password
      --pk string            set baremetal server private key (default "/root/.ssh/id_rsa")
      --pk-passwd string     set baremetal server private key password
      --port string          set the sshd service port number for the server (default port: 22) (default "22")
      --provider ALI_CLOUD   set infra provider, example ALI_CLOUD, the local server need ignore this
  -u, --user string          set baremetal server username (default "root")

Sealer运行命令行

# 默认root用户
sealer run kubernetes:v1.19.8 -m 192.168.xxx.xxx -p {root密码}

在这里插入图片描述
启动日志

2022-07-04 18:33:26 [INFO] [local.go:288] Start to create a new cluster: master [192.168.xxx.xxx], worker []
Start to Pull Image kubernetes:v1.19.8
70b6c7cb29b2: pull completed 
6af04e85d342: pull completed 
b66e77105fb0: pull completed 
907a935ec2e7: pull completed 
ebd0f721b47d: pull completed 
1066d30573cf: pull completed 
bdfff9613bac: pull completed 
bdfff9613bac: already exists=========================>                    ]  207.8MB/346.4MB
ebd0f721b47d: already exists
1066d30573cf: already exists
6af04e85d342: already exists
869b45ef4055: already exists
907a935ec2e7: already exists
70b6c7cb29b2: already exists
b66e77105fb0: already exists
Success to Pull Image kubernetes:v1.19.8
2022-07-04 18:38:10 [INFO] [kube_certs.go:234] APIserver altNames :  {map[apiserver.cluster.local:apiserver.cluster.local kubernetes:kubernetes kubernetes.default:kubernetes.default kubernetes.default.svc:kubernetes.default.svc kubernetes.default.svc.cluster.local:kubernetes.default.svc.cluster.local localhost:localhost localhost.localdomain:localhost.localdomain] map[10.103.xxx.xxx:10.103.xxx.xxx 10.96.xxx.xxx:10.96.xxx.xxx 127.0.0.1:127.0.0.1 172.16.xxx.xxx:172.16.xxx.xxx 192.168.xxx.xxx:192.168.xxx.xxx]}
2022-07-04 18:38:10 [INFO] [kube_certs.go:254] Etcd altnames : {map[localhost:localhost localhost.localdomain:localhost.localdomain] map[127.0.0.1:127.0.0.1 192.168.xxx.xxx:192.168.xxx.xxx ::1:::1]}, commonName : localhost.localdomain
2022-07-04 18:38:17 [INFO] [kubeconfig.go:267] [kubeconfig] Writing "admin.conf" kubeconfig file

2022-07-04 18:38:19 [INFO] [kubeconfig.go:267] [kubeconfig] Writing "controller-manager.conf" kubeconfig file

2022-07-04 18:38:19 [INFO] [kubeconfig.go:267] [kubeconfig] Writing "scheduler.conf" kubeconfig file

2022-07-04 18:38:20 [INFO] [kubeconfig.go:267] [kubeconfig] Writing "kubelet.conf" kubeconfig file

++ dirname init-registry.sh
+ cd .
+ REGISTRY_PORT=5000
+ VOLUME=/var/lib/sealer/data/my-cluster/rootfs/registry
+ REGISTRY_DOMAIN=sea.hub
+ container=sealer-registry
+++ pwd
++ dirname /var/lib/sealer/data/my-cluster/rootfs/scripts
+ rootfs=/var/lib/sealer/data/my-cluster/rootfs
+ config=/var/lib/sealer/data/my-cluster/rootfs/etc/registry_config.yml
+ htpasswd=/var/lib/sealer/data/my-cluster/rootfs/etc/registry_htpasswd
+ certs_dir=/var/lib/sealer/data/my-cluster/rootfs/certs
+ image_dir=/var/lib/sealer/data/my-cluster/rootfs/images
+ mkdir -p /var/lib/sealer/data/my-cluster/rootfs/registry
+ load_images
+ for image in '"$image_dir"/*'
+ '[' -f /var/lib/sealer/data/my-cluster/rootfs/images/registry.tar ']'
+ docker load -q -i /var/lib/sealer/data/my-cluster/rootfs/images/registry.tar
Loaded image: registry:2.7.1
++ docker ps -aq -f name=sealer-registry
+ '[' '' ']'
+ regArgs='-d --restart=always --net=host --name sealer-registry -v /var/lib/sealer/data/my-cluster/rootfs/certs:/certs -v /var/lib/sealer/data/my-cluster/rootfs/registry:/var/lib/registry -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/sea.hub.crt -e REGISTRY_HTTP_TLS_KEY=/certs/sea.hub.key'
+ '[' -f /var/lib/sealer/data/my-cluster/rootfs/etc/registry_config.yml ']'
+ sed -i s/5000/5000/g /var/lib/sealer/data/my-cluster/rootfs/etc/registry_config.yml
+ regArgs='-d --restart=always --net=host --name sealer-registry -v /var/lib/sealer/data/my-cluster/rootfs/certs:/certs -v /var/lib/sealer/data/my-cluster/rootfs/registry:/var/lib/registry -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/sea.hub.crt -e REGISTRY_HTTP_TLS_KEY=/certs/sea.hub.key     -v /var/lib/sealer/data/my-cluster/rootfs/etc/registry_config.yml:/etc/docker/registry/config.yml'
+ '[' -f /var/lib/sealer/data/my-cluster/rootfs/etc/registry_htpasswd ']'
+ docker run -d --restart=always --net=host --name sealer-registry -v /var/lib/sealer/data/my-cluster/rootfs/certs:/certs -v /var/lib/sealer/data/my-cluster/rootfs/registry:/var/lib/registry -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/sea.hub.crt -e REGISTRY_HTTP_TLS_KEY=/certs/sea.hub.key -v /var/lib/sealer/data/my-cluster/rootfs/etc/registry_config.yml:/etc/docker/registry/config.yml registry:2.7.1
6d81axxx.xxx
+ check_registry
+ n=1
+ ((  n <= 3  ))
++ docker inspect --format '{{json .State.Status}}' sealer-registry
+ registry_status='"running"'
+ [[ "running" == \"running\" ]]
+ break
2022-07-04 18:40:30 [INFO] [init.go:251] start to init master0...
2022-07-04 18:44:38 [INFO] [init.go:206] join command is: kubeadm join  apiserver.cluster.local:6443 --token 2uywik.xxx.xxx \
    --discovery-token-ca-cert-hash sha256:f8efxxx.xxx \
    --control-plane --certificate-key 0830xxx.xxx


customresourcedefinition.apiextensions.k8s.io/bgpconfigurations.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/bgppeers.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/blockaffinities.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/caliconodestatuses.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/clusterinformations.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/felixconfigurations.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/globalnetworkpolicies.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/globalnetworksets.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/hostendpoints.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/ipamblocks.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/ipamconfigs.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/ipamhandles.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/ippools.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/ipreservations.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/kubecontrollersconfigurations.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/networkpolicies.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/networksets.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/apiservers.operator.tigera.io created
customresourcedefinition.apiextensions.k8s.io/imagesets.operator.tigera.io created
customresourcedefinition.apiextensions.k8s.io/installations.operator.tigera.io created
customresourcedefinition.apiextensions.k8s.io/tigerastatuses.operator.tigera.io created
namespace/tigera-operator created
podsecuritypolicy.policy/tigera-operator created
serviceaccount/tigera-operator created
clusterrole.rbac.authorization.k8s.io/tigera-operator created
clusterrolebinding.rbac.authorization.k8s.io/tigera-operator created
deployment.apps/tigera-operator created
installation.operator.tigera.io/default created
apiserver.operator.tigera.io/default created
2022-07-04 18:44:48 [INFO] [local.go:298] Succeeded in creating a new cluster, enjoy it!

kubectl–help

kubectl controls the Kubernetes cluster manager.

 Find more information at: https://kubernetes.io/docs/reference/kubectl/overview/

Basic Commands (Beginner):
  create        Create a resource from a file or from stdin.
  expose        使用 replication controller, service, deployment 或者 pod 并暴露它作为一个 新的 Kubernetes
Service
  run           在集群中运行一个指定的镜像
  set           为 objects 设置一个指定的特征

Basic Commands (Intermediate):
  explain       查看资源的文档
  get           显示一个或更多 resources
  edit          在服务器上编辑一个资源
  delete        Delete resources by filenames, stdin, resources and names, or by resources and label selector

Deploy Commands:
  rollout       Manage the rollout of a resource
  scale         Set a new size for a Deployment, ReplicaSet or Replication Controller
  autoscale     自动调整一个 Deployment, ReplicaSet, 或者 ReplicationController 的副本数量

Cluster Management Commands:
  certificate   修改 certificate 资源.
  cluster-info  显示集群信息
  top           Display Resource (CPU/Memory/Storage) usage.
  cordon        标记 node 为 unschedulable
  uncordon      标记 node 为 schedulable
  drain         Drain node in preparation for maintenance
  taint         更新一个或者多个 node 上的 taints

Troubleshooting and Debugging Commands:
  describe      显示一个指定 resource 或者 group 的 resources 详情
  logs          输出容器在 pod 中的日志
  attach        Attach 到一个运行中的 container
  exec          在一个 container 中执行一个命令
  port-forward  Forward one or more local ports to a pod
  proxy         运行一个 proxy 到 Kubernetes API server
  cp            复制 files 和 directories 到 containers 和从容器中复制 files 和 directories.
  auth          Inspect authorization

Advanced Commands:
  diff          Diff live version against would-be applied version
  apply         通过文件名或标准输入流(stdin)对资源进行配置
  patch         使用 strategic merge patch 更新一个资源的 field(s)
  replace       通过 filename 或者 stdin替换一个资源
  wait          Experimental: Wait for a specific condition on one or many resources.
  convert       在不同的 API versions 转换配置文件
  kustomize     Build a kustomization target from a directory or a remote url.

Settings Commands:
  label         更新在这个资源上的 labels
  annotate      更新一个资源的注解
  completion    Output shell completion code for the specified shell (bash or zsh)

Other Commands:
  alpha         Commands for features in alpha
  api-resources Print the supported API resources on the server
  api-versions  Print the supported API versions on the server, in the form of "group/version"
  config        修改 kubeconfig 文件
  plugin        Provides utilities for interacting with plugins.
  version       输出 client 和 server 的版本信息

Usage:
  kubectl [flags] [options]

Use "kubectl <command> --help" for more information about a given command.
Use "kubectl options" for a list of global command-line options (applies to all commands).

检查集群

# sealer正在启动的时候,是获取不到信息的
kubectl get node
#The connection to the server localhost:8080 was refused - did you specify the right host or port?
# sealer启动成功后就可以了
kubectl get node
#NAME                    STATUS   ROLES    AGE     VERSION
#localhost.localdomain   Ready    master   5m30s   v1.19.8

在这里插入图片描述

pod状态

Pod是Kubernetes创建或部署的最小/最简单的基本单位,一个Pod代表集群上正在运行的一个进程

kubectl get pod -A

在这里插入图片描述
监听模式

kubectl get pod -A -w

在这里插入图片描述

挂载情况

可以发现,挂载了很多容器

df -kh

在这里插入图片描述
sealer在启动的时候,容器数据是越来越多的,当前是启动成功后,路径做了压缩

文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   50G   23G   28G   45% /
devtmpfs                 7.8G     0  7.8G    0% /dev
tmpfs                    7.8G   84K  7.8G    1% /dev/shm
tmpfs                    7.8G  876M  7.0G   12% /run
tmpfs                    7.8G     0  7.8G    0% /sys/fs/cgroup
/dev/sda1               1014M  180M  835M   18% /boot
/dev/mapper/centos-home   42G  3.4G   38G    9% /home
tmpfs                    1.6G     0  1.6G    0% /run/user/0
tmpfs                    1.6G     0  1.6G    0% /run/user/984
tmpfs                    1.6G     0  1.6G    0% /run/user/1003
overlay                   50G   23G   28G   45% /var/lib/docker/overlay2/a5bc...e65e/merged
overlay                   50G   23G   28G   45% /var/lib/docker/overlay2/5a3a...d865/merged
shm                       64M     0   64M    0% /var/lib/docker/containers/d510...0a1e/mounts/shm
overlay                   50G   23G   28G   45% /var/lib/docker/overlay2/a21d...8e9b/merged
shm                       64M     0   64M    0% /var/lib/docker/containers/e4b6...1173/mounts/shm
overlay                   50G   23G   28G   45% /var/lib/docker/overlay2/cc59...c72c/merged
shm                       64M     0   64M    0% /var/lib/docker/containers/e567...6685/mounts/shm
overlay                   50G   23G   28G   45% /var/lib/docker/overlay2/5b6e...98d2/merged
shm                       64M     0   64M    0% /var/lib/docker/containers/3f19...78ec/mounts/shm
overlay                   50G   23G   28G   45% /var/lib/docker/overlay2/446c...754e/merged
overlay                   50G   23G   28G   45% /var/lib/docker/overlay2/98a0...3657/merged
tmpfs                    7.8G   12K  7.8G    1% /var/lib/kubelet/pods/ba6a...c6f/volumes/kubernetes.io~secret/kube-proxy-token-zd26q
overlay                   50G   23G   28G   45% /var/lib/docker/overlay2/84afc435a3ab38ab2421f6faf9cffdcb3acaeb7a18313ae1a34889357a46945c/merged
tmpfs                    7.8G   12K  7.8G    1% /var/lib/kubelet/pods/d039...b5c0/volumes/kubernetes.io~secret/tigera-operator-token-crqnv
shm                       64M     0   64M    0% /var/lib/docker/containers/1667...028a/mounts/shm
overlay                   50G   23G   28G   45% /var/lib/docker/overlay2/496d...8cde/merged
shm                       64M     0   64M    0% /var/lib/docker/containers/e64c...6364/mounts/shm
overlay                   50G   23G   28G   45% /var/lib/docker/overlay2/a36a...85cd/merged
tmpfs                    7.8G   12K  7.8G    1% /var/lib/kubelet/pods/d19d...3ba2/volumes/kubernetes.io~secret/calico-typha-token-k476g
tmpfs                    7.8G   12K  7.8G    1% /var/lib/kubelet/pods/d19d...3ba2/volumes/kubernetes.io~secret/typha-certs
tmpfs                    7.8G   12K  7.8G    1% /var/lib/kubelet/pods/36bd...a6e9/volumes/kubernetes.io~secret/felix-certs
tmpfs                    7.8G   12K  7.8G    1% /var/lib/kubelet/pods/36bd...a6e9/volumes/kubernetes.io~secret/calico-node-token-qh4s6
overlay                   50G   23G   28G   45% /var/lib/docker/overlay2/0529...5257/merged
overlay                   50G   23G   28G   45% /var/lib/docker/overlay2/9f3d...4d93/merged
shm                       64M     0   64M    0% /var/lib/docker/containers/f578...c67e/mounts/shm
shm                       64M     0   64M    0% /var/lib/docker/containers/8db2...773c/mounts/shm
overlay                   50G   23G   28G   45% /var/lib/docker/overlay2/758f...afde/merged
overlay                   50G   23G   28G   45% /var/lib/docker/overlay2/0173...b9af/merged
tmpfs                    7.8G   12K  7.8G    1% /var/lib/kubelet/pods/64f0...441e/volumes/kubernetes.io~secret/coredns-token-7sxtt
tmpfs                    7.8G   12K  7.8G    1% /var/lib/kubelet/pods/f660...eb6d/volumes/kubernetes.io~secret/coredns-token-7sxtt
tmpfs                    7.8G   12K  7.8G    1% /var/lib/kubelet/pods/918c...582c/volumes/kubernetes.io~secret/calico-kube-controllers-token-zx262
overlay                   50G   23G   28G   45% /var/lib/docker/overlay2/c5f2a...fb58/merged
overlay                   50G   23G   28G   45% /var/lib/docker/overlay2/b808...e85a/merged
overlay                   50G   23G   28G   45% /var/lib/docker/overlay2/2688...acfd/merged
shm                       64M     0   64M    0% /var/lib/docker/containers/1b75...8e73/mounts/shm
shm                       64M     0   64M    0% /var/lib/docker/containers/4c1b...c7e4/mounts/shm
shm                       64M     0   64M    0% /var/lib/docker/containers/38e2...90b2/mounts/shm
overlay                   50G   23G   28G   45% /var/lib/docker/overlay2/1ed...cce6/merged
overlay                   50G   23G   28G   45% /var/lib/docker/overlay2/56d6...14d4/merged
overlay                   50G   23G   28G   45% /var/lib/docker/overlay2/4084...88ee/merged
overlay                   50G   23G   28G   45% /var/lib/docker/overlay2/27b2...3bb2/merged
overlay                   50G   23G   28G   45% /var/lib/docker/overlay2/3983...e1a5/merged
overlay                   50G   23G   28G   45% /var/lib/docker/overlay2/1b6b...a007/merged
tmpfs                    7.8G   12K  7.8G    1% /var/lib/kubelet/pods/fbfc...882f/volumes/kubernetes.io~secret/calico-apiserver-token-h468b
tmpfs                    7.8G  8.0K  7.8G    1% /var/lib/kubelet/pods/fbfc...882f/volumes/kubernetes.io~secret/calico-apiserver-certs
tmpfs                    7.8G  8.0K  7.8G    1% /var/lib/kubelet/pods/6dab...d8f5/volumes/kubernetes.io~secret/calico-apiserver-certs
tmpfs                    7.8G   12K  7.8G    1% /var/lib/kubelet/pods/6dab...d8f5/volumes/kubernetes.io~secret/calico-apiserver-token-h468b
overlay                   50G   23G   28G   45% /var/lib/docker/overlay2/4476...b167/merged
overlay                   50G   23G   28G   45% /var/lib/docker/overlay2/a7c9...67b2/merged
shm                       64M     0   64M    0% /var/lib/docker/containers/b0d7...3b1a/mounts/shm
shm                       64M     0   64M    0% /var/lib/docker/containers/3770...d3f6/mounts/shm
overlay                   50G   23G   28G   45% /var/lib/docker/overlay2/4122...ca4b/merged
overlay                   50G   23G   28G   45% /var/lib/docker/overlay2/ab2e...6cd8/merged

扩展和缩减(只有一个服务器-未测试)

略

清理集群

sealer delete --help

if provider is Bare Metal Server will delete kubernetes nodes

Usage:
  sealer delete [flags]

Examples:

delete to default cluster: 
        sealer delete --masters x.x.x.x --nodes x.x.x.x
        sealer delete --masters x.x.x.x-x.x.x.y --nodes x.x.x.x-x.x.x.y
delete all:
        sealer delete --all [--force]
        sealer delete -f /root/.sealer/mycluster/Clusterfile [--force]
        sealer delete -c my-cluster [--force]


Flags:
  -f, --Clusterfile string   delete a kubernetes cluster with Clusterfile Annotations
  -a, --all                  this flags is for delete nodes, if this is true, empty all node ip
  -c, --cluster string       delete a kubernetes cluster with cluster name
      --force                We also can input an --force flag to delete cluster by force
  -h, --help                 help for delete
  -m, --masters string       reduce Count or IPList to masters
  -n, --nodes string         reduce Count or IPList to nodes

Global Flags:
      --config string   config file (default is $HOME/.sealer.json)
  -d, --debug           turn on debug mode
      --hide-path       hide the log path
      --hide-time       hide the log time

执行清理

sealer delete --all

在这里插入图片描述

2022-07-05 13:15:59 [INFO] [runtime.go:67] Start to delete cluster: master [192.168.xxx.xxx], node []
Are you sure to delete these nodes?  Yes [y/yes], No [n/no] : y
/usr/bin/kubeadm
[reset] Reading configuration from the cluster...
[reset] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'
[preflight] Running pre-flight checks
[reset] Removing info for node "localhost.localdomain" from the ConfigMap "kubeadm-config" in the "kube-system" Namespace
[reset] Stopping the kubelet service
[reset] Unmounting mounted directories in "/var/lib/kubelet"
[reset] Deleting contents of config directories: [/etc/kubernetes/manifests /etc/kubernetes/pki]
[reset] Deleting files: [/etc/kubernetes/admin.conf /etc/kubernetes/kubelet.conf /etc/kubernetes/bootstrap-kubelet.conf /etc/kubernetes/controller-manager.conf /etc/kubernetes/scheduler.conf]
[reset] Deleting contents of stateful directories: [/var/lib/etcd /var/lib/kubelet /var/lib/dockershim /var/run/kubernetes /var/lib/cni]

The reset process does not clean CNI configuration. To do so, you must remove /etc/cni/net.d

The reset process does not reset or clean up iptables rules or IPVS tables.
If you wish to reset iptables, you must do so manually by using the "iptables" command.

If your cluster was setup to utilize IPVS, run ipvsadm --clear (or similar)
to reset your system's IPVS tables.

The reset process does not clean your kubeconfig files and you must remove them manually.
Please, check the contents of the $HOME/.kube/config file.
Module                  Size  Used by
vxlan                  49678  0 
ip6_udp_tunnel         12755  1 vxlan
udp_tunnel             14423  1 vxlan
xt_multiport           12798  11 
ipt_rpfilter           12606  1 
iptable_raw            12678  1 
ip_set_hash_ip         31658  1 
ip_set_hash_net        36021  3 
xt_set                 18141  10 
ip_set_hash_ipportnet    36255  1 
ip_set_bitmap_port     17150  4 
ip_set_hash_ipportip    31880  2 
ip_set_hash_ipport     31806  8 
dummy                  12960  0 
iptable_mangle         12695  1 
xt_mark                12563  97 
ip_vs_sh               12688  0 
ip_vs_wrr              12697  0 
ip_vs_rr               12600  7 
ip_vs                 145497  13 ip_vs_rr,ip_vs_sh,ip_vs_wrr
nf_conntrack_netlink    36354  0 
xt_addrtype            12676  8 
br_netfilter           22256  0 
ip6table_nat           12864  0 
nf_conntrack_ipv6      18935  1 
nf_defrag_ipv6         35104  1 nf_conntrack_ipv6
nf_nat_ipv6            14131  1 ip6table_nat
ip6_tables             26912  1 ip6table_nat
xt_conntrack           12760  28 
iptable_filter         12810  1 
ipt_MASQUERADE         12678  5 
nf_nat_masquerade_ipv4    13412  1 ipt_MASQUERADE
xt_comment             12504  315 
iptable_nat            12875  1 
nf_conntrack_ipv4      15053  29 
nf_defrag_ipv4         12729  1 nf_conntrack_ipv4
nf_nat_ipv4            14115  1 iptable_nat
nf_nat                 26787  3 nf_nat_ipv4,nf_nat_ipv6,nf_nat_masquerade_ipv4
nf_conntrack          133095  9 ip_vs,nf_nat,nf_nat_ipv4,nf_nat_ipv6,xt_conntrack,nf_nat_masquerade_ipv4,nf_conntrack_netlink,nf_conntrack_ipv4,nf_conntrack_ipv6
ip_tables              27126  4 iptable_filter,iptable_mangle,iptable_nat,iptable_raw
veth                   13410  0 
overlay                71964  2 
tun                    31740  1 
devlink                48345  0 
ip_set                 45644  7 ip_set_hash_ipportnet,ip_set_hash_net,ip_set_bitmap_port,ip_set_hash_ipportip,ip_set_hash_ip,xt_set,ip_set_hash_ipport
nfnetlink              14490  3 ip_set,nf_conntrack_netlink
bridge                151336  1 br_netfilter
stp                    12976  1 bridge
llc                    14552  2 stp,bridge
vmw_vsock_vmci_transport    30577  1 
vsock                  36526  2 vmw_vsock_vmci_transport
sunrpc                353352  1 
nfit                   55016  0 
libnvdimm             147731  1 nfit
iosf_mbi               15582  0 
crc32_pclmul           13133  0 
ghash_clmulni_intel    13273  0 
aesni_intel           189414  1 
lrw                    13286  1 aesni_intel
gf128mul               15139  1 lrw
glue_helper            13990  1 aesni_intel
ablk_helper            13597  1 aesni_intel
ppdev                  17671  0 
cryptd                 21190  3 ghash_clmulni_intel,aesni_intel,ablk_helper
vmw_balloon            18094  0 
pcspkr                 12718  0 
sg                     40721  0 
joydev                 17389  0 
parport_pc             28205  0 
i2c_piix4              22401  0 
parport                46395  2 ppdev,parport_pc
vmw_vmci               67127  1 vmw_vsock_vmci_transport
sch_fq_codel           17571  6 
xfs                   997127  3 
libcrc32c              12644  4 xfs,ip_vs,nf_nat,nf_conntrack
sd_mod                 46281  3 
sr_mod                 22416  0 
cdrom                  42556  1 sr_mod
crc_t10dif             12912  1 sd_mod
crct10dif_generic      12647  0 
crct10dif_pclmul       14307  1 
crct10dif_common       12595  3 crct10dif_pclmul,crct10dif_generic,crc_t10dif
crc32c_intel           22094  1 
serio_raw              13434  0 
ata_generic            12923  0 
pata_acpi              13053  0 
vmwgfx                276430  2 
floppy                 69432  0 
drm_kms_helper        179394  1 vmwgfx
syscopyarea            12529  1 drm_kms_helper
sysfillrect            12701  1 drm_kms_helper
sysimgblt              12640  1 drm_kms_helper
fb_sys_fops            12703  1 drm_kms_helper
ttm                   114635  1 vmwgfx
ata_piix               35052  0 
drm                   429744  5 ttm,drm_kms_helper,vmwgfx
libata                243133  3 pata_acpi,ata_generic,ata_piix
vmxnet3                58059  0 
mptspi                 22628  2 
scsi_transport_spi     30732  1 mptspi
mptscsih               40150  1 mptspi
mptbase               106036  2 mptspi,mptscsih
drm_panel_orientation_quirks    12957  1 drm
dm_mirror              22289  0 
dm_region_hash         20813  1 dm_mirror
dm_log                 18411  2 dm_region_hash,dm_mirror
dm_mod                124407  10 dm_log,dm_mirror
[
    {
        "Id": "6d81...9aff",
        "Created": "2022-07-04T10:40:28.068520236Z",
        "Path": "registry",
        "Args": [
            "serve",
            "/etc/docker/registry/config.yml"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 767,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2022-07-04T10:40:30.304277835Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:0d01...4fda",
        "ResolvConfPath": "/var/lib/docker/containers/6d81...9aff/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/6d81...9aff/hostname",
        "HostsPath": "/var/lib/docker/containers/6d81...9aff/hosts",
        "LogPath": "/var/lib/docker/containers/6d81...9aff/6d81...9aff-json.log",
        "Name": "/sealer-registry",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": [
                "/var/lib/sealer/data/my-cluster/rootfs/certs:/certs",
                "/var/lib/sealer/data/my-cluster/rootfs/registry:/var/lib/registry",
                "/var/lib/sealer/data/my-cluster/rootfs/etc/registry_config.yml:/etc/docker/registry/config.yml"
            ],
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {
                    "max-file": "3",
                    "max-size": "10m"
                }
            },
            "NetworkMode": "host",
            "PortBindings": {},
            "RestartPolicy": {
                "Name": "always",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd": null,
            "CapDrop": null,
            "Capabilities": null,
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "private",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": [],
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "KernelMemory": 0,
            "KernelMemoryTCP": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": null,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "MaskedPaths": [
                "/proc/asound",
                "/proc/acpi",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/sys/firmware"
            ],
            "ReadonlyPaths": [
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ]
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/a5bc...e65e-init/diff:/var/lib/docker/overlay2/362e...7587f2d449685a3a6/diff:/var/lib/docker/overlay2/b907...c3f7/diff:/var/lib/docker/overlay2/8f53...ae07/diff",
                "MergedDir": "/var/lib/docker/overlay2/a5bc12b6f24d74fb23c72e5b051cde8262853d0fdf612ccd060384663ec5e65e/merged",
                "UpperDir": "/var/lib/docker/overlay2/a5bc...3ec5e65e/diff",
                "WorkDir": "/var/lib/docker/overlay2/a5bc...e65e/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/var/lib/sealer/data/my-cluster/rootfs/registry",
                "Destination": "/var/lib/registry",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/var/lib/sealer/data/my-cluster/rootfs/etc/registry_config.yml",
                "Destination": "/etc/docker/registry/config.yml",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/var/lib/sealer/data/my-cluster/rootfs/certs",
                "Destination": "/certs",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],
        "Config": {
            "Hostname": "localhost.localdomain",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "5000/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "REGISTRY_HTTP_TLS_CERTIFICATE=/certs/sea.hub.crt",
                "REGISTRY_HTTP_TLS_KEY=/certs/sea.hub.key",
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "serve",
                "/etc/docker/registry/config.yml"
            ],
            "Image": "registry:2.7.1",
            "Volumes": {
                "/var/lib/registry": {}
            },
            "WorkingDir": "",
            "Entrypoint": [
                "registry"
            ],
            "OnBuild": null,
            "Labels": {}
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "ae1d...ac1b",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {},
            "SandboxKey": "/var/run/docker/netns/default",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "",
            "Gateway": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "",
            "IPPrefixLen": 0,
            "IPv6Gateway": "",
            "MacAddress": "",
            "Networks": {
                "host": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "3ed7...98c3e",
                    "EndpointID": "ebaa...1ef4",
                    "Gateway": "",
                    "IPAddress": "",
                    "IPPrefixLen": 0,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "",
                    "DriverOpts": null
                }
            }
        }
    }
]
sealer-registry
2022-07-05 13:16:28 [INFO] [local.go:316] Succeeded in deleting current cluster

删除镜像

sealer rmi  kubernetes:v1.19.8

在这里插入图片描述

清理后挂载情况

df -kh

可以看到,归还了部分硬盘空间
在这里插入图片描述
查看sealer和docker的数据目录大小

du -h --max-depth=1 /var/lib/sealer/*
du -h --max-depth=1 /var/lib/docker/

在这里插入图片描述
sealer rmi后,瞬间清净了。
在这里插入图片描述
在这里插入图片描述

find / -name docker
find / -name sealer

在这里插入图片描述
在这里插入图片描述

其他

sealer images
|     IMAGE NAME     | IMAGE ID    | ARCH  | VARIANT |       CREATE        |   SIZE   |
| kubernetes:v1.19.8 | 46f8...7618 | amd64 |         | 2022-07-04 18:37:53 | 956.60MB |
# 清理docker,未找到运行docker运行,先这么处理了,暂不清楚后果如何
rm -rf /var/lib/docker

暂时没有测试其他的操作

END

sealer-阿里开源的实现像docker一样封装整个kubernetes集群 概念 sealer可以像docker那样把整个集群制作成镜像,实现分布式软件的构建、交付、运行。 应用场景: kubernetes集群安装 kubernetes集群、数据库、中间件、SaaS应用整体打包,一键交付 离线交付,多架构支持,国产化支持 各种在kubernetes上编排的分布式应用交付 Clusterfile:用户自定义kubeadm,helm values 等配置的覆盖或合并,plugins,你可以覆盖或合并任何你想要的配置文件。像chart values、docke.. 阅读详情

相关推荐

ali 开源sealer包 ,用于混合云搭建k8s

sealer4版本 是目前使用较多的版本

【K8s】专题三(1):Kubernetes 安装方法之 Sealer

Kubernetes 专题 - 安装方法之 Sealer

运维、实施交付领域知识交流 2363

4路QSFP28接口能玩出什么花样?基于璞致VU13P开发板的100G网络测试方案

本文详细介绍了基于璞致PZ-VU13P-KFB开发板构建100G网络测试方案的实战指南。该方案充分利用板载Xilinx Virtex UltraScale+ FPGA的强大算力与4路QSFP28接口,涵盖从光模块选型、Aurora协议配置、开源Corundum方案部署,到误码率测试及散热优化的全链路流程,为高速网络设备研发与验证提供了可靠的硬件平台。

cola5的博客 452

sealer 自定义 k8s 镜像并部署高可用集群

sealer 可以自定义 k8s 镜像,想把一些 dashboard 或者 helm 包管理器打入 k8s 镜像,可以直用 sealer 来自定义。 sealer 部署的 k8s 高可用集群自带负载均衡。sealer 的集群高可用使用了轻量级的负载均衡 lvscare。相比其它负载均衡,lvscare 非常小仅有几百行代码,而且 lvscare 只做 ipvs 规则的守护,本身不做负载非常稳定,...

Johnny_Li的博客 2269

C# 操作Excel的时候,出现"被呼叫方拒绝接受呼叫的异常"的解决方案(参考官方给出的解决方案)

首先官方有对这个错误给出解释和解决方案,连接如下: https://docs.microsoft.com/zh-cn/previous-versions/ms228772(v=vs.120)#%E5%8F%AF%E9%9D%A0%E7%BC%96%E7%A8%8B 简单来说,貌似是线程问题,我猜。。。 之前我尝试着在代码中添加 Thread.Sleep(1000); 来进行解决,这种办...

Ck_Max的博客 5767

智能车竞赛新手必看:用AD21从零画一块英飞凌TC264核心板(附开源PCB文件)

本文详细介绍了使用Altium Designer 21(AD21)从零开始设计英飞凌TC264核心板的完整流程,涵盖原理图绘制、PCB布线到最终DRC检查的全过程。针对智能车竞赛新手,提供了实用的硬件设计技巧和开源PCB文件,帮助快速掌握TC264核心板开发。

weixin_27017211的博客 246

sealer构建k8s集群时遇到的问题总结

本文介绍了使用Sealer工具部署Kubernetes集群的完整流程及常见问题解决方案。主要内容包括:1)部署前的系统环境准备(关闭防火墙、SELinux等);2)Sealer下载安装及集群部署命令;3)构建自定义Sealer镜像的方法;4)常见问题处理(网络配置、Docker镜像拉取失败、节点NotReady状态等);5)Docker私有仓库的搭建与配置。特别针对CentOS7环境提供了OpenSSL证书生成等问题的具体解决方案,为Kubernetes集群部署提供了实用参考。

zyf1889665的博客 1646

Uds诊断自动化(CANoe.diva应用)

(7)其他配置选择可以保持默认(一般情况下,DTC以及31服务、下载服务需要另外测试)。(1)打开CANoe.Diva软件,并新建Diva工程。(2)设置工程名和保存位置;在"Specification file"(3)测试案例打开后的界面如下,可以对要进行测试的案例进行勾选,(可查看下角的进度条)后;(3)等待DIva工程的生成;(4)接下来是修改Diva工程选项,如下图点击。,如用例间的时间间隔、复位等待时间等。,即可打开导入的测试工程。,即可生成测试用例。(1)在CANoe中。

LIUJIAAAAA的博客 3433

[docker]Sealer简介

介绍了sealer的安装,集群镜像的构建与运行,以及对应的kubefile、clusterfile格式

飞鹰技术 2092

VTK-9.5.0 1D2D3DWidget实现灰度图+深度图+3D点云显示(可轻松集成到自己的项目)

VTK1D2D3DWidget是一个基于Qt和VTK开发的3D点云可视化工具,支持RGB和深度点云数据的显示与处理。主要功能包括点云加载、可视化、保存为PLY格式文件,以及背景颜色、点间隔、坐标轴显示等参数的自定义设置。该工具采用模块化设计,核心组件包括主窗口管理类、VTK渲染组件和自定义鼠标交互样式,依赖Qt5+和VTK9.5.0库实现跨平台支持。项目提供完整的源码和构建指南,适用于点云数据的快速展示与分析。

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 385

智能车图像处理11-进阶篇3--中线累积差值的统计

中线累积差值的统计在后面判断小S,以及长直道的时候都有用到,关键点在于中线的跳变 第12 - 13 行:comulants1 和comlants2代表的是两种不同的累差,取的行数不同 第14-17 行:comulants2取6到25行,其实就是My_Abs(LCenter[i], LCenter[i - 1])的累加 第18-21 行:comulants1去第1到40行 第27- 行: 计算了一下右线的开始于最终结束行,这里判断R_black是否为0,是和中线的提取中g

taiyuezyh的博客 3823

k8s小白安装

该错误可能是sealer版本0.8.6导致出现的,后来使用sealer 0.8.5版本恢复正常。

GCZ_START的博客 1320

【华为OD机试】真题E卷-一种字符串压缩表示的解压(C++)

有一种简易压缩算法:针对全部为小写英文字母组成的字符串,将其中连续超过两个相同字母的部分压缩为连续个数加该字母,其他部分保持原样不变。例如:字符串aaabbccccd 经过压缩变成字符串 3abb4cd请您编写解压函数,根据输入的字符串, 判断其是否为合法压缩过的字符串若输入合法则输出解压缩后的字符串 否则输出字符串!error来报告错误。

u014481728的博客 892

【亲测免费】 Sealer 项目使用教程

Sealer 是一个开源项目,旨在帮助用户构建、分享和运行 Kubernetes 集群以及分布式应用程序。该项目由 sealerio 团队开发,并托管在 GitHub 上。Sealer 项目的目标是简化 Kubernetes 集群的部署和管理,使得用户能够更轻松地创建和管理自己的 Kubernetes 环境。 ## 项目快速启动 ### 安装 Sealer 首先,你需要安装 Sealer。你...

gitblog_00604的博客 1240

VMware Horizon 8 2111 部署系列(九)创建即时克隆桌面池

即时克隆桌面池是在 vCenter Server 中使用 vmFork 技术(称为即时克隆 API)从最佳配置映像创建的自动桌面池。即时克隆共享同一个基础映像虚拟机,使用基础映像虚拟机的快照创建的,它使用的存储空间也少于完整虚拟机。 即时克隆始终保持开机状态,并在注销后从当前发布的映像重新创建。...

白昼的技术专栏 4042

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

sealos安装单节点k8s

sealor安装k8s

XMYX-0 2514

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

从零部署k8s以及系列配套组件安装之k8s安装(一)

k8s的超简易安装 二 安装rancher sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher

m0_37986274的博客 991

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

sealer实践

sealer

tianhouquan的专栏 1447

sealos安装k8s

kubeadm2、安装k8s的方式有很多3、关于sealos来安装 k8s ,也是非常建议大家去官方文档看看,,说的很非常清楚,一看就知道。

卷心菜投手 4383

Rainmeter音乐可视化器:打造专属桌面音频特效的完全指南

想要让桌面随着音乐节奏舞动吗?Rainmeter音乐可视化器正是你需要的魔法工具!这款强大的桌面美化插件能够将你正在播放的音乐转化为实时频谱显示的视觉盛宴,让你的桌面充满动态美感。 ## 从零开始:三步搭建你的音频特效系统 ### 第一步:获取项目文件 首先需要下载Monstercat Visualizer项目文件。使用以下命令克隆仓库: ``` git clone https://gitc

gitblog_00191的博客 1093

sealer,“集群”版本的 Docker,交付复杂度的终结者

背景随着时代的发展,单机上跑的单体应用已经越来越少了,分布式应用几乎已经无处不在。Docker 很好的对单机应用进行了镜像化的封装,实现在单机上 Build Ship Run, 从此单机上应用的运行没有什么是一个 docker run 解决不了的。docker 对比 rpm 之类的工具显然一致性好很多,原因是 docker 把 rootfs 同样封装到了镜像之中,也就是所...

Go中国 868

sealer带你你玩转云原生生态软件

sealer是阿里巴巴开源的一款集群镜像技术实现。可以把整个集群打成像docker镜像一样的镜像包,安装生态任何软件都可以sealer run xxx搞定,保障整个集群纬度的交付一致性。是专有云和离线交付利器,当然普通开发者可以用它来快速实践云原生生态软件,比如你要安装k8s 或者prometheus或者高可用的mysql都可以做到一键搞定。 与helm的区别是,helm只编排不打包,这很多helm国内环境下载镜像就是个问题,而sealer不存在这个问题,所有依赖都会被打包,而且整个集群整体打包。 | 用s

github_35614077的博客 1248

Sealer:构建、分享和运行任意分布式应用的利器

Sealer:构建、分享和运行任意分布式应用的利器 项目地址:https://gitcode.com/gh_mirrors/se/sealer 在现代软件开发中,分布式应用的部署和管理一直是一个复杂且耗时的过程。然而,随着Sealer的出现,这一切都变得简单高效。Sealer不仅简化了Kubernetes集群和应用的打包与部署,还提供了强大的生命周期管理功能,使得开发者能够更专注于应用本身,而不是...

gitblog_00610的博客 625

推荐一款可快速全量交付 Kubernetes 集群分布式应用的神器 Sealer

公众号关注「奇妙的 Linux 世界」设为「星标」,每天带你玩转 Linux !什么是集群镜像顾名思义,和操作系统 .iso 镜像或 Docker 镜像类似,集群镜像是用一定的技术手段把...

easylife206的专栏 1990

集群镜像:实现高效的分布式应用交付

作者 | fanux.中弈什么是集群镜像顾名思义,和操作系统 .iso 镜像或Docker 镜像类似,集群镜像是用一定的技术手段把整个集群的所有文件以一定格式打成的一个资源包。对比单机和...

云原生实验室 311

sealos爆火后依然要开发sealer,背后原因有哪些?

云原生是应用开发的大变革,在开发者的共同努力下,会挖掘出更多有意义的开源项目促进云往简单开放的方向发展。

m0_46700908的博客 7020
上一篇: podman创建helloWord镜像实例-参考docker
下一篇: java-处理文本文件-大量试题重排序
privateobject
博客等级 码龄9年 107粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值