kubernetes命令行工具kubectl详解
1、kubectl概述
kubectl是Kubernetes集群的命令行工具,通过kubectl能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署。运行kubectl命令的语法如下所示:
kubectl [command] [TYPE] [NAME] [flags]
注意:在一个命令行中也可以同时对多个资源对象进行操作,以多个TYPE和NAME的组合表示。
示例如下:
1.获取多个Pod的信息:kubectl get pods pod1 pod2
2.获取多种对象的信息:kubectl get pod/pod1 rc/rc1
3.同时应用多个yaml文件,以多个-f file参数表示:kubectl create -f pod1.yaml -f rc1.yaml -f service1.yaml
- comand:指定要对资源执行的操作。例如create、get、describe、delete、log、exec等等;
- TYPE:指定资源类型,资源类型是大小学敏感的,开发者能够以单数、复数和缩略的形式。如node、pod、deployment、namespaces等等;
- NAME:资源对象的名称,区分大小写。如果不指定名称,则系统将返回属于TYPE的全部对象的列表,例如$ kubectl get pods将返回所有Pod的列表。
- flags:kubectl子命令的可选参数,例如使用“-s”指定apiserver的URL地址而不用默认值。
2、资源对象类型
在kubernetes中,提供了很多的资源对象,开发和运维人员可以通过这些对象对容器进行编排。在下表中,是kubectl所支持的资源对象类型,以及它们的缩略别名:
资源对象类型 | 缩略别名 |
---|---|
apiservices | - |
certificatesigningrequests | csr |
clusterrolebindings | - |
clusters | - |
componentstatuses |
cs |
configmaps |
cm |
controllerrevisions | - |
cronjobs |
- |
customresourcedefinition | crd |
daemonsets |
ds |
deployments |
deploy |
endpoints |
ep |
events |
ev |
horizontalpodautoscalers |
hpa |
ingresses |
ing |
jobs |
- |
limitranges | limits |
namespaces |
ns |
networkpolicies | netpol |
nodes |
no |
persistentvolumeclaims |
pvc |
persistentvolumes |
pv |
poddisruptionbudget | pdb |
podpreset | - |
pods |
po |
podsecuritypolicies | psp |
podtemplates | - |
replicasets |
rs |
replicationcontrollers |
rc |
resourcequotas |
quota |
rolebindings | - |
roles | - |
secrets |
- |
serviceaccounts | sa |
services |
svc |
statefulsets |
- |
storageclasses |
- |
3、kubectl命令大全
kubectl作为kubernetes的命令行工具,主要的职责就是对集群中的资源的对象进行操作,这些操作包括对资源对象的创建、删除和查看等。下表中显示了kubectl支持的所有操作,以及这些操作的语法和描述信息:
注意:每个命令的具体使用可以使用kubectl [command] -h
进行查看。设置kubectl命令自动补充source <(kubectl completion bash)
。
- 基础命令
命令 | 语法 | 描述 |
---|---|---|
create |
kubectl create -f FILENAME [options] | 从文件或stdin中创建一个或多个资源对象 |
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] |