上文我们简单的介绍了一下使用文件的方式进行操作kubernetes的对象。今天我们再详细的介绍下操作kubernetes对象具体有哪些方式。
一、使用命令行进行操作
使用命令行进行操作就是我们常见的一种操作方式,这种方式很简单,一行简单的命令即可创建或者销毁对象。例如:
kubectl run nginx --image nginx
使用上面一行命令,我们就可以在kubernetes集群中创建一个nginx对象。
使用命令行操作对象的优点:
1、命令简单,容易学习,容易记住 2、只需要一个步骤即可完成对集群对象的执行或者变更
使用命令行操作对象的缺点:
1、无法对操作过的命令记录下来,方便查看历史的操作步骤 2、没有香港的日志审计 3、无法制作新对象模板
备注:使用命令行操作对象的模式一般仅限于学习阶段或者开发阶段,同时由于简单易学的特性,一般我们不应用于生产环境上。
二、使用指令性的对象配置
这个方式我们在前面已经介绍了,就是创建一个yaml文件,然后使用kubectl apply -f xxx.yaml的方式进行操作
使用指令性的对象配置操作对象的优点:
1、对象配置文件可以存储在在线的系统里面方便进行统一管理,例如:git上,nginx的某个目录下 2、对象的配置文件在执行前方便进行审计和复核 3、对象的配置文件可以作为一个模板,直接用来创建新的对象 4、使用对象的配置文件更容易进行理解 5、使用对象的配置文件显得技能更加娴熟
使用指令性的对象配置操作对象的缺点:
1、需要理解对象配置文件的基本格式 2、需要额外编写yaml文件
备注:使用配置文件的方式一般我们在生产环境上使用较多。
三、使用声明式的对象配置
这个方式主要还是需要对应的配置文件,然后把这些文件放到一个文件夹下,kubectl会根据具体情况做对象的创建、更新或者删除操作。
例如我们把nginx.yaml文件放到 /mbt/kubenetes/nginx目录下,此时我们执行的时候需要执行如下命令
kubectl diff -f /mbt/kubenetes/nginx/ kubectl apply -f /mbt/kubenetes/nginx/
此时kubectl会检查nginx是否存在,不存在则创建,如果存在,则判断是否更变更,有变更则更新。
使用声明式的对象配置操作对象的优点:
1、在kubernetes集群中已有对象的修改将被保留。 2、kubectl自动探测对对象执行创建、更新、删除操作
使用声明式的对象配置操作对象的缺点:
声明式的对象配置复杂度更高,Debug更困难 部分更新对象时,带来复杂的合并操作
备注:使用声明式的对象配置这种方式在生产上使用也是比较多的。
还没有评论,来说两句吧...