Kubectl 使用简介
kubectl概述
kubectl 是 Kubernetes 集群的命令行工具,通过 kubectl 能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署。
运行 kubectl 命令的语法如下所示
1 | |
- command:指定要对资源执行的操作,例如
create、get、describe和delete; - TYPE:指定资源类型,例如:
nodes、deployment; - NAME:指定资源的名称,名称是大小写敏感的。如果省略名称,则会显示所有的资源;
- flags:指定可选的参数。
另外,可以通过运行kubectl help命令获取更多的信息。
kubectl的操作 (command)
kubectl作为kubernetes的命令行工具,主要的职责就是对集群中的资源的对象进行操作,这些操作包括对资源对象的创建、删除和查看等。下表列出常用的操作:
| 操作 | 语法 | 描述 |
|---|---|---|
| apply | kubectl apply -f FILENAME [flags] |
将来自于文件或stdin的配置变更应用到主要对象中。 |
| cluster-info | kubectl cluster-info [flags] |
显示群集中的主节点和服务的的端点信息。 |
| create | kubectl create -f FILENAME [flags] |
|
| delete | kubectl delete (-f FILENAME | TYPE [NAME | NAME | -l label | –all]) [flags] |
删除资源对象。 |
| describe | kubectl describe (-f FILENAME | TYPE [NAME_PREFIX | /NAME | -l label]) [flags] |
显示一个或者多个资源对象的详细信息。 |
| exec | kubectl exec POD [-c CONTAINER] [-i] [-t] [flags] [– COMMAND [args…]] |
在Pod的容器中执行一个命令。 |
| get | kubectl get (-f FILENAME | TYPE [NAME | /NAME | -l label]) [–watch] [–sort-by=FIELD] [[-o | –output]=OUTPUT_FORMAT] [flags] |
列出一个或多个资源。 |
| logs | kubectl logs POD [-c CONTAINER] [–follow] [flags] |
显示Pod中一个容器的日志。 |
| run | kubectl run NAME –image=image [–env=”key=value”] [–port=port] [–replicas=replicas] [–dry-run=bool] [–overrides=inline-json] [flags] |
在集群上运行一个指定的镜像。(直接创建 Pod, 不推荐) |
| version | kubectl version [–client] [flags] |
显示运行在客户端和服务器端的Kubernetes版本。 |
资源对象类型 (type)
在kubernetes中,提供了很多的资源对象,开发和运维人员可以通过这些对象对容器进行编排。关于这些资源类型先埋个坑后续会一一介绍。
| 资源对象类型 | 缩略别名 |
|---|---|
| componentstatus | cs |
| configmaps | cm |
| daemonsets | ds |
| deployments | deploy |
| ingresses | ing |
| namespaces | ns |
| nodes | no |
| persistentvolumeclaims | pvc |
| persistentvolumes | pv |
| pods | po |
| secrets | |
| statefulsets | |
| storageclasses |
输出选项
kubectl默认的输出格式为纯文本格式,可以通过-o或者–output字段指定命令的输出格式。
1 | |
| 输出格式 | 描述 |
|---|---|
-o=custom-columns=<spec> |
使用以逗号分隔的自定义列打印表格。 |
-o=custom-columns-file=<filename> |
使用文件中自定义列打印表格。 |
-o=json |
输出JSON格式的API对象 |
-o=jsonpath=<template> |
打印在jsonpath表达式中定义的字段 |
-o=jsonpath-file=<filename> |
打印文件中以jsonpath表达式定义的字段 |
-o=name |
仅仅输出资源对象的名称。 |
-o=wide |
输出带有附加信息的纯文本格式。对于Pod对象,将会包含Node名称。 |
-o=yaml |
输出YAML格式的API对象 |