01-kubectl 命令之基础命令
- kubectl create:通过yaml/json 文件或者标准输入创建一个资源对象,支持很多子命令 例如namespace pod deployment service等
- kubectl expose:将json/yaml文件中定义的资源对象的端口暴露给新的service资源对象
- kubectl run:创建并运行一个或多个容器镜像
- kubectl set:配置资源对象设置特定功能
- kubectl explain:查看资源对象的详细信息(一般用一编写yaml的时候做一个提示 kubectl explain deployment 会出现 deployment 下面可以写的字段以及字段属性还有 可以逐级使用)
- kubectl get:获取一个或多个资源对象的信息
- kubectl edit:使用默认编辑器编辑服务器上定义的资源对象
- kubectl delete:通过json/yaml文件、标准舒服、资源名称或标签选择器来删除资源
kubectl create
通过配置文件名或stdin创建一个集群资源对象。支持JSON和YAML格式的文件。
官方文档
- https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#create
- http://docs.kubernetes.org.cn/490.html
语法
1 |
|
示例
1 |
|
kubectl expose
将资源暴露为新的Kubernetes Service。
指定deployment、service、replica set、replication controller或pod,并使用该资源的选择器作为指定端口上新服务的选择器。deployment 或 replica set只有当其选择器可转换为service支持的选择器时,即当选择器仅包含matchLabels组件时才会作为暴露新的Service。
资源包括(不区分大小写): pod(po),service(svc),replication controller(rc),deployment(deploy),replica set(rs)。
官方文档
- https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#expose
- http://docs.kubernetes.org.cn/475.html
语法
1 |
|
示例
1 |
|
kubectl run
- 创建并运行一个或多个容器镜像。
- 创建一个deployment 或job 来管理容器。
官方文档
- https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#run
- http://docs.kubernetes.org.cn/468.html
语法
1 |
|
示例
1 |
|
kubectl set
配置资源对象设置特定功能。 使用这些命令能帮你更改现有应用资源一些信息。
官方文档
- https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#set
- http://docs.kubernetes.org.cn/669.html
语法
1 |
|
子命令
- env
- image
- resources
- selector
- serviceaccount
- subject
kubectl set image
- 用于更新现有资源的容器镜像。
- 可用资源对象包括:pod (po)、replicationcontroller (rc)、deployment (deploy)、daemonset (ds)、job、replicaset (rs)。
语法
1 |
|
示例
1 |
|
kubectl set resources
- 这个命令用于设置资源的一些范围限制。
- 资源对象中的Pod可以指定计算资源需求(CPU-单位m、内存-单位Mi),即使用的最小资源请求(Requests),限制(Limits)的最大资源需求,Pod将保证使用在设置的资源数量范围。
- 对于每个Pod资源,如果指定了Limits(限制)值,并省略了Requests(请求),则Requests默认为Limits的值。
- 可用资源对象包括(支持大小写):replicationcontroller、deployment、daemonset、job、replicaset。
语法
1 |
|
示例
1 |
|
kubectl set selector
- 设置资源的 selector(选择器)。如果在调用”set selector”命令之前已经存在选择器,则新创建的选择器将覆盖原来的选择器。
- selector必须以字母或数字开头,最多包含63个字符,可使用:字母、数字、连字符” - “ 、点”.“和下划线” _ “。如果指定了–resource-version,则更新将使用此资源版本,否则将使用现有的资源版本。
- 注意:目前selector命令只能用于Service对象。
语法
1 |
|
kubectl explain
用于显示资源文档信息
官方文档
语法
1 |
|
示例
1 |
|
kubectl get
官方地址
- http://docs.kubernetes.org.cn/626.html
- https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#get
语法
1 |
|
常见
resource_name
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37all
certificatesigningrequests (缩写 csr)
clusterrolebindings
clusterrol
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)
poddisruptionbudgets (缩写 pdb)
podpreset
pods (缩写 po)
podsecuritypolicies (缩写 psp)
podtemplates
replicasets (缩写 rs)
replicationcontrollers (缩写 rc)
resourcequotas (缩写 quota)
rolebindings
roles
secrets
serviceaccounts (缩写 sa)
services (缩写 svc)
statefulsets (缩写 sts)
storageclasses (缩写 sc)其它可选参数
1
2
3
4
5# 用不同的格式查看
-o wide/yaml/json
# 看指定标签的pods,支持’=’, ‘==’, and ‘!=’操作符
-l key=value
举例
1 |
|
kubectl edit
使用 默认编辑器 编辑服务器上定义的资源。
使用 命令行工具 获取的任何资源都可以使用 edit 命令编辑。edit 命令会打开使用 KUBE_EDITOR、GIT_EDITOR 或者 EDITOR 环境变量定义的编辑器,可以同时编辑多个资源,但所编辑过的资源只会一次性提交。edit除命令参数外还接受文件名形式。
文件默认输出格式为YAML。要以JSON格式编辑,请指定“-o json”选项。
如果在更新资源时报错,将会在磁盘上创建一个临时文件来记录。在更新资源时最常见的错误是几个用户同时使用编辑器更改服务器上资源,发生这种情况,你需要将你的更改应用到最新版本的资源上,或者更新保存的临时副本。
官方文档
- https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#edit
- http://docs.kubernetes.org.cn/623.html
语法
1 |
|
示例
1 |
|
kubectl delete
通过配置文件名、stdin、资源名称或label选择器来删除资源。
支持 JSON 和 YAML 格式文件。可以只指定一种类型的参数:文件名、资源名称或 label 选择器。
有些资源如 pod,支持优雅的(graceful)删除,因为这些资源一般是集群中的实体,所以删除不可能会立即生效,这些资源在强制终止之前默认定义了一个周期(宽限期),但是你可以使用 -grace-period flag
来覆盖该值,或者通过 pass --now
设置该周期为1。
如果托管 Pod 的 Node 节点已经停止或者无法连接 API Server,使用 delete 命令删除 Pod 需等待时间更长。要强制删除资源,需指定 -force flag
,且设置周期(宽限期)为 0。
如果执行强制删除 Pod,则调度程序会在节点释放这些 Pod 之前将新的 Pod 放在这些节点上,并使之前 Pod 立即被逐出。
注意:执行 delete 命令时不会检查资源版本,如果在执行 delete kube操作时有人进行了更新操作,那么更新操作将连同资源一起被删除。
官方文档
- https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#delete
- http://docs.kubernetes.org.cn/618.html
语法
1 |
|
示例
1 |
|