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的值。
可用资源对象包括(支持大小写):replicationcontroller
、deployment
、daemonset
、job
、replicaset
。
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 golang template 和 jsonpath template [jsonpath]。 | |
output-version | DEPRECATED: 要使用特定的API版本, 请完全限定资源、版本和组 (例如: | ||
record | false | 在资源注释中记录当前kubectl命令。如果设置为 则不记录该命令。如果设置为 如果未设置,则默认仅在已有注释值时更新现有注释值。 | |
recursive | R | false | 递归地处理 当您想要管理组织在同一目录中的相关清单时,这很有用。 |
requests | 资源需求请求此容器。例如, 注意,服务器端组件可能会根据服务器配置分配请求, 比如限制范围。 | ||
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 |