目录
一、声明式管理方法
1.适合于对资源的修改操作(陈述式方式修改资源非常不方便)
2.声明式资源管理方法依赖于yaml资源配置清单文件对资源进行管理
资源配置清单文件有两种格式:yaml(人性化,易读),json(易于api接口解析)
3.对资源的管理,是通过事先定义在统一资源配置清单yaml文件内,再通过陈述式命令应用到k8s
集群里
4.语法格式:kubectl create/apply/delete -f xxxx.yaml
create:表示创建资源不允许修改除非先删除
apply:建议使用的方式
delete:表示删除
二、资源配置清单管理
1.导出资源配置清单
查看资源配置清单
kubectl get 资源类型 资源名称 -o yaml
解释资源配置清单
kubectl explain 资源名称.字段名称
2.修改资源配置清单并应用
1)离线修改
cd -
mkdir day3
kubectl get -n xy101 svc svc-myapp -o yaml > svc.yaml
ls
vim svc.yaml #删除多余内容只保存下图展示
kubectl get -n xy101 svc
vim svc.yaml
#直接对导出的yaml文件进行修改
kubectl apply -f svc.yaml #进行更新操作,但是此时会报错,无法修改,因为该service资源不是通过该svc.yaml文件创建的因此无法更新会报错。
我们需要进行操作,将原先的service进行删除然后在进行更新
可以使用kubectl delete -n xy101 svc svc-myapp进行删除;也可以通过kubectl delete -f svc.yaml该命令直接删除,因为svc.yaml配置文件中已经定义了该资源的各种参数,直接指定这个文件删除即可
kubectl delete -f svc.yaml && kubectl apply -f svc.yaml #删除并更新
kubectl get -n xy101 svc
vim svc.yaml
kubectl apply -f svc.yaml #此时这个service文件是通过这个yaml文件创建的,因此可以直接使用该命令进行更新操作
2)在线修改
直接使用 kubectl edit service 资源名称 在线编辑资源配置清单并保存退出即时生效
PS:此修改方式不会对yaml文件内容修改
#但是此种方法并不是所有字段都能进行修改,若遇到 不能修改的字段,则直接选择离线模式进行修改
kubectl edit -n xy101 svc svc-myapp
进行修改,保存
通过声明式修改方式实现金丝雀发布(通过控制副本数实现)
重新创建资源、service
kubectl create -n xy101 deployment myapp-v1 --image=soscscs/myapp:v1 --port=80 --replicas=3
kubectl expose -n xy101 deployment myapp-v1 --name=svc-myapp --port=80 --target-port=80 --type=NodePort
kubectl get -n xy101 deployments.apps myapp-v1 -o yaml > deploy.yaml
vim deploy.yaml
修改9行 app: myapp-v2
98行 replicas: 1
92行 nam