k8s的声明式资源管理(yaml文件)
1、声明式管理的特点
(1)适合对资源的修改操作
(2)声明式管理依赖于yaml文件,所有的内容都在yaml文件当中
(3)编辑好的yaml文件,还是要依靠陈述式的命令发布到k8s集群当中
kubectl create | 只能创建,不能更新,从指定的yaml文件中读取配置,创建服务,不能更新 |
kubectl apply -f (使用最多) | 既可以创建资源对象,也可以更新资源对象,如果yaml文件更改了,apply可以直接更新资源对象 |
kubectl delete -f | 删除yaml文件中声明的资源对象(声明deployment、pod、service) |
2、生成yaml文件
(1)手动输入
(2)可以根据已有的资源直接生成
修改yaml文件:kubectl edit deployment nginx |
查看yaml文件:kubectl get deployments.apps nginx -o yaml |
导出yaml文件:kubectl get deployments.apps nginx -o yaml > /opt/test.yaml |
3、修改yaml文件(基于已有的资源生成yaml)
(1)基于已有的资源生成yaml:kubectl get deployments.apps nginx -o yaml > /opt/test.yaml
(2)修改,重新创建更新资源对象:kubectl apply -f test.yaml --force
4、常见的yaml文件
(1)deployment的yaml文件(daemonset、statefulset)
(2)service的yaml文件
(3)不基于控制器的pod的yaml文件
5、k8s中支持两种声明式的资源管理方式
(1)yaml格式:用于配置和管理资源对象
(2)json格式:主要用于在api接口之间消息的传递
6、配置deployment的yaml文件(daemonset、statefulset)
(1)kubectl explain deployment
(2)kubectl explain service/kubectl explain pod
(3)配置deployment的yaml文件
①创建deployment的yaml文件
②kubectl apply -f nginx.yaml
7、基于yaml文件创建service
8、创建pod的yaml文件
9、command、args:用于指定容器启动时执行的命令和参数
定义容器运行的参数,类似于docker的CMD和entrypoint(重) | |
command | 类似于docker中的entrypoint |
args | 可以理解为docker中的CMD,可以给command的传参 |
command和args都会覆盖原容器的标准输出(cmd和entrypoint) | |
①command的和args的命令格式相同。 ②command和args不要同时出现,除非要传参,都是容器的标准输出(类似CMD、entrypoint) |