欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    Kubernetes 构建工具浅析.docx

    • 资源ID:1464711       资源大小:24.15KB        全文页数:9页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Kubernetes 构建工具浅析.docx

    KUberneteS兔群的组件众多,要部署一套符合生产环境的集群并不是一件容易的事.不过随着云原生生态的逐渐成熟、社区的快速发展,特别是在它成为事实上的容器编排标准以后,培木所有的主流云平台都完全支持Kubernetes,或把它作为核心的云解决方案。同时,本地部署也伴陋若出现了各类成熟的主动化解决方案.因此,当我们计划或者开始使用KUberneteS时,我们都应该尝试问自己一个问题:“我该如何进行第次的部詈?”.在本文中,爸者将向大家介绍4种不同的技术,大家可以基于此4种不同的构建工具在自己的计算机上使用Kuberneteso对于每一个,空者尽可能都会对解决方案进行简短描述并对其优缺点进行分析以帮助大家能够对Kubernetes的有所了解.MinikUbeMinikUbe是由Kubernetes社区维护的单机版的Kubcrnetes集群,其支持nacOS,1.inux、以及Windows等多种操作系统平台,M于其最新的官方Stable版本,并开始支持Kubernetes的大部分功能,从基础的容器编排管理,到高欲特性如负载均衡、IngreSs,权限拄制等.非常适合作为KUberneteS入门,或开发测试环境使用。MinikUbe支持以下Kubernetes功能:DNS、NodcPortSxConfigMaps和Secrets、Dashboards容器运行时:Docker«CRl-O以及Conlainerd、启用CNI(容器网络接口)以及Ingress等等.其架构示意图如卜.所示:CIUSterMiniKubePodPod下面我们以Mac环境为例,简要描述下Minikube相关部署过程,具体如下所示:administrator1.angOutOfMei%binzsh-c11S(curl-fsS1.cunkaiHomebrewCNrawmasterHomebrew.sh)u(administratorJava1.angOutOfMemory%brewinstallminikubeadmiistrator3ava1.agOutOfMemory%zinikubestart当然,我们还可以自定义参数进行启动,具体如下所示:(admiistratorJava1.angOutOfMemory%minikubestart-:/kubernetes.oss-cn-.iso-registrymirrorhttps:/registry.docker- -image-mirror-countrymen- -image-repositoryregi-hangzhou- -vmdrivernone-memory=4096部署完成后,检测相关配笆参数等administrator%kubectlversionclientVersion:version.InfofMajor:"1",Minor:"21m,GitVersion:mv1.21.2u,GitCommit:Me92fbfbf53427de67cacle9faS4aaa09a28371d7M,GitTreeState:"clean",BuildDate:m221-6-16T12:52:14Z1.GoVersion:',gol.16.5",Compiler:"gc,Platform:Mdarwin/amd64"ServerVersion:version.InfoMajor:"l"Minor:,20°jGitVersion:"vl.20.7,',GitCommitr132a687512d7fbO58d0F589f07d4121b3f0a2e2',GitTreeStatezuClean",BuildDate:m221-5-12T12:32:49Z",GoVersion:"gol.15.12",Compiler:',gc”,Platform:,'linuxamd64")(administrator%kubectlgetnode-owideNAMESTATUSRO1.ESAGEVERSIONINTERNA1.-IPEXTERNA1.-IPOS-IMAGEKERNE1.-VERSIONCONTAINER-RUNTIMEminikubeReadycontrol-plane,masterIShvl.2.7192.168.49.2<none>Ubuntu20.4.21.TS5.1.25-linu×kitdocker:administrator%kubectlgetpod-ANAMESPACENAMEREADYSTATUSRESTARTSAGEkube-SystemCorednS74ff55c5b-p6dlz1/1Running0IShkube-Systemeted-minikube1/1Running015hkube-systemkube-apiserver-minikube1/1Running15hkube-systemkube-cotroller-manager-minikube1/1Running0IShkube-Systemkube-proxy-der721/1RunningiShkube-systemkube-scheduler-minikube1/1RunningIShkube-Systemstorage-provIsioner1/1Running315hMinikube是一个Kubernetes-SIGs项目,其实现方法为生成一个实质上是单节点K8s集群的VM.由于对一系列管理程序的支持,它可以在所有主要操作系统上使用。还允许并行创建多个实例.基于用户的角度而言,Minikube是一款非常适合初学者的工具.使用minikbestart命令行启动集群,几分钟后Kubectl就可以开始了。若要指定特定的Kubernetes版本,可以使用-Kubernetesversion标志参数即可.KindKind即uKubernetesInDocker"的缩写,顾名思义是使用Docker容器作为Node并将Kubernetes部署至其中的一个工具,官方文档中也把Kind作为一种本地集群搭建的工具进行推荐.Kind是一个命令行工具,可帮助我们基于Docker潦像创建本地Kubernetes集群,使其能够模拟本地系统上的Kubernetes集群.Kind是另一个KubernetesSlGs项目,但与Minikube相比有很大不同.顾名思义,它将集群移动到Docker容器中.与生成VM相比,这将显著加快启动速度.创建集群与Minikube的方法非常相似.执行类创建集群,通过使用不同的名称(-name)kind,可以并行创建多个实例.其架构示意图如下所示:与Minikube类似,简要描述一下其部署过程,具体如下所示:IadministratorDava1.angOutOfMemory%brewinstallkid=>Downloadinghomebrewbott1.esbott1.eskind-0.11.1.btfl1.s»«»1»1»1»1»1»««,aa1«a1«a1«a1«Iaa»aAAa»AAIA1,4AaIA1,4AaIA1,上#l.%=>Pouringkind-0.11.l.big-sur.bottle.tar.gz=>Caveatszshcompletionshavebeeninstalledto:usrlocalsharezshsite-functions三三>SummaryusrlocalCellarkind0.11.1:8files,8.4MB(admiistrator3ava1.angOutOfMefnory%kindversionkindv.ll.lgol.16.4damd64接下来,将下面的配置内容保存至一个YAM1.文件中,比如名为kind-config.yaml,具体如下所示:kind:ClusterapiVersion:kind.sigs.k8s.iovlalha3kubeadmConfIgPatches:IapiVersion:kubeadm.k8s.iovlbetalkind:ClusterConfigurationmetadata:name:confignetworking:servicesubnet:10.0.0.1/16imageRepository:google-containersodeRegistratio:kubeletE×traArgs:google-containerspase:3.1apiVersion:kubeadm.k8s.iovlbetalkind:InitConfigurationmetadata:name:confignetworking:ServiceSubnet:10.0.0.1/16imageRepository:google-containersnodes:control-plane(administPatorJava1.angOutOfMemory%Kindcreatecluster-namedemo-cis-configkind.yamlCreatingcluster"kind"Ensuringnodeimage(kindest/node:vl.21.1)EaPreparingnodesSCreatingkubeadmconfigBStartingcontrol-planeGKlustercreationcomplete.Youcannowusetheclusterwith:exportKUBECONFIGv(kindgetkubeconfig-path-name=mdemo-c1s,),kubect1cluster-info基于此解决方案,允许我们部罟所有类型的集群:例如:单节点、1个Master和几个Worker以及多个MaSter和多个Worker,不仅如此,这些集群非常容易部罟.通常可以借助一个非常简单的YAM1.文件完成.从本质上而言,Kind并不是打包一个虚拟化镜像,而是直接将基于K8S组件运行在Docker环境。那么,此种模式能够带来了哪些好处呢?具体主要涉及以下方面:1.不需要运行GuestOS,占用资源更低.2、不基于虚拟化技术,可以在VM中使用.3、文件更小,更利于移植.K3s基于其简单性.作为一个单一的二进制文件(约100MB)进行打包和部雪,我们只需几秒钟就可以得到一个完全成熟的Kubernetes集群.安装体验就像在集群的每个节点上运行一个脚本一样简单.基于其二进制文件封装实体,K3s几乎运行了Kubernetes集群的所有组件,包括APIserver.Scheduler和Controller.默认情况下,每个K3s的安装都包括控制平面、Kubelet和Containerd运行时,这些已经足以运行Kubernetes工作负载.当然,也可以添加只运行KubeIetAgent和Containerd运行时的专用Worker节点,来调度和管理Pod生命周期。与传统的Kubernetes集群相比,K3s中的Master节点和Worker节点并没有明显的区别.可以在任何节点上调度和省理Pod,不管它们扮演的是什么角色.所以,Master节点和Worker节点的命名方式不适用于K3s集群.在K3s集群中,格运行控制平面组件与KUbelet的节点称为SerVer,而只运行Kubelet的节点称为Agent.Server和Agent都有容器运行时和一个Kubeproxy,管理整个集群的Tunnel和网络流量。其单节点架构示意图如下所示:源自官网(同下)K3s单节点集群的架构如上图所示,该集群有一个内嵌SQ1.ite数据库的单节点K3sServer.在这种配置中,每个Agent节点都注册到同一个Server节点.K3s用户可以通过调用Server节点上的K3sAPI来操作Kubernetes资源。虽然单节点k3s集群可以满足各种用例,但对于KubernetesControl-Plane的正常运行至关重要的环境,我们可以在高可用配置中运行K3s.一个高可用K3s集群由以下几个部分组成:1、K3sServer节点:两个或更多的Server节点将为KubernetesAPI提供服务并运行其他Control-Plane服务2、外部数据库:与单节点k3s设冒中使用的嵌入式SQ1.ite数据存储相反,高可用K3s需要挂载一个ExternalDatabase外部数据库作为数据存储的媒介。其高可用架构示意图如下所示:相对于上述的组件工具,K3s部署起来较为简单,毕竟其已经技作为集成的组件进行部署运行,具体可参考如下命令行所示:administrator%curl-Sf1.httpjrncerk3sk3s-install.shINSTA1.1._K3S_MIRR0R-cnhKubeadmKubeadm是一个基于Kubeadminit和Kubeadmjoin的工具组件,提供了一个创建Kubernetes集群的"快捷途径"的最佳实践.其通过执行必要的操作来启动和运行最小可用集群.依据其设计理念,仅关注启动引导,而非配置机器。同样的,安装各种"锦上添花”的扩展,例如KUbemeteSDaShboard、监控方案、以及特定云平台的扩展,都不在讨论范围内.理想情况下,使用Kubeadm作为所有部署工作的基准将会更加易于创建一致性集群。其参考架构示意图如下所示:对于初学者而言,此外,Kubeadm允许我们选择容器运行时,以及使用默认配置的Docker.这对大家很有错助,基于此能够使用Docker命令检杳Kubernetes创建的容器.综上所述,在实际的场景中,合理利用"恰如其分”的构建工具,对于我们进行容器平台的部署或多或少具有参考意义.只有对相关工具的深入理解、实践,我们才能够在日常的容器开发、运维活动中从容应对.

    注意事项

    本文(Kubernetes 构建工具浅析.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开