«

K8S对象管理

一个摆子 发布于 阅读:66 K8S


kubectl命令行支持多种不同方式来创建和管理K8S对象。

管理技巧

应只使用一种技术来管理K8S对象。混合和匹配技术作用在同一个对象上将导致未定义行为

管理技术 作用于 建议环境 支持的写者 学习难度
指令式命令 活跃对象 开发项目 1+ 最低
指令式对象配置 单个文件 生产项目 1 中等
声明式对象配置 文件目录 生产项目 1+ 最高
指令式命令

可以在集群中活动对象上操作,将操作传给kubectl命令作为参数或标志
开始或者在集群中运行一次性任务的推荐方法,不提供以前配置的理是记录
例通过创建Deployment对象来与逆行nginx容器
kubectl create deployment nginx --image nginx

权衡

与对象配置相比的优点

与对象配置相比的缺点

指令式对象配置

kubectl命令指定操作(创建,替换等),可选标志和至少一个文件名。指定的文件必须包含YAML或JSON格式的对象的完整定义
replace指令式命令将现有规范替换为新提共的规范,并放弃对配置文件中缺少的所有更改。此方法不应与对象规约被独立于配置文件进行更新的资源类型一起使用。如1loadBalancer的服务,它的externalIPs字段独立于集群配置进行更新。
例:
创建配置文件中定义的对象
kubectl create -f nginx.yaml
删除两个配置文件中定义的对象
kubectl delete -f nginx.yaml -f redis.yaml
通过覆盖活动配置来更新配置文件中定义的对象
kubectl replace -f nginx.yaml

权衡

与指令式命令相比的有点

与指令式命令相比缺点

与声明式对象配置相比的优点

与声明式对象配置相比的缺点

声明式对象配置

用户对本地存储的对象配置文件进行操作,但是用户未定义要对该文件执行的操作,kubectl会自动检测每个文件的创建、更新和删除操作。这使得配置可以在目录上工作,根据目录中配置文件对不同的对象执行不同的操作。

例:
处理configs目录中的所有对象配置文件,创建并更新活动对象。可以先使用diff子命令查看将要进行的更改,然后应用

kubectl diff -f configs/
kubectl apply -f configs/

递归处理目录

kubectl diff -R -f configs/
kubectl apply -R -f configs/
权衡

与指令式对象配置相比的优点

与指令式对象配置相比的缺点

交流群:

请先 登录 再评论