初识Kubernetes(K8s):kubectl命令使用详解

一、kubectl用法概述

kubectl命令行语法如下:

kubectl [command] [type] [name] [flags]
参数说明:
command:子命令,用于管理和操作Kubernetes集群资源对象的命令。例如:create、delete、describe、get、apply等。
type:资源对象的类型,区分大小写,能以单数形式、复数形式或者简写形式表示。
kubectl get pod pod1  # 单数形式
kubectl get pods pod1   # 复数形式
kubectl get po pod1   #简写形式
name:资源对象的名称,区分大小写,如果不指定名称,则系统返回属于type的全部对象的列表。
flags:kubectl子命令的可选参数,例如使用“-s”指定apiserver的URL地址而不用默认值。

表1:kubectl可操作的资源对象类型

资源对象的名称缩写
clusters
componentstatusescs
configmapscm
daemonsetsds
deploymentsdeploy
endpointsep
eventsev
horizontalpodautoscalershpa
ingressesing
Jobs
limitrangeslimits
nodesno
namespacesns
networkpolicies
statefulsets
persistentvolumeclaimspvc
persistentvolumespv
podspo
podsecuritypoliciespsp
podtemplates
replicasetsrs
replicationcontrollersrc
cronjob
secrets
serviceaccounts
servicesvc
storageclassessc
thirdpartyresources

二、kubectl子命令

kuberctl的子命令非常丰富,包括资源对象的创建、删除、查看、修改、配置、运行等。
表2:kubectl子命令语法
初识Kubernetes(K8s):kubectl命令使用详解
初识Kubernetes(K8s):kubectl命令使用详解
初识Kubernetes(K8s):kubectl命令使用详解

三、kubectl参数

表3:kubectl命令行的公共启动参数
初识Kubernetes(K8s):kubectl命令使用详解
每个子命令(如create、delete、get等)还有特定的flags参数,可以通过kubectl [command] --help命令进行查看。

四、kubectl输出格式

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

kubectl [command] [TYPE] [NAME] -o=<output_format>

表4:kubectl命令的输出格式
初识Kubernetes(K8s):kubectl命令使用详解
常用的输出格式示例如下:
(1)显示Pod的更多信息

kubectl get pod <pod-name> -o wide

(2)以yaml格式显示Pod的详细信息

kubectl get pod <pod-name> -o yaml

(3)以自定义列名显示Pod的信息

kubectl get pod <pod-name> -o=custom-columns=NAME:.metadata.name,RSRC:.metadata.resourceVersion

(4)基于文件的自定义列名输出

kubectl get pods <pod-name> -o=custom-columns-file=template.txt
template.txt文件的内容为:
NAME              RSRC
metadata.name      metadata.resourceVersion
输出结果为:
NAME        RSRC
Pod-name     52305

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

kubectl [command] [TYPE] [NAME] --sort-by=<jsonpath_exp>

例如,按照名字进行排序

kubectl get pods --sort-by=.metadata.name

五、kubectl操作示例

1、根据yaml配置文件一次性创建service和rc

kubectl create -f my-service.yaml -f my-rc.yaml

2、根据<directory>目录下所有.yaml、.yml、.json文件的定义进行创建操作

kubectl create -f <directory>

3、查看所有Pod列表

kubectl get pods

4、查看rc和service列表

kubectl get rc,service

5、显示Node的详细信息

kubectl describe nodes <node-name>

6、显示Pod的详细信息

kubectl describe pods/<pod-name>

7、显示由RC管理的Pod信息

kubectl describe pods <rc-name>

8、删除基于pod.yaml文件定义的Pod

kubectl delete -f pod.yaml

9、删除所有包含某个label的Pod和Service

kubectl delete pods,services -l name=<label-name>

10、删除所有Pod

kubectl delete pods --all

11、在Pod的容器里执行date命令,默认使用Pod中的第1个容器执行

kubectl exec <pod-name> date

12、指定Pod中某个容器执行date命令

kubectl exec <pod-name> -c <container-name> date

13、以bash方式登陆到Pod中的某个容器里

kubectl exec -it <pod-name> -c <container-name> /bin/bash

14、查看容器输出到stdout的日志

kubectl logs <pod-name>

15、跟踪查看容器的日志,相当于tail -f命令的结果

kubectl logs -f <pod-name> -c <container-name>

转载于:https://blog.51cto.com/andyxu/2334922

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值