Kubernetes十一--kubectl命令行工具用法了解

熟悉K8S的童鞋知道,kubectl这个命令是我们经常经常经常使用的一个命令。Kubectl作为管理客户端的CLI(command-line interface,命令行界面)工具,可以很直观的让用户通过命令行的方式对K8S的相关操作。这里我们来了解下其用法。

文章目录

    • 熟悉K8S的童鞋知道,kubectl这个命令是我们经常经常经常使用的一个命令。Kubectl作为管理客户端的CLI(command-line interface,命令行界面)工具,可以很直观的让用户通过命令行的方式对K8S的相关操作。这里我们来了解下其用法。
    • 1.command子命令
    • 2.TYPE资源类型
    • 3.flags参数列表

kubectl 命令行的语法形式:

kubectl [command] [TYPE] [NAME] [flags]
语法内容解释 描述
command 子命令,由于操作集群等资源对象的命令,例如常用的creat、delete、get、describe等
TYPE 资源对象的类型,注意这里区分大小写!资源对象可以已单数、复数、简写形式表示
NAME 资源对象的名称,注意这里区分大小写!如果不指定名称的话,则系统将返回属于TYPE的全部对象的列表,例如我们在玩一玩中执行的kubectl get pods,可以看到结果返回的是全部pod的列表内容
flags 子命令的可选参数。

1.command子命令

子命令 语法 Description
annotate kubectl annotate (-f FILENAME | TYPE NAME | TYPE/NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--overwrite] [--all] [--resource-version=version] [flags] 为一个或多个资源添加注释
api-versions kubectl api-versions [flags] 列出支持的API版本。
apply kubectl apply -f FILENAME [flags] 对文件或stdin的资源进行配置更改。
attach kubectl attach POD -c CONTAINER [-i] [-t] [flags] 连接到一个运行的容器,既可以查看output stream,也可以与容器(stdin)进行交互。
autoscale kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min=MINPODS] --max=MAXPODS [--cpu-percent=CPU] [flags] 自动扩容/缩容由replication controller管理的一组pod。
cluster-info kubectl cluster-info [flags] 显示有关集群中master和services的终端信息。
config kubectl config SUBCOMMAND [flags] 修改kubeconfig文件。有关详细信息,请参阅各个子命令。
completion kubectl completion SHELL  [flags] 输出shell命令的执行结果码
convert kubectl convert -f FILENAME   [flags] 转换配置文件为不同版本的API
cordon kubectl cordon NODE [flags] 将node标记为unschedulable,隔离出集群调度范围
create kubectl create -f FILENAME [flags] 从file或stdin创建一个或多个资源。
delete kubectl delete (-f FILENAME | TYPE [NAME | /NAME | -l label | --all]) [flags] 从file,stdin或指定label 选择器,names,resource选择器或resources中删除resources。
describe kubectl describe (-f FILENAME | TYPE [NAME_PREFIX | /NAME | -l label]) [flags] 显示一个或多个resources的详细状态。
drain kubectl drain NODE [flags] 先将node设置为unschedulable,然后删除该node上运行的所有pod,但不会删除不由apiserver管理的pod
edit kubectl edit (-f FILENAME | TYPE NAME | TYPE/NAME) [flags] 使用默认编辑器编辑和更新服务器上一个或多个定义的资源。
exec kubectl exec POD [-c CONTAINER] [-i] [-t] [flags] [-- COMMAND [args...]] 对pod中的容器执行命令。
explain kubectl explain [--include-extended-apis=true] [--recursive=false] [flags] 获取各种资源的文档。例如pod,node,services等
expose kubectl expose (-f FILENAME | TYPE NAME | TYPE/NAME) [--port=port] [--protocol=TCP|UDP] [--target-port=number-or-name] [--name=name] [----external-ip=external-ip-of-service] [--type=type] [flags] 将 replication controller,service或pod作为一个新的Kubernetes service显示。
get kubectl get (-f FILENAME | TYPE [NAME | /NAME | -l label]) [--watch] [--sort-by=FIELD] [[-o | --output]=OUTPUT_FORMAT] [flags] 列出一个或多个资源。
label kubectl label (-f FILENAME | TYPE NAME | TYPE/NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--overwrite] [--all] [--resource-version=version] [flags] 添加或更新一个或多个资源的flags。
logs kubectl logs POD [-c CONTAINER] [--follow] [flags] 在pod中打印容器的日志。
namespace kubectl namespace  [namespace] [flags] 已被kubectl config set-contest代替
patch kubectl patch (-f FILENAME | TYPE NAME | TYPE/NAME) --patch PATCH [flags] 使用strategic merge 补丁程序更新资源的一个或多个字段。
port-forward kubectl port-forward POD [LOCAL_PORT:]REMOTE_PORT [...[LOCAL_PORT_N:]REMOTE_PORT_N] [flags] 将一个或多个本地端口转发到pod。
proxy kubectl proxy [--port=PORT] [--www=static-dir] [--www-prefix=prefix] [--api-prefix=prefix] [flags] 在Kubernetes API服务器运行代理。
replace kubectl replace -f FILENAME 从file或stdin替换资源。
rolling-update kubectl rolling-update OLD_CONTROLLER_NAME ([NEW_CONTROLLER_NAME] --image=NEW_CONTAINER_IMAGE | -f NEW_CONTROLLER_SPEC) [flags] 通过逐步替换指定的replication controller及其pod来执行滚动更新。
rollout kubectl rollout SUBCOMMAND [flage]
kubectl rollout [command]
Deployment进行管理,可用操作包括history,pause,resume,endo,status
run kubectl run NAME --image=image [--env="key=value"] [--port=port] [--replicas=replicas] [--dry-run=bool] [--overrides=inline-json] [flags] 在集群上运行指定的镜像。
scale kubectl scale (-f FILENAME | TYPE NAME | TYPE/NAME) --replicas=COUNT [--resource-version=version] [--current-replicas=count] [flags] 更新指定RC(replication controller)的大小。
set kubectl set SUBCOMMAND [flage]
kubectl set [command]
设定资源对象的某个信息,目前只支持修改容器的镜像
taint kubectl taint NODE NAME KEY_1=VAL_1:TAINT_EFFECT_1……KEY_N=VAL_N:TAINT_EFFECT_N[flags] 设置node的taint信息,用于将特定的Pod调度到指定的Node的操作,版本为Apache版本
uncordon kubectl uncordon NODE [flags] 将node设置为schedulable
stop kubectl stop 已弃用:请参阅kubectl delete。
version kubectl version [--client] [flags] 显示客户端和服务器上运行的Kubernetes版本。

2.TYPE资源类型

资源对象的名称 缩写
clusters  
componentstatuses cs
configmaps cm
daemonsets ds
deployments deploy
endpoints ep
events ev
horizontalpodautoscalers hpa
ingresses ing
Jobs  
limitranges limits
nodes no
namespaces ns
networkpolicies  
statefulsets  
persistentvolumeclaims pvc
persistentvolumes pv
pods po
podsecuritypolicies psp
podtemplates  
replicasets rs
replicationcontrollers rc
cronjob  
secrets  
serviceaccounts  
service svc
storageclasses sc
thirdpartyresources

3.flags参数列表

选项 作用
--alsologtostderr[=false] 同时输出日志到标准错误控制台和文件
--api-version="" 和服务端交互使用的API版本
--certificate-authority="" 用以进行认证授权的.cert文件路径
--client-certificate="" TLS使用的客户端证书路径
--client-key="" TLS使用的客户端密钥路径
--cluster="" 指定使用的kubeconfig配置文件中的集群名
--context="" 指定使用的kubeconfig配置文件中的环境名
--insecure-skip-tls-verify[=false] 如果为true,将不会检查服务器凭证的有效性,这会导致你的HTTPS链接变得不安全
--kubeconfig="" 命令行请求使用的配置文件路径
--log-backtrace-at=:0 当日志长度超过定义的行数时,忽略堆栈信息
--log-dir="" 如果不为空,将日志文件写入此目录
--log-flush-frequency=5s 刷新日志的最大时间间隔
--logtostderr[=true] 输出日志到标准错误控制台,不输出到文件
--match-server-version[=false] 要求服务端和客户端版本匹配
--namespace="" 如果不为空,命令将使用此namespace
--password="" API Server进行简单认证使用的密码
-s, --server="" Kubernetes API Server的地址和端口号
--stderrthreshold=2 高于此级别的日志将被输出到错误控制台
--user="" 指定使用的kubeconfig配置文件中的用户名
--token="" 认证到API Server使用的令牌
--username="" API Server进行简单认证使用的用户名
--v=0 指定输出日志的级别
--vmodule= 指定输出日志的模块,格式如下:pattern=N,使用逗号分隔

你可能感兴趣的:(Kubernetes,Kubernetes)