首页 > 科技 > 011 kubernetes之kubectl命令行工具用法详解

011 kubernetes之kubectl命令行工具用法详解

kubectl是k8s集群的命令行工具,实现用户通过命令对kubernetes集群进行管理。

kubectl用户概述

$ kubectl [command] [type] [name] [flags]

command:子命令,可以操作各种集群资源对象,如:apply、delete、get、describe...

type:指定资源对象类型,区分大小写。

name:资源对象的名称,区分大小写,如果不指定将打印此type的全部对象列表。

flags:子命令可选参数。

kubectl操作示例

  • 列出可用的API资源对象类型列表
[ty@test ~]$ kubectl api-resources
  • 创建资源对象 create

根据yaml文件创建service和rc:

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

根据目录下所有yaml、yml、json文件的资源定义创建资源:

$ kubectl create -f ./
  • 查看资源对象 get

查看所有pod列表:

$ kubectl get pods
$ kubect get pods -n kube-system

查看rc、service列表:

$ kubectl get rc,service
  • 描述资源对象 describe

显示node的详细信息:

$ kubectl describe nodes 

查看pod的详细信息:

$ kubect describe pod 

查看rc管理的pod信息

$ kubectl describe pods 
  • 删除资源对象 delete

基于yaml文件定义删除pod:

$ kubectl delete -f ./pod.yaml

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

$ kubectl delete pods,services -l name =

删除所有pod:

$ kubectl delete pods --all
  • 执行容器命令 exec

执行pod的date命令,默认使用pod中的第一个容器执行:

$ kubectl exec  date

指定pod中的某个容器执行date命令:

$ kubectl exec  -c  date

通过bash获得pod中的某个TTY,相当于登录容器:

$ kubectl exec -ti  -c  /bin/bash
  • 查看容器日志: logs

查看容器输出到stdout的日志:

$ kubectl logs

跟踪查看容器的日志,相当于‘tail -f':

$ kubectl logs -f -c

  • 创建或者更新资源对象 apply

与create类似,不同:如果资源存在就进行更新操作

$ kubectl apply -f app.yaml
  • 在线编辑运行中的资源对象 edit
#执行之后类似用vi编辑器打开文件进行编辑操作。
$ kubectl edit deploy
  • 将pod的开发端口映射到本地 port-forward
#将pod的80端口映射到本地的8080端口
$ kubectl port-forward --address 0.0.0.0 8080:80
  • 在pod和本地文件系统之间复制文件 cp

# 把pod中的/etc/hosts文件复制到本地的/tmp目录

$ kubectl cp :/etc/hosts /tmp

  • 资源对象的标签设置 label

为默认的namespace设置testing=true标签

$ kubectl label namespaces default testing=true

本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.sosokankan.com/article/1298080.html

setTimeout(function () { fetch('http://www.sosokankan.com/stat/article.html?articleId=' + MIP.getData('articleId')) .then(function () { }) }, 3 * 1000)