当前位置: 首页 > 科技观察

该工具可以将Kubernetes集群打包成一个镜像

时间:2023-03-19 21:07:43 科技观察

sealer[?si?l?r]是一个打包交付分布式应用的解决方案。它通过将分布式应用和它们的数据库中间件依赖打包在一起,解决了复杂应用的问题。交货问题。sealer构建的产品称为clustermirror。集群镜像中嵌入了一个kubernetes,解决了分布式应用的交付一致性问题。集群镜像可以推送到注册中心分享给其他用户,也可以在官方仓库中找到非常通用的分布式软件直接使用。Docker可以把一个操作系统的rootfs+application构建成一个容器镜像,sealer把kubernetes看做一个操作系统,在这个更高的抽象纬度上做的镜像就是集群镜像。实现整个集群的BuildShareRun!!!有了集群镜像,用户实践云原生生态技术将变得异常简单,例如:1.安装一个kubernetes集群#installsealerwgethttps://github.com/alibaba/sealer/releases/download/v0.1.4/sealer-0.1.4-linux-amd64.tar.gz&&\tarzxvfsealer-0.1.4-linux-amd64.tar.gz&&mvsealer/usr/bin#Runclustersealerrunkubernetes:v1.19.9#onthepubliccloud运行一个kubernetes集群sealerrunkubernetes:v1.19.9--masters3--nodes3#在公有云上运行指定节点数的kuberentes集群#在现有机器上安装sealerrunkubernetes:v1.19.9--masters192.168.0.2,192.168.0.3,192.168.0.4--nodes192.168.0.5,192.168.0.6,192.168.0.7--passwdxxx2.安装prometheus集群sealerrunprometheus:2.26.0上面的命令可以帮你安装一个包含prometheus的kubernetes集群,类似istioingressgrafana等其他软件即可这样跑未完待续,Sealer最好的地方在于用户可以很方便的自定义一个集群镜像,通过类似Dockerfile的文件,即Kubefile来描述和构建:FROMregistry.cn-qingdao.aliyuncs.com/sealer-io/kubernetes:v1.19.9RUNwgethttps://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yamlCMDkubectlapply-recommended.yaml使用以下sealerbuild命令构建集群镜像:sealerbuild-tregistry.cn-qingdao.aliyuncs.com/sealer-io/dashboard:latest.然后创建包含仪表板的集群映像,可以运行或与其他人共享。将准备好的集群镜像推送到镜像仓库。集群镜像仓库兼容docker镜像仓库标准。可以将集群镜像推送到dockerhub、阿里ACR或Harborsealerpushregistry.cn-qingdao.aliyuncs.com/sealer-io/dashboard:最新使用场景&特性[x]极简安装kubernetes等软件的方法生产环境或离线环境下的kubernetes生态[x]通过Kubefile,可以轻松自定义kubernetes集群镜像,将集群和应用打包,并可以提交到仓库共享[x]强大的生命周期管理能力,集群升级、集群备份恢复、节点扩容缩容等,简单到难以想象[x]速度极快,3分钟内完成集群安装[x]支持ARMx86,v1.20以上版本支持containerd,并且兼容几乎所有支持systemd的linux操作系统[x]不依赖ansiblehaproxykeepalived,通过ipvs实现高可用,占用资源少,稳定e可靠[x]官方仓库有很多生态软件镜像可以直接使用,包括所有依赖,一键安装快速开始安装一个kubernetes集群sealerrunkubernetes:v1.19.9--masters192.168.0。2--passwdxxx如果安装在云端:exportACCESSKEYID=xxxexportACCESSKEYSECRET=xxxsealerrunregistry.cn-qingdao.aliyuncs.com/sealer-io/dashboard:latest#或者指定运行集群sealerrunregistry.cn-qingdao.aliyuncs的节点数。com/sealer-io/dashboard:latest\--masters3--nodes3[root@iZm5e42unzb79kod55hehvZ~]#kubectlgetnodeNAMESTATUSROLESAGEVERSIONizm5e42unzb79kod55hehvzReadymaster18hv1.16.9izm5ehdjw3kru84f0kq7r7zReadymaster18hv1.16.9izm5ehdjw3kru84f0kq7r8zReadymaster18hv1.16.9izm5ehdjw3kru84f0kq7r9zReady18hv1.16.9izm5ehdjw3kru84f0kq7razReady18hv1.16.9izm5ehdjw3kru84f0kq7rbzReady18hv1.16.9查看镜像默认启动配置:sealerinspect-cregistry.cn-qingdao.aliyuncs.com/sealer-io/dashboard:latest使用Clusterfile拉起一个k8s集群使用官方已经提供的基础镜像(sealer-io/kubernetes:v1.19.9)快速拉起一个k8s集群Scenario1.Installonanexistingserver,theprovidertypeisBAREMETALClusterfileContent:apiVersion:sealer.aliyun.com/v1alpha1kind:Clustermetadata:name:my-clusterspec:image:registry.cn-qingdao.aliyuncs.com/sealer-io/kubernetes:v1.19.9provider:BAREMETALssh:passwd:pk:xxxpkPasswd:xxxuser:rootnetwork:interface:eth0cniName:calicopodCIDR:100.64.0.0/10svcCIDR:10.96.0.0/22withoutCNI:falsecertSANS:-aliyun-inc.com-120.0.masters:ipList:-172.20.125.234-172.20.126.5-172.20.126.6nodes:ipList:-172.20.126.8-172.20.126.9-172.20.126.10Executethefollowingcommand:[root@iZm5e42unzb79kod55hehluvZly[froot@iZm5e42unzb79kod55hehluvZly-]#seroot@iZm5e42unzb79kod55hehvZ~]#kubectlgetnodeNAMESTATUSROLESAGEVERSIONizm5e42unzb79kod55hehvzReadymaster18hv1.16.9izm5ehdjw3kru84f0kq7r7zReadymaster18hv1.16.9izm5ehdjw3kru84f0kq7r8zReadymaster18hv1.16.9izm5ehdjw3kru84f0kq7r9zReady18hv1.16.9izm5ehdjw3kru84f0kq7razReady18hv1.16.9izm5ehdjw3kru84f0kq7rbzReady18hv1.16.9场景2.自动申请阿里云服务器进行安装,provider:ALI_CLOUDClusterfile:apiVersion:sealer.aliyun.com/v1alpha1kind:Clustermetadata:name:my-clusterspec:image:registry.cn-qingdao.aliyuncs.com/sealer-io/kubernetes:v1.19.9provider:ALI_CLOUDssh:passwd:pk:xxxpk密码:xxxuser:rootnetwork:interface:eth0cniName:calicopodCIDR:100.64.0.0/10svcCIDR:10.96.0.0/22withoutCNI:falsecertSANS:-aliyun-inc.com-10.0.0.2masters:cpu:4memory:4count:3systemDisk:100dataDisks:-100nodes:cpu:4memory:4count:3systemDisk:100dataDisks:-100准备阿里云的aksk[root@iZm5e42unzb79kod55hehvZ~]#ACCESSKEYID=xxxxxxxACCESSKEYSECRET=xxxxxxxsealerapply-f将Clusterfile基本设置的一些源码信息写入Clusterfile存放在/root/.sealer/[cluster-name]/Clusterfile,所以可以这样释放集群:./sealerdelete-f/root/.sealer/my-cluster/Clusterfile制作自定义集群镜像,这里制作仪表盘镜像例如,创建一个dashboard目录,并创建一个Kubefile文件,内容为:FROMregistry.cn-qingdao.aliyuncs.com/sealer-io/kubernetes:v1.19.9RUNwgethttps://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yamlCMDkubectlapply-recommended.yaml[root@iZm5e42unzb79kod55hehvZdashboard]#exportACCESSKEYID=xxxxxxx[root@iZm5e42unzb79kod55hehvZdashboard]#exportACCESSKEYSECRET=xxxxxxx[root@iZm5e42unzb79kod55hehvZdashboard]#sealerbuild-fKubefile-tmy-kuberentes-cluster-with-dashboard:latest.创建一个带有dashboard的自定义集群,操作同上,只是替换Clusterfile中的image字段:apiVersion:sealer.aliyun.com/v1alpha1kind:Clustermetadata:name:my-clusterspec:image:my-kuberentes-cluster-with-dashboard:latestprovider:ALI_CLOUDssh:passwd:pk:xxxpkPasswd:xxxuser:rootnetwork:interface:eth0cniName:calicopodCIDR:100.64.0.0/10svcCIDR:10.96.0.0/22withoutCNI:falsecertSANS:-aliyun-inc.com-10.0.0.2masters:cpu:4memory:4count:3systemDisk:100dataDisks:-100nodes:cpu:4memory:4count:3systemDisk:100dataDisks:-100#准备阿里云的aksk[root@iZm5e42unzb79kod55hehvZ~]#ACCESSKEYID=xxxxxxxACCESSKEYSECRET=xxxxxxxsealerapply-fClusterfile将创建的集群镜像推送到镜像仓库tagmy-sealerentestagmy-sealerentestagmy-带仪表板的集群:迟到stregistry.cn-qingdao.aliyuncs.com/sealer-io/my-kuberentes-cluster-with-dashboard:latestsealerpushregistry.cn-qingdao.aliyuncs.com/sealer-io/my-kuberentes-cluster-with-dashboard:latest可以复用镜像供他人使用仓库地址:https://github。com/阿里巴巴/封口机