Kubernetes容器编排技术---kubectl命令行工具用法详解(三)

kubectl命令行工具用法详解node

kubect用法概述shell

  kubectl命令行的语法以下:  json

$ kubectl [command] [TYPE] [NAME] [flags]
  •  command:子命令,用于操做Kubernetes集群资源对象的命令,例如create、delete、describe、get、apply等。
  •  TYPE:资源对象的类型,区分大小写,能以单数形式、负数形式或者简写形式表示。
  •  NAME:  资源对象的名称,区分大小写。若是不指定名称,则系统将返回属于TYPE的所有对象的列表。
  •  flags:kubectl子命令的可选参数

能够经过命令查看可操做的资源类型api

经过以下命令查看可操做性资源类型
# kubectl api-resources
经过以下命令查看可操做性资源的具体用法
# kubectl explain <资源名称>

 

kubectl可操做的资源对象类型
                     资源对象的名称                                缩写          

componentstatusesbash

cs
daemonsets ds
deployments  
events ev
 endpoints  ep
 horizontalpodautoscalers  hpa
 ingresses  ing
 jobs  
 limitranges  limits
 nodes  no
 namespaces  ns
 pods  po
 persistentvolumes  pv
 persistentvolumeclaims  pvc
 resourcequotas  quota
 replicationcontrollers  rc
 secrets  
 serviceaccounts  
 services  svc

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

kubectl参数列表app

  kubectl的子命令很是丰富,涵盖了对Kubernetes集群的主要操做,包括资源对象的建立、删除、查看、修改、配置、运行等。ide

kubectl子命令详解
子命令 语法 说明
annotate kubectl annotate [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--resource-version=version]
[options]
添加或更新资源对象的annotation信息
api-versions kubectl api-versions [flags] [options] 列出当前系统支持的API版本列表,格式为“group/version”
apply kubectl apply (-f FILENAME | -k DIRECTORY) [options] 从配置文件或stdin中对资源对象进行配置更新
attach kubectl apply (-f FILENAME | -k DIRECTORY) [options] 附着到一个正在运行的容器
atuoscale kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min=MINPODS] --max=MAXPODS [--cpu-percent=CPU] [options] 对Deployment、ReplicaSet或ReplicationController进行水平自动扩缩容的设置
cluster-info kubectl cluster-info [flags] [options] 显示集群信息
completion kubectl completion SHELL [options] 输出shell命令的执行结果码(bash或zsh)
config kubectl config SUBCOMMAND [options] 修改kubeconfig文件
convert kubectl convert -f FILENAME [options] 转换配置文件为不一样的API版本
cordon kubectl cordon NODE [options] 将Node标记为unschedulable,即“隔离”出集群调度范围
delete kubectl delete ([-f FILENAME] | [-k DIRECTORY] | TYPE [(NAME | -l label | --all)]) [options] 根据配置文件、stdin、资源名称或label selector删除资源对象
describe kubectl describe (-f FILENAME | TYPE [NAME_PREFIX | -l label] | TYPE/NAME) [options] 描述一个或多个资源对象的详细信息
drain kubectl drain NODE [options] 首先将Node设置为unschedulable,而后删除该Node上运行的全部Pod,但不会删除不禁apiserver管理的Pod
edit kubectl edit (RESOURCE/NAME | -f FILENAME) [options] 编辑资源对象的属性,在线更新
exec kubectl exec (POD | TYPE/NAME) [-c CONTAINER] [flags] -- COMMAND [args...] [options]  执行一个容器中的命令
explain kubectl explain RESOURCE [options] 对资源对象属性的详细说明
expose kubectl expose (-f FILENAME | TYPE NAME) [--port=port] [--protocol=TCP|UDP|SCTP] [--target-port=number-or-name]
[--name=name] [--external-ip=external-ip-of-service] [--type=type] [options]
将已经存在的一个RC、Service、Deployment或Pod暴露为一个新的Service
get kubectl get
[(-o|--output=)json|yaml|wide|custom-columns=...|custom-columns-file=...|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=...]
(TYPE[.VERSION][.GROUP] [NAME | -l label] | TYPE[.VERSION][.GROUP]/NAME ...) [flags] [options]
显示一个或多个资源对象的概要信息
label kubectl label [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--resource-version=version]
[options]
设置或更新资源对象的labels
logs kubectl logs [-f] [-p] (POD | TYPE/NAME) [-c CONTAINER] [options] 屏幕打印
namespace   已被kubectl config set-context替代
patch kubectl patch (-f FILENAME | TYPE NAME) -p PATCH [options] 以merge形式对资源对象的部分字段的值进行修改
port-forward kubectl port-forward TYPE/NAME [options] [LOCAL_PORT:]REMOTE_PORT [...[LOCAL_PORT_N:]REMOTE_PORT_N] 将本机的某个端口号映射到Pod端口号,一般用于测试工做
proxy kubectl proxy [--port=PORT] [--www=static-dir] [--www-prefix=prefix] [--api-prefix=prefix] [options] 将本机某个端口号映射到apiserver
replace kubectl replace -f FILENAME [options] 从配置文件或stdin替换资源对象
rolling-update kubectl rolling-update OLD_CONTROLLER_NAME ([NEW_CONTROLLER_NAME] --image=NEW_CONTAINER_IMAGE | -f
NEW_CONTROLLER_SPEC) [options]
对RC进行滚动升级
rollout kubectl rollout SUBCOMMAND [options] 对Deployment进行管理,可用操做包括:history、pause、resume、undo、status
run kubectl run NAME --image=image [--env="key=value"] [--port=port] [--replicas=replicas] [--dry-run=bool]
[--overrides=inline-json] [--command] -- [COMMAND] [args...] [options]
基于一个镜在Kubernetes集群上启动一个Deployment
scale kubectl scale [--resource-version=version] [--current-replicas=count] --replicas=COUNT (-f FILENAME | TYPE NAME)
[options]
扩容、缩容一个Deployment、ReplicaSet、RC或Job中Pod的数量
set kubectl set SUBCOMMAND [options] 设置资源对象的某个特定信息,目前仅支持修改容器的镜像
taint kubectl taint NODE NAME KEY_1=VAL_1:TAINT_EFFECT_1 ... KEY_N=VAL_N:TAINT_EFFECT_N [options] 设置Node的taint信息,用于将特定的Pod调度到特定的Node的操做,为Alpha版本功能
uncordon kubectl uncordon NODE [options] 将Node设置为schedulable
version kubectl version [flags] [options] 打印系统版本信息

kubectl输出格式工具

经常使用的输出格式示例以下:测试

显示pod的更多信息jsonp

# kubectl get pod <pod-name> -o wide

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

# kubectl get pod <pod-name> -o yaml

 另外,还能够将输出结果按某个字段排序,经过--strt-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

根据<directory>目录下全部.yaml、.yml、.json文件的定义进行建立操做

# kubectl create -f <directory>

 2.查看资源对象

查看全部pod列表

# kubectl get pods

查看rc和service列表

# kubectl get rc,service

 3. 描述资源对象

显示Node的详细信息

# kubectl describe nodes <node-name>

 显示Pod的详细信息

# kubectl describe pods/<pod-name>

 显示有RC管理的Pod的信息

# kubectl describe pods <rc-name>

 4.删除资源对象

基于pod.yaml定义的名称删除Pod:

# kubectl delete -f pod.yaml

 删除全部包含某个label的Pod和service

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

 删除全部Pod

# kubectl delete pods --all

 5.执行容器的命令

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

# kubectl exec <pod-name> date

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

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

 经过bash得到Pod中某个容器的TTY,至关于登陆容器

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

 6.查看容器的日志

查看容器输出到stdout的日志

# kubectl logs <pod-name>

 跟踪查看容器的日志,至关于tail -f命令的结果

# kubectl logs -f <pod-name> -c <container-name>
相关文章
相关标签/搜索