版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Kubernetes概念
二、kubernetesObjects(k8s对象ks里面操作的资源实体,就是ks的对象,可以使用aml来对象。然后让ks根据am的创建出这个对象;eclcrerunexpse操作Kubernetes对象——无论是创建、修改,或者删除——需要使用KubernetesAPI。比如,当 命令行接口时,CLI会执行必要的KubernetesAPI调用uernees对象指的是Kbernees系统的持久化实体,所有这些对象合起来,代表了你集群的实际情况。常规的应用里,我们把应用程序的数据在数据库中,ubns将其数据以n对象的形式通过apisrvr在d中。具体来说,这些数据(Kbernees对象)描述了:每一个Kubernetesspec必须由您来提供,描述了您对该对象所期望的statusstatusKubernetesKubernetesKubernetes通过对应的控制器,###kubectlcreatedeploymentmy-nginx--apiVersion:kind:deployment.kubernetes.io/revision: creationTimestamp:"2021-04-generation:app:my-name:my-namespace:resourceVersion:uid:5a47e879-e2e9-40d1- spec:###progressDeadlineSeconds:replicas:1###revisionistoryLimit:app:my-maxSurge:maxUnavailable:type:temcreationTimestamp:app:my--image: imagePull:name:resources:terminationMessagePath:/dev/termination-terminationMessage:dns:restart:schedulerName:default-securityContext:terminationGracePeriodSeconds:status:###availableReplicas:1##-lastTransitionTime:"2021-04- lastUpdateTime:"2021-04-message:Deploymenthasminimumreason:status:type:lastUpdateTime:"2021-04-27T11:38:17Z"message:ReplicaSet"my-nginx-6b74b79f57"hassuccessfullyprogressed.reason:NewReplicaSetAvailablestatus:"True"type:ProgressingobservedGeneration:readyReplicas:replicas:etcd保存的创建资源期望的状态和最终这个资源的状态要是一致的;spec和status要最终一致##1、kubectlcreatedeploymentmy-nginx--image=nginx##2、api-server保存etcd,controller-manager最终解析数据,知道集群要my-nginx一份,保3、kubelet就做一件事情,spec状态和最终状态一致if(my-nginx.replicas!={}}123456123456789##kubectlrunmy-nginx666--image=nginx#启动一个##1、kubectlgetpodmy-nginx666-oyaml集群中挑一个同类资源,获取出他的yaml##2、kubectlrunmy-tomcat--image=tomcat--dry-run-oyaml1123456789kind:Podname:my-tomcat-image:tomcatresources:{}#资源类型kubectlapi-resources:#同一个资源有可能有多个版本。看kubectlapi-resources提示的。::当您在Kubernetesspec字段,通过该字段描述您期望的目标状态可以使用kubectl命令行创建对象,业可以编 格式的文件进行创1123456789kind:Deploymentapp:replicas:2#运行2app:nginx-name:nginx-containerPort:112345kubectlapply-fkubectldelete-fk8s只依赖一个就是etcd apiVersion用来创建对象时所使用的KubernetesAPIkindmetadata用于唯一确定该对象的元数据:包 这就是我们以后要完全参照的Kubernetes对象;kubectlxxxxx。yaml1包含多个yaml文件的多 1212345678kubectlrunnginx--imagekubectlcreatedeploymentnginx--imageapply-f-使用指令性的对象配置(imperativeobjectconfiguration)时,需要向kubectl的操作 ce,apply,delete等),可选参数以及至少一个配置文件的名字。配置文件中必包括一个完整的对象的定义,可以是yaml格式,也可以是json9kubectlcreate-fnginx.yamlkubectldelete-fnginx.yaml-fkubectlce-f式#处理经存在的对象。可以先执行diff指令查看具体的变更,然后执行applykubectldiff-fkubectlapply-f#kubectldiff-R-fconfigs/kubectlapply-R-fconfigs/kubectldelete-f bernetesRESTAPI 唯一性地确定一个RESTFUL对象,例如 最长不超过253个字符
-、小数 组name
的Pod,该Pod包含一个name 1123456789kind:Podname:nginx-demo##pod-name:image:nginx:1.7.9-containerPort:80UID是由Kubernetes系统生成的,唯一标识某个Kubernetesuernees集群中,每创建一个对象,都有一个唯一的UID。用于区分多次创建的同名对象(如前所述,按照名字删除对象后,重新再创建同名对象时,两次创建的对象me相同,但是UID不同。)1234123456kubectlgetkubectldescribenamespaces#mysqlmapper.xml--》KubernetesdefaultKubernetes对象中不定义kube-systemKubernetes
ub-pubc此名称空间自动在安装集群是自动创建,并且所有用户都是可以的(即使是那些未登录的用户)。主要是为集群预留的,例如,某些情况下,某些Kbernees对象应该被所有集群 )serviceName.名称空间,可 112345kubectlcreatenamespace<名称空间的名字kubectldeletenamespaces<名称空间的名字123456789apiVersion:v1kind:Namespacename:<名称空间的名字apiVersion:v1kind:NamespacecreationTimestamp:nullname:k8s-03spec:status: kubectlcreate-f./my-名称空间的名字必须与DNS._-._- 空间的Pod、Service、Deployment等对象
1123456789apiVersion:v1kind:Podname:nginx-demo##podnamespace:default#不写就是default-name:nginximage:nginx:1.7.9 1234#--namespacekubectlrunnginx--image=nginx--namespace=<insert-namespace-name-kubectlgetpods--namespace=<insert-namespace-name-该条目的形式是svccluse.cal,这意味着如果容器只使用`,它将被解析到本地命名空间的服务。这对于跨多个命名空间(如开发、分级和生产)使用相同的配置非常有用。如果您希望跨命名空间,则需要使用完全限定(QDN)。##创建Pod#Deploy:直接指定Pod模板()kind:大多数kubernetes资源(例如Pod、Service、副本控制器等)都位于某些命名空间中。但是命名空间资源本身并不在命名空间中。而且底层资源,例如nodes和持久化卷不属于任何命名空间。查看哪些Kubernetes112345#Inakubectlapi-resources--#Notinakubectlapi-resources--7、和选择(Labe)是附加在Kbernees对象上的一组名值对,其意图是按照对用户有意义的方式来标识uernees对象,同时,又不对Kbernees的逻辑产生影响。可以用来组织和选择一组uernees对象。您可以在创建Kbernees对象时为其添加,也可以在创建以后再为其添加。每个Kurnees对象可以有多个,同一个对象的的Key必须唯一,例如:key1:key2:使用(Label)可以高效地查询和Kubernetes对象,在Kubernetes界面工具(如KubenetesDashboard或Kuboard)和kubectl中,的使用非常普遍。那些非标识性的信息应该记录在注使用,用户可以按照自己期望的形式组织Kubernetes对象之间的结构,而无需对Kubernetes有任应用程序的部署或者批处理程序的部署通常都是度的(例如,多个高可用分区、多个程序版本、多个微服务分层)。管理这些对象时,很多时候要针对某一个维度的条件做整体操作,例如,将某个版本的程序整体删除,这种情况下,如果用户能够事先规划好的使用,再通过进行选择,就会非常地便捷。releasestablereleaseenvironmentdevenvironment:qaenvironment:productiontier:frontend、tier:backend、tier:cachepartitioncustomerApartition:customerBtrack:daily、track:weekly上面只是一些使用比较普遍的,您可以根据您自己的情况建立合适的使用的约定。是一组名值对(key/valuepair)。的key可以有两个部分:可选的前缀和名,通 不能多于63个字符-.-.
、下划线_不能多于253个字符 如果省略前缀,则的key将被认为是专属于用户的。Kubernetes的系统组件(例如,kube-scheduler、kube-controller-manager、kube-apiserver、kubectl或其他第组件)向用户的Kubernetes的value63个字符
这两个前缀是Kubernetes.可以包含字母、数字、减号、下划线_.apiVersionapiVersion:kind:name:label-environment:app:-name:image:-containerPort:通常来讲,会有多个uernees对象包含相同的。通过使用选择器(aelseecr),用户/客户端可以选择一组对象。选择器(labelseecor)是uernees中最主要的分类和筛选。set-basedKubernetesapiserver支持两种形式的选择器set-based。选择器可以包含多个条件,并使用逗号分隔,此时只有满足所有条件的Kubernetes对象,可以使用三种操作符,可以使用三种操作符=、==、!=123456#kubectlgetpods-l名为`environment`值为`production`的Kubernetesenvironment=名为`tier`值不等于`frontend``tier`tier!=1 #选择所有的包含 且值为`production`或`qa`的对3environmentin(production,4#选择所有的`tier`不为`frontend`和`backend`的对象,或不含5tiernotin(frontend,6#选择所有包含`partition`的对78#选择所有不包含`partition`的对9#选择包含`partition`(查值)且`environment`不是`qa`的对partition,environmentnotinkubectlgetpods-l'environmentin(production),tierin12123456789#Job、Deployment、ReplicaSet和DaemonSetcomponent:redis{key:tier,operator:In,values:{key:environment,operator:NotIn,values:。#matchLabels是一个{key,value}组成的map。map中的一个{key,value}matchExpressions中的一个元素,其key为map的key,operator为In,values含value一个元素。matchExpression等价于基于集合 ,支持的operator有InNotIn、Exists和DoesNotExist。当operator为In或NotIn时,values数组不能为空。所有的选择条件都以AND的形式合并计算,即所有的条件都满足才可以算是匹配kubectllabel--#Updatepod'foo'withthelabel'unhealthy'andthevaluekubectllabelpodsfoounhealthy=true6789#Updatepod'foo'withthelabel'status'andthevalue'unhealthy',overwritinganyexistingvalue.kubectllabel--overwritepodsfoo#Updateallpodsinthenamespacekubectllabelpods--allstatus=unhealthy#Updateapodidentifiedbythetypeandnamein"pod.json"kubectllabel-fpod.jsonstatus=unhealthy#Updatepod'foo'onlyiftheresourceisunchangedfromversion1.kubectllabelpodsfoostatus=unhealthy--resource-version=1#Updatepod'foo'byremovingalabelnamed'bar'ifitexists.#Doesnotrequirethe--overwriteflag.kubectllabelpodsfoo8、注解注解(annotation)可以用来向Kubernetes对象 字段添加任意的信息Kuberneteskey1:key2:字段选择器(Fieldselectors)允许您根据一个或多个资源字段的值筛选Kubernetes资源 kubectlgetpods--field-selector‘kubectlgetxxx-kubectlcreatedeployxxxxx--dry--kubectl in写完yamlkubectlapplyf搜索kubernetes,安装yaml 插件即kubeadm安装的集群。二进制后来就是yuminstalletcdapi-认识文件夹/etc/kubernetes.以Pod方式安装的组件etcd,ap-serer,scer。(安装ks的时候,yumkubeadmbtkubct)回顾集群安装的时候,mstubtkubelet额外参数配置/etc/sysconfig/kubelet;kubelet配置位置命令参考: 1123BasicCommands(Beginner):令CreatearesourcefromafileorfromTakeareplicationcontroller,service,deploymentorpod456789exposeitasaKubernetesRunaparticularimageontheSetspecificfeaturesonBasicCommands(Intermediate): ationofyoneormanyEditaresourceontheDeleteresourcesbyfilenames,stdin,resourcesandnames,orresourcesand DeployCommands:令ManagetherolloutofaSetanewsizeforaDeployment,ReplicaSetorAuto-scaleaDeployment,ReplicaSet,StatefulSet,ClusterManagementCommands:#令yclusterinfoyResource(CPU/Memory)MarknodeasunschedulableMarknodeasschedulableDrainnodeinpreparationforUpdatethetaintsononeormoreTroubleshootingandDebuggingCommands:# ShowdetailsofaspecificresourceorgroupofresourcesPrintthelogsforacontainerinapodAttachtoarunning Executeacommandinaport-forwardForwardoneormorelocalportstoaRun totheKubernetesAPI Copyfilesanddirectoriestoandfrom Inspect CreatedebuggingsessionsfortroubleshootingworkloadsandAdvancedCommands:# Diffliveversionagainstwould-beapplied Applyaconfigurationtoaresourcebyfilenameor Updatefield(s)ofare Recearesourcebyfilenameor Experimental:Waitforaspecificconditionononeormany BuildakustomizationtargetfromadirectoryorURL.SettingsCommands:# Updatethelabelsona Updatetheannotationsona Outputs completioncodeforthespecifieds (bashorzsh)#OtherCommands:#api-resourcesPrintthesupportedAPIresourcesonthe api-versionsPrintthesupportedAPIversionsontheserver,intheformof Modifykubeconfig Providesutilitiesfor ctingwith Printthe andserverversioninformation67896789#echo'source<(kubectlcompletionbash)'source1#2yum345 args23commandEntrypointarray.Notexecutedwithina .ThedockerENTRYPOINTisusedifthisisnotprovided.Variableareexpandedusingthecontainer'senvironment.Ifavariablecannotresolved,thereferenceintheinputstringwillbeunchanged.$(VAR_NAME)syntaxcanbeescapedwithadouble$$,ie:Escapedreferenceswillneverbeexpanded,regardlessofwhethervariableexistsornot.Cannotbeupdated.More mand-argument- mand-in-a-envenvFromListofsourcestopopulateenvironmentvariablesinthecontainer.keysdefinedwithinasourcemustbeaC_IDENTIFIER.Allinvalidkeysbereportedasaneventwhenthecontainerisstarting.Whenakeyinmultiplesources,thevalueassociatedwiththelastsourcewillprecedence.ValuesdefinedbyanEnvwithaduplicatekeywillprecedence.Cannotbeupdated. imagePull Always:总是去:【默认先看网上有没有,有了就,(本机也有,docker就相当于不用了Never:总不去,一定保证当前Pod所在的机器有这个镜像;直接看本 Periodicprobeofcontainerliveness.Containerwillberestartedifprobefails.Cannotbeupdated.More lifecycle#container-name<string>- Periodicprobeofcontainerservicereadiness.Containerwillbefromserviceendpointsiftheprobefails.Cannotbeupdated.Moreinfo:lifecycle#container- ComputeResourcesrequiredbythiscontainer.Cannotbeupdated.MoresecurityContextSecurityoptionsthepodshouldrunwith.MoreMorestartupProbeStartupProbeindicatesthatthePodhassuccessfullyinitialized.specified,nootherprobesareexecuteduntilthiscompletesIfthisprobefails,thePodwillberestarted,justasiflivenessProbefailed.Thiscanbeusedtoprovidedifferent parametersatthebeginningofaPod'slifecycle,whenitmighttakea timetoloaddataorwarmacache,thanduringsteady-stateoperation.cannotbeupdated.Moreinfo:lifecycle#container- Whetherthiscontainershouldallocateabufferforstdinintheruntime.Ifthisisnotset,readsfromstdininthecontainerwillresultinEOF.Defaultisfalse. Whetherthecontainerruntimeshouldclosethestdinchannelafteritbeenopenedbyasingleattach.Whenstdinistruethestdinstreamremainopenacrossmultipleattachsessions.IfstdinOnceissettostdinisopenedoncontainerstart,isemptyuntiltheattachestostdin,andthenremainsopenandacceptsdatauntildisconnects,atwhichtimestdinisclosedandremainscloseduntilcontainerisrestarted.Ifthisflagisfalse,acontainerprocessesreadsfromstdinwillneverreceiveanEOF.Defaultisfalse Optional:Pathatwhichthefiletowhichthecontainer's messagewillbewrittenismountedintothecontainer'sfilesystem.writtenisintendedtobebrieffinalstatus,suchasanassertionmessage.Willbetruncatedbythenodeifgreaterthan4096bytes.totalmessagelengthacrossallcontainerswillbelimitedtoDefaultsto/dev/termination-log.Cannotbeupdated. terminationMessageIndicatehowtheterminationmessageshouldbepopulated.FilewillcontentsofterminationMessagePathtopopulatethecontainerstatusonbothsuccessandfailure.FallbackToLogsOnErrorwillusethelastchunkofcontainerlogoutputiftheterminationmessagefileisemptyandthecontainerexitedwithanerror.Thelogoutputislimitedto2048bytes80lines,whicheverissmaller.DefaultstoFile.CannotbettyWhetherthiscontainershouldallocateaTTYforitself,a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度年福建省高校教师资格证之高等教育法规强化训练试卷B卷附答案
- 2024年通风消声器项目资金筹措计划书代可行性研究报告
- 成考英语成人高考(高起专)试卷及解答参考
- 2024年解除劳动关系协议模板
- 2024年洒水车租赁协议模板
- 城市中心2024停车场地租赁协议
- 2024年工程承包协议格式
- 2024年度新鲜猪肉购销协议模板
- 2024专业修路工程协作协议
- 2024小食品买卖协议书
- GB/T 11982.2-2015聚氯乙烯卷材地板第2部分:同质聚氯乙烯卷材地板
- FZ/T 64011-2012静电植绒织物
- 《烟酒有危害》公开课教案
- 通信发展史课件
- 新能源汽车动力电池技术:各类动力电池的工作原理及应用课件
- 城市介绍(重庆)课件
- JC01基础心理学单科作业题汇总(含解析)
- 智能交通-道路交通控制基本理论和方法课件
- 无线电测向运动介绍、原理和技术课件
- 《罗密欧与朱丽叶》剧本
- 新生儿细菌及真菌感染的护理
评论
0/150
提交评论