Kubernetes入门(三)

30.4 kubectl命令使用


语法

语法:kubectl [command] [TYPE] [NAME] [flags]

1. command:子命令,用于操作kubernetes集群资源对象的命令,如create、delete、describe、get、apply等;

2. TYPE:资源对象的类型,如pod、service、rc、deployment、node等,可以单数、复数以及简写(pod/pods/po、service/services/svc);

3. NAME:资源对象的名称,不指定则返回所有,如 get pod 会返回所有pod,get pod nginx 则只返回nginx这个pod;

4. flags:kubectl子命令的可选参数,例如 -n 指定namespace,-s 指定apiserver的URL。

资源对象列表

  • 获取资源对象列表:
# kubectl api-resouces
名称简写
componentsstatusescs
daemonsetsds
deploymentdeploy
eventsev
ebdpointsep
horizontalpodautoscalershpa
ingressesing
jobs
limitrangeslimits
nodesno
namespacesns
podspo
persistentvolumespv
persistentvolumeclaimspvc
resourcequotasquato
replicationcontrollersrc
secrets
serviceaccountssa
servicessvc
  • 特殊用法:
# kubectl get pod
NAME          READY     STATUS    RESTARTS   AGE
mysql-f16r2   1/1       Running   1          3d
myweb-f8xw9   1/1       Running   1          3d

# kubectl get pod mysql-f16r2
NAME          READY     STATUS    RESTARTS   AGE
mysql-f16r2   1/1       Running   1          3d
# kubectl get pod/myweb-f8xw9 rc/myweb
NAME             READY     STATUS    RESTARTS   AGE
po/myweb-f8xw9   1/1       Running   1          3d

NAME       DESIRED   CURRENT   READY     AGE
rc/myweb   1         1         1         3d
# kubectl create -f pod1.yaml -f rc1.yaml -f svc1.yaml              #可同时创建多个资源对象

kubectl子命令主要包括对资源的创建、删除、查看、修改、配置、运行等。

kubectl --help 可以查看所有子命令。

kubectl options 可以查看支持的参数,例如 --namespace 指定namespace。


命令输出格式

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

  • -o 支持的格式有:
输出格式说明
custom-columns=根据自定义列名进行输出,逗号分隔
custom-columns-file=从文件中获取自定义列名进行输出
json以JSON格式显示结果
jsonpath=输出jsonpath表达式定义的字段信息
jsonpath-file=输出jsonpath表达式定义的字段信息,来源于文件
name仅输出资源对象的名称
wide输出更多信息,比如会输出node名
yaml以yaml格式输出
  • 举例:
# kubectl get pod -o wide

# kubectl get pod -o yaml

# kubectl get pod --sort-by=.metadata.name                #按name排序输出

# kubectl get pod -o custom-columns=NAME:.metadata.name,RESC:.metadata.resourceVersion

kubectl命令示例

  • 创建资源对象:

根据yaml文件创建service和deployment

# kubectl create -f my-service.yaml -f my-deploy.yaml

也可以指定一个目录,这样可以根据该目录下所有yaml或json文件一次性定义资源

# kubectl create -f <directory>
  • 查看资源对象:

查看所有pod

# kubectl get pod

查看deployment和service

# kubectl get deploy,svc
  • 描述资源对象:

显示pod的详细信息

# kubectl describe pod <pod-name>

显示node的详细信息

# kubectl describe node <node-name>

显示deployment管理的pod信息

# kubectl describe pod <deployment-name>
  • 删除资源对象:

基于yaml文件删除

# kubectl delete -f pod.yaml

删除所有包含某个label的pod和service

# kubectl delete po,svc -l name=<label-name>

删除所有pod

# kubectl delete po --all
  • 执行容器的命令:

在pod中执行某个命令,如date

# kubectl exec <pod-name> date

进入到pod的容器里,

# kubectl exec -it <pod-name> bash
  • 查看容器日志:
# kubectl logs <pod-name>

动态查看,

# kubectl logs -f <pod-name>

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值