您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 综合/其它 > Kubernetes之kubectl常用命令使用指南
Kubernetes之kubectl常用命令使用指南:1:创建和删除是一个用于操作kubernetes集群的命令行接口,通过利用kubectl的各种命令可以实现各种功能,是在使用kubernetes中非常常用的工具。这里我们会通过一些简单的实例来展现其中一些高频命令的使用方法。更为重要的是这些命令使用的场景以及能够解决什么样的问题。这篇文章我们来介绍一下创建和删除相关的命令。常用命令kubectl创建和删除相关,本文将会简单介绍一下如下命令项番命令说明No.1run在集群上运行一个镜像No.2create使用文件或者标准输入的方式创建一个资源No.3delete使用文件或者标准输入以及资源名称或者标签选择器来删除某个资源事前准备版本[root@ku8-1tmp]#kubectlversionClientVersion:version.Info{Major:1,Minor:5,GitVersion:v1.5.2,GitCommit:08e099554f3c31f6e6f07b448ab3ed78d0520507,GitTreeState:clean,BuildDate:2017-01-12T04:57:25Z,GoVersion:go1.7.4,Compiler:gc,Platform:linux/amd64}ServerVersion:version.Info{Major:1,Minor:5,GitVersion:v1.5.2,GitCommit:08e099554f3c31f6e6f07b448ab3ed78d0520507,GitTreeState:clean,BuildDate:2017-01-12T04:52:34Z,GoVersion:go1.7.4,Compiler:gc,Platform:linux/amd64}[root@ku8-1tmp]#1234集群构成一主三从的Kubernetes集群项番类型HostnameIPNo.1Masterku8-1192.168.32.131No.1Nodeku8-2192.168.32.132No.1Nodeku8-3192.168.32.133No.1Nodeku8-4192.168.32.134[root@ku8-1tmp]#kubectlgetnodesNAMESTATUSAGE192.168.32.132Ready12m192.168.32.133Ready11m192.168.32.134Ready11m[root@ku8-1tmp]#123456kubectlrun运行一个镜像kubectlrun和dockerrun一样,它能将一个镜像运行起来,我们使用kubectlrun来将一个sonarqube的镜像启动起来。[root@ku8-1tmp]#kubectlrunsonarqube--image=192.168.32.131:5000/sonarqube:5.6.5--replicas=1--port=9000deploymentsonarqubecreated[root@ku8-1tmp]#123让我们来看看这条kubectlrun之后,kubernetes做了什么,从它的提示看到创建了一个deployment(1.4之后推荐的方式)。确认Deployment[root@ku8-1tmp]#kubectlgetdeploymentNAMEDESIREDCURRENTUP-TO-DATEAVAILABLEAGEsonarqube11115m[root@ku8-1tmp]#1234确认podkubernetes将镜像运行在pod中以方便实施卷和网络共享等管理,使用getpods可以清楚的看到生成了一个pod[root@ku8-1tmp]#kubectlgetpodsNAMEREADYSTATUSRESTARTSAGEsonarqube-1880671902-s3fdq1/1Running06m[root@ku8-1tmp]#1234kubectldelete让我们来试着使用kubectldelete删除一下这些创建的对象删除pod[root@ku8-1tmp]#kubectldeletepodssonarqube-1880671902-s3fdqpodsonarqube-1880671902-s3fdqdeleted[root@ku8-1tmp]#123确认结果可以看到刚刚生成的sonarqube-1880671902-s3fdq正在结束(Terminating),随之一个新的sonarqube-1880671902-n75d2正在创建,这是正是确保replicas为1的动作。[root@ku8-1tmp]#kubectlgetpodsNAMEREADYSTATUSRESTARTSAGEsonarqube-1880671902-n75d20/1ContainerCreating011ssonarqube-1880671902-s3fdq0/1Terminating010m[root@ku8-1tmp]#12345再次确认稍等之后再次确认,发现replicas仍然保持在1个的状态[root@ku8-1tmp]#kubectlgetpodsNAMEREADYSTATUSRESTARTSAGEsonarqube-1880671902-n75d21/1Running040s[root@ku8-1tmp]#kubectlgetdeploymentsNAMEDESIREDCURRENTUP-TO-DATEAVAILABLEAGEsonarqube111115m[root@ku8-1tmp]#1234567删除deployment直接删除pod触发了replicas的确保机制,那么我们删除deployment[root@ku8-1tmp]#kubectldeletedeploymentsonarqubedeploymentsonarqubedeleted[root@ku8-1tmp]#123结果确认通过使用deployment进行删除,则全部删除。[root@ku8-1tmp]#kubectlgetpodsNoresourcesfound.[root@ku8-1tmp]#kubectlgetdeploymentsNoresourcesfound.[root@ku8-1tmp]#12345kubectlcreate使用kubectlrun在设定很复杂的时候需要非常长的一条语句,敲半天也很容易出错,也没法保存,在碰到转义字符的时候也经常会很抓狂,所以更多场景下会使用yaml或者json文件,而使用kubectlcreate或者delete就可以利用这些yaml文件。比如,我们使用如下的方式来分别创建mysql和sonarqube的RC。事前准备[root@ku8-1tmp]#lsyamlsmysql.yamlsonar.yaml[root@ku8-1tmp]#catyamls/mysql.yaml---kind:ReplicationControllerapiVersion:v1metadata:name:mysqlspec:replicas:1selector:name:mysqltemplate:metadata:labels:name:mysqlspec:containers:-name:mysqlimage:192.168.32.131:5000/mysql:5.7.16ports:-containerPort:3306protocol:TCPenv:-name:MYSQL_ROOT_PASSWORDvalue:hello123[root@ku8-1tmp]#[root@ku8-1tmp]#catyamls/sonar.yaml---kind:ReplicationControllerapiVersion:v1metadata:name:sonarqubespec:replicas:1selector:name:sonarqubetemplate:metadata:labels:name:sonarqubespec:containers:-name:sonarqubeimage:192.168.32.131:5000/sonarqube:5.6.5ports:-containerPort:9000protocol:TCP[root@ku8-1tmp]#12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849创建(MYSQL)[root@ku8-1tmp]#kubectlcreate-fyamls/mysql.yamlreplicationcontrollermysqlcreated[root@ku8-1tmp]#123确认(MYSQL)[root@ku8-1tmp]#kubectlgetrcNAMEDESIREDCURRENTREADYAGEmysql1111m[root@ku8-1tmp]#kubectlgetpodNAMEREADYSTATUSRESTARTSAGEmysql-nl8sq1/1Running01m[root@ku8-1tmp]#1234567创建(SONARQUBE)[root@ku8-1tmp]#kubectlcreate-fyamls/sonar.yamlreplicationcontrollersonarqubecreated[root@ku8-1tmp]#123确认(SONARQUBE)[root@ku8-1tmp]#kubectlgetpodsNAMEREADYSTATUSRESTARTSAGEmysql-nl8sq1/1Running02msonarqube-p1cnj1/1Running046s[root@ku8-1tmp]#kubectlgetrcNAMEDESIREDCURRENTREADYAGEmysql1112msonarqube11151s[root@ku8-1tmp]#123456789删除(SONARQUBE)使用yaml文件也可以直接删除所创建出来的内容,比如我们先删除刚刚创建的sonarqube相关。[root@ku8-1tmp]#kubectldelete-fyamls/sonar.yamlreplicationcontrollersonarqubedeleted[root@ku8-1tmp]#123确认(SONARQUBE)[root@ku8-1tmp]#kubectlgetpodsNAMEREADYSTATUSRESTARTSAGEmysql-nl8sq1/1Running04m[root@ku8-1tmp]#kubectlgetrcNAMEDESIREDCURRENTREADYAGEmysql1114m[root@ku8-1tmp]#1234567删除(MYSQL)[root@ku8-1tmp]#kubectldelete-fyamls/mysql.yamlreplicationcontrollermysqldeleted[root@ku8-1tmp]#123确认(MYSQL)[root@ku8-1tmp]#kubectlgetpodsNoresourcesfound.[root@ku8-1tmp]#kubectlgetrcNoresourcesfound.[root@ku8-1tmp]#1234
本文标题:Kubernetes之kubectl常用命令使用指南
链接地址:https://www.777doc.com/doc-4607459 .html