kubectl语法
kubectl <command> <type> <name> <flags>
command:子命令,用于操作kubernetes集群资源对象的命令,例如:create, delete, describe, get, apply等等
type:资源对象的类型,区分大小写,能以单数,复数或者简写形式表示。例如以下3中TYPE是等价的。
kubectl get pod pod1 kubectl get pods pod1 kubectl get po pod1name:资源对象的名称,区分大小写。如果不指定名称,系统则将返回属于TYPE的全部对象的列表,例如:kubectl get pods 将返回所有pod的列表
flags:kubectl 子命令的可选参数,例如使用 -s 指定api server的url地址而不用默认值
- kubectl可操作的资源对象类型以及缩写:
| 资源类型 | 缩写 | 说明 |
|---|---|---|
| clusters | 集群 | |
| componentstat uses | cs | 查看各组件信息 |
| configmaps | cm | ConfigMap是用来存储配置文件的kubernetes资源对象 |
| daemonsets | ds | DaemonSet只管理pod对象,通过nodeAffinity和Toleration两个调度器,保证每个节点上只有一个pod。集群动态加入了新的Node,DaemonSet中的pod也会添加在新加入Node上。删除一个DaemonSet也会级联删除所有其创建的pod |
| deployment | deploy | Deployment为pod和ReplicaSet提供了一个声明式定义方法,用来替代以前的ReplicationController来方便的管理应用 |
| endpoints | ep | 节点 |
| events | ev | Event是kubelet负责用来记录多个容器运行过程中的时间,命名由被记录的对象和时间戳构成 |
| horizontalPodAutoscalers | hpa | |
| ingresses | ing | |
| jobs | ||
| limitranges | limits | |
| namespaces | ns | |
| networkPolicies | ||
| statefulset | ||
| persistentVolumeClaims | pvc | |
| persistentVolume | pv | |
| pods | po | |
| podSecurityPolicies | psp | |
| podTemplates | ||
| replicaset | rs | |
| replicationContRollers | rc | |
| resourceQuotas | quota | |
| conjob | ||
| secrets | ||
| serviceAccounts | ||
| service | svc | |
| storageclasses | sc | |
| thirdPartyResources |
这一个命令行中也可以同时对多个资源对象进行操作,以多个type和name的组合表示
获取多个pod的信息:
kubectl get pods pod1 pod2获取多钟对象的信息:
kubectl get pod/pod1 rc/rc1同时应用多个YAML文件,以多个 -f file 参数表示:
kubectl get pod -f pod1.yaml -f pod2.yaml kubectl create -f pod1.yaml -f rc1.yaml -f service1.yaml
kubectl 子命令详情
kubectl的子命令非常丰富,涵盖了对kubernetes集群的主要操作,包括资源对象的创建、删除、查看、修改、配置、运行等。
annotate:添加或更新资源对象的annotation信息
kubectl annotate (-f Filename | type name | type/name) k1=v1,k2=v2api-version:列出当前系统支持的api版本列表,格式为“group/version”
kubectl api-version [flags]apply:从配置文件或stdin中对资源对象镜像配置更新
kubectl apply -f filename [flags]attach:附着到一个正在运行的容器上
kubectl attach POD -c container [flags]auth:检测RBAC权限设置
kubectl auth [flags] [optioins]autoscale:对deploy,replicaSet或replicationController进行水平自动扩容和缩容的设置
kubectl autoscale (-f filename | type name | type/name)cluster-info:显示集群master和内置服务的信息
kubectl cluster-info [flags]completion:输出shell命名的执行结果码(bash或zsh)
kubectl completion shell [flags]config:修改kubeconfig文件
kubectl config subcommand [flags]convert:转换配置文件为不同的api版本
kubect convert -f filename [flags]cordon:将node标记为unschedulable,即隔离出集群调度范围
kubectl cordon node [flags]create:从配置文件或stdin中创建资源对象
kubectl create -f filename [flags]delete:从配置文件,stdin,资源名称或labelseletor删除资源对象
kubectl delete (-f filename | type name | -l label) [flags]describe:描述一个或多个资源对象的详细信息
kubectl describe (-f filename | type name) [flags]diff:查看配置文件与当前系统中正在运行的资源对象的差异
kubectl diff -f filename [options]drain:首先将node设置为unschedulable,然后删除在该node上运行的所有pod,但不会删除不用api server管理的pod
kubectl drain node [flags]edit:编译资源对象的属性,在线更新
kubectl edit (-f filename | type name | type/name) [flags]exec:执行一个容器中的命令
kubectl exec pod [-c container] [-i] [-t] [flags] [-- command [args...]]explain:对资源对象属性的详细说明
kubectl explain [--include-extended-apis=true] [--recursive=false] [flags]expose:将已经存在的一个rc、service、deploy或pod暴露为一个新的service
kubectl expose (-f filename | type name)[--port=port] [--target-port=port] [--protocol-TCP|UDP] [--name=name] [----external-ip=external-ip-of-service] [--type=type]get:显示一个或多个资源对象的概要信息
kubectl get (-f filename | type name | -l label) [--watch] [--sort-by-FIELD] [[-o | --output]=OUTPUT_FORMAT] [flags]label:设置资源对象的label
kubectl label (-f fileanme | type name) k1=v1...kn=vn [--resource-version=version] [flags]logs:在屏幕上打印一个容器的日志
kubectl logs pod [-c container] [--follow] [flags]
