05-kubectl 命令之高级命令
- kubectl-diff:对比本地json/yaml文件与kube-apiserver中运行的配置文件是否有差异
- kubectl-apply:通过json/yaml文件 标准输入对资源进行配置更新或者创建
- kubectl-patch:通过patch方式修改资源对象字段(补丁式)
- kubectl-replace:通过json/yaml文件或者标准输入来替换资源对象
- kubectl-wait:在一个或者多个资源上等待条件达成
- kubectl-convert:转换json/yaml文件为不同的资源版本
- kubectl-kustomize:定制kubernetes配置
kubectl diff
官方文档
kubectl apply
通过文件名或控制台输入,对资源进行配置。 如果资源不存在,将会新建一个。可以使用 JSON 或者 YAML 格式。
官方文档
语法:
1 |
|
选项
-f, --filename=[]
: 包含配置信息的文件名,目录名或者URL。-o, --output=""
: 输出格式,使用“-o name”来输出简短格式(资源类型/资源名)。--schema-cache-dir="/tmp/kubectl.schema"
: 如果不为空,将API schema缓存为指定文件,默认缓存到“/tmp/kubectl.schema”。--validate[=true]
: 如果为true,在发送到服务端前先使用schema来验证输入。
继承自父命令的选项
1 |
|
使用kubectl create 和 kubectl apply创建资源对象的区别
序号 | kubectl apply | kubectl create |
---|---|---|
1 | 根据yaml文件中包含的字段(yaml文件可以只写需要改动的字段),直接升级集群中的现有资源对象 | 首先删除集群中现有的所有资源,然后重新根据yaml文件(必须是完整的配置信息)生成新的资源对象 |
2 | yaml文件可以不完整,只写需要的字段 | yaml文件必须是完整的配置字段内容 |
3 | kubectl apply只工作在yaml文件中的某些改动过的字段 | kubectl create工作在yaml文件中的所有字段 |
4 | 在只改动了yaml文件中的某些声明时,而不是全部改动,你可以使用kubectl apply | 在没有改动yaml文件时,使用同一个yaml文件执行命令kubectl replace,将不会成功(fail掉),因为缺少相关改动信息 |
示例
1 |
|
kubectl patch
使用补丁修改,更新资源的字段,也就是修改资源的部分内容
官方文档
语法
1 |
|
选项
-f, --filename=[]
: 包含配置信息的文件名,目录名或者URL。--include-extended-apis[=true]
: If true, include definitions of new APIs via calls to the API server. [default true]-o, --output=""
: 输出格式,使用“-o name”来输出简短格式(资源类型/资源名)。--record[=false]
: 在资源注释中记录当前 kubectl 命令。-R, --recursive[=false]
: Process the directory used in -f, –filename recursively. Useful when you want to manage related manifests organized within the same directory.--schema-cache-dir="/tmp/kubectl.schema"
: 如果不为空,将API schema缓存为指定文件,默认缓存到“/tmp/kubectl.schema”。--validate[=true]
: 如果为true,在发送到服务端前先使用schema来验证输入。
示例
1 |
|
kubectl replace
通过文件或者标准输入替换原有资源
官方文档
语法
1 |
|
示例
1 |
|
kubectl wait
官方文档
kubectl convert
转换配置文件为不同的API版本,支持YAML和JSON格式。
该命令将配置文件名,目录或URL作为输入,并将其转换为指定的版本格式,如果目标版本未指定或不支持,则转换为最新版本。
默认输出将以YAML格式打印出来,可以使用- o选项改变输出格式。
官方文档
- https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#convert
- http://docs.kubernetes.org.cn/488.html
语法
1 |
|
示例
1 |
|
kubectl kustomize
官方文档
05-kubectl 命令之高级命令
https://flepeng.github.io/042-云原生-02-kubernetes-13-命令-kubectl-05-kubectl-命令之高级命令/