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

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


kubectl 命令行的语法形式:

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

1.command子命令

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

2.TYPE资源类型

资源对象的名称缩写
clusters 
componentstatusescs
configmapscm
daemonsetsds
deploymentsdeploy
endpointsep
eventsev
horizontalpodautoscalershpa
ingressesing
Jobs 
limitrangeslimits
nodesno
namespacesns
networkpolicies 
statefulsets 
persistentvolumeclaimspvc
persistentvolumespv
podspo
podsecuritypoliciespsp
podtemplates 
replicasetsrs
replicationcontrollersrc
cronjob 
secrets 
serviceaccounts 
servicesvc
storageclassessc
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,使用逗号分隔
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值