k8s学习-kubectl常用命令

网友投稿 289 2022-09-09

k8s学习-kubectl常用命令

语法

kubectl命令行语法:

kubectl [command] [TYPE] [NAME] [flags]

command: 子命令,用于操作资源对象,例如create,get,describe,delete等TYPE:资源对象的类型,区分大小写,能以单数,复数或者简写的形式表示,以下TYPE写法等价

kubectl get pod pod1kubectl get pods pod1kubectl get po pod1

NAME:资源对象的名称,区分大小写。如果不指定名称,系统将返回属于TYPE的全部对象列表,例如运行kubectl get pods命令后将返回所有pod的列表。

在一个命令行中,也可以同时对多个资源对象进行操作,以多个TYPE和NAME的组合进行表示,例如:

# 获取多个相同资源类型的信息kubectl get pod example-pod1 example-pod2# 获取多种不同类型的对象的信息kubectl get pod/example-pod1 replicationcontoller/example-rc1# 同时应用多个YAML文件,以多个-f file参数表示kubectl get pod -f pod1.yaml -f pod2.yamlkubectl create -f pod1.yaml -f rc1.yaml -f service1.yaml

flags : kubeclt 子命令的可选参数,例如使用-s或者--server设置API Server的URL地址,而不使用默认值。

常用命令

kubectl的子命令非常丰富,涵盖了对Kubernetes集群的主要操作, 包括资源对象的创建、删除、查看、修改、配置、运行等

可用资源

公共参数

格式化输出

kubectl命令可以对结果进行格式化输出显示,输出的格式化通过-o参数指定。

kubectl [commad] [TYPE] [NAME] -o=

常用的格式化输出示例:

显示pod的更多信息

kubectl get pod -o wide

以YAML格式显示pod的详细信息

kubectl get pod - o yaml

以自定义的列名显示pod的信息

kubectl get pods -o=custom-columns-file=template.txt

关闭服务端列名。在默认情况下,kubeernetes服务端会将资源对象的某些特定信息显示为列,设置--server-print=false进行关闭。

kubectl get pods --server-print=false

将输出结果按照某个字段排序,通过-sort-by参数以jsonpath表达式指定:

kubeclt [command] [TYPE] [NAME] --sort-by=#按照资源对象的名称进行排序kubectl get pods --sort-by=.metadata.name

常用操作

kubectl apply

以文件或者stdin部署或者更新一个或者多个资源

#创建service资源kubectl apply -f example-service.yaml#创建rc资源kubectl apply -f example-controller.yaml#使用目录下的所有.yaml,yml和json文件中的定义进行创建kubectl apply -f

kubectl get

列出一个或者多个资源对象的信息

#以文本格式列出所有的podkubectl get pods#以文本格式列出所有pod,包含附加信息,如node ipkubectl get pods -o wide#以文本格式列出指定名称的RCkubectl get replicationcontroller #以文本格式列出所有的RC和servicekubeclt get rc,services#以文本格式列出所有的Daemonset ,包含未初始化的Daemonsetkubetl get ds --include-uninitialized#列出在节点server01上运行的所有的PODkubectl get pods --filed-selector=spec.nodeName=server01

kubectl describe

显示一个或者多个资源的详细信息

#显示名称为的节点的详细信息kubectl describe nodes #显示名称为的pod的详细信息kubectl describe pods/#显示名称为的RC控制器管理的所有的pod的详细信息:kubectl describe pods #描述所有的pod的详细信息kubectl describe pods

kubectl get和kubectl descirbe命令说明:

kubectl get常用于查看同一个资源类型的一个或者多个资源对象,可以使用-o或者--ouputet参数自定义输出格式,还可以通过-w或者--watch参数开启对资源对象更新的监控kubectl describe命令更加侧重于描述指定i资源的哥哥方面的详细信息,通过对API Sever的多个API调用来构建结果视图,通过kubectl decribe node命令不仅会返回节点i信息,还会返回在其上运行的pod的摘要,节点事件等信息。

kubeclt delete

该命令可以使用文件,stdin的输入删除指定的资源对象,还可以通过标签选择器,名称,资源选择器等条件来限定待删除的资源范围。

#在使用pod.yaml文件中指定的类型和名称删除pod:kubectl delete -f pod.yaml#删除所有带有'='标签的pod和service:kubeclt delete pods.services -l =#删除所有的pod,包括未初始化的podkubectl delete pods -all

kubeclt exec

在pod的容器中运行命令

#在名称为的pod的第一个容器中运行date命令并打印输出结果kubectl exec --date#在指定的容器中运行date命令并打印输出结果:kubectl exec -c -- date#在pod的第一个容器中运行/bin/bash命令进入交互书tty终端界面kubectl exec -ti -- /bin/bash

kubeclt logs

打印pod中容器的日志

kubeclt logs #显示pod中名称为的容器输出到stdout的日志kubectl logs -c #持续监控显示pod中的第一个容器输出到stdout的日志,类似于tail -fkubectl logs -f

kubecctl edit

在线编辑运行中的资源对象

kubectl edit deploy nginx

命令运行之后,会通过yaml格式展示该对象的文本格式定义,用户可以对代码进行编辑和保存,从而完成对在新资源的直接修改。

kubectl port-forward

修改端口

#将pod的80端口映射到宿主机的8888端口,客户端可以通过port-forward --address 0.0.0.0 \pod/nginx-6dadadad-sdsads 8888:80

kubectl cp

吧pod(默认为第一个容器)中的/etc/fastab文件辅助到宿主机器的/tmp目录下

kubectl cp nginx-621313213-adsada-dada:/etc/fstab /tmp

kubectl label

设置资源对象的标签

#为名为"default"的命令空间设置"testing=true"标签kubectl lable namespaces default testing=true

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:国家体育总局召开赛事安全工作会议,将建立“熔断机制”!
下一篇:中科院自动化所智能决策算力平台建设
相关文章

 发表评论

暂时没有评论,来抢沙发吧~