Kubernetes(k8s) kubectl set resources常用命令

kubectl 在 $HOME/.kube 目录中查找一个名为 config 的配置文件。 可以通过设置 KUBECONFIG 环境变量或设置 --kubeconfig 参数来指定其它 kubeconfig 文件。本文主要介绍Kubernetes(K8s)中kubectl set resources常用命令。

1、kubectl set和kubectl set resources

kubectl set配置应用资源。使用这些命令可以更改现有应用资源一些信息。

kubectl set resources是资源对象中的Pod可以指定计算资源需求(CPU-单位m、内存-单位Mi),即使用的最小资源请求(Requests),限制(Limits)的最大资源需求,Pod将保证使用在设置的资源数量范围。

Requests:计算资源最小数量。Limits:资源最大允许数量。对于每个Pod资源,如果指定了Limits(限制)值,并省略了Requests(请求),则Requests默认为Limits的值。

可用资源对象包括(支持大小写):replicationcontrollerdeploymentdaemonsetjobreplicaset

2、Kubectl set resources语法

Kubectl set resources (-f FILENAME | TYPE NAME) ([--limits=LIMITS & --requests=REQUESTS]

3、Kubectl set resources命令

1)将deployment的nginx容器cpu限制为 "200m",将内存设置为 "512Mi"

kubectl set resources deployment nginx -c=nginx --limits=cpu=200m,memory=512Mi

2)为nginx中的所有容器设置 Requests和Limits

kubectl set resources deployment nginx --limits=cpu=200m,memory=512Mi --requests=cpu=100m,memory=256Mi

3)删除nginx中容器的计算资源值

kubectl set resources deployment nginx --limits=cpu=0,memory=0 --requests=cpu=0,memory=0

4)打印从本地更新nginx容器限制的结果

kubectl set resources -f path/to/file.yaml --limits=cpu=200m,memory=512Mi --local -o yaml

注意:输出结果是以yaml格式,不会触发服务器。打印结果(以yaml格式),在不影响服务器的情况下,从本地更新nginx容器限制。

4、选项说明

名称

简称

默认

用法

all

false

选择指定资源类型命名空间下的所有资源。

allow-missing-template-keys

true

如果为true,当模板中缺少字段或映射键时,

忽略模板中的任何错误。

只适用于golang和jsonpath输出格式。

containers

c

*

在选定的pod模板中更改容器的名称,

默认情况下选择所有容器-可以使用通配符

dry-run

false

如果为true,则只打印将要发送的对象,

而不发送它。

filename

f

[]

标识要从服务器获取的资源的文件的文件名、目录或URL。

limits

资源需求请求此容器。例如,'cpu=100m,memory=256Mi'。

注意,服务器端组件可能会根据服务器配置分配请求,比如限制范围。

local

false

如果为 true,则设置资源不会联系 api-server,而是在本地运行。

no-headers

false

当使用默认或自定义列输出格式时,

不要打印标题(默认打印标题)。

output

o

输出格式。以下之一: json|yaml|wide|name|custom-columns=...

|custom-columns-file=...|go-template=...|go-template-file=...

|jsonpath=...|jsonpath-file=...

参考 

custom columns 

[custom-columns], 

golang template

 [template/#pkg-overview

jsonpath template 

[jsonpath]。

output-version

DEPRECATED: 要使用特定的API版本,

请完全限定资源、版本和组 (例如: 'jobs.v1.batch/myjob').

record

false

在资源注释中记录当前kubectl命令。如果设置为false

则不记录该命令。如果设置为true,则记录命令。

如果未设置,则默认仅在已有注释值时更新现有注释值。

recursive

R

false

递归地处理 -f, --filename 中使用的目录。

当您想要管理组织在同一目录中的相关清单时,这很有用。

requests

资源需求请求此容器。例如,'cpu=100m,memory=256Mi'

注意,服务器端组件可能会根据服务器配置分配请求,

比如限制范围。

selector

l

选择器(标签查询)进行筛选,支持'=''==''!='

show-all

a

false

打印时,显示所有资源(默认隐藏终止的pod)。

show-labels

false

打印时,将所有标签显示为最后一列(默认隐藏标签列)

sort-by

如果非空,则使用此字段规范对列表类型进行排序。

字段规范表示为JSONPath表达式

(例如。'{.metadata.name}')。

这个JSONPath表达式指定的API资源中的字段必须是整数或字符串。

template

当-o=go-template, -o=go-template-file时

要使用的模板文件的模板字符串或路径。

模板格式为golang templates 

[template/#pkg-overview]。

推荐阅读
cjavapy编程之路首页