k8s声明式命令+yaml
一、声明式管理方法
- 适合适合于对资源的修改操作
- 声明式资源管理方法依赖于资源配置清单文件对资源进行管理
- 对资源的管理,是通过实先定义在同一资源内,再通过陈述式命令应用到k8s集群里
- 语法格式:kubectl create/apply/delete -f xxxx.yaml
//查看资源配置清单
kubectl get deployment nginx -o yaml
//解释资源配置清单
kubectl explain deployment.metadata
kubectl get service nginx -o yaml
kubectl explain service.metadata
//修改资源配置清单应用
离线修改:
修改yaml文件,并用kubectl apply -f xxxx.yaml 文件使之生效
注意:当apply不生效是,先使用delete清楚资源,再apply创建资源
kubectl get service nginx -o yaml > nginx-svc.yaml
vim nginx-svc.yaml #修改port:8080
kubectl delete -f nginx-svc.yaml
kubectl apply -f nginx-svc.yaml
kubectl get svc
在线修改:
直接使用 kubectl edit service nginx 在线编辑资源配置清单并保存退出即时生效(如port:888)
#此修改方式不会对yaml文件内容修改
//删除资源配置清单
陈述式删除:
kubectl delete service nginx
声明式删除:
kubectl delete -f nginx-svc.yaml
二、yaml文件
kubernets支持yaml和json格式管理资源对象
json格式:主要用于api接口之间消息的传递
yaml格式:用于配置和管理,yaml文件是一种简洁的非标记性语言,内容格式人性化,易读
yaml语法格式:
- 大小写敏感
- 使用缩进表示层级关系
- 不支持tab键制表符缩进,只使用空格缩进
- 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可,通常开头缩进两个空格
- 符号字符后缩进一个空格,如冒号,逗号,短横杠(-)等
- “—”表示yaml格式,一个文件的开始,用于分隔文件
- “#”表示注释
详解k8s中的port:
port是k8s集群内部访问service的端口,即通过clusterIP:port 可以从Pod所在的Node上访问到service
nodeport是外部访问k8s集群中service的端口,通过nodeIP:nodeport可以从外部访问到某个service。
targetport是pod的端口,从port或nodeport来的流量经过kube-proxy反向代理负载均衡转发到后端pod的targetport上,最后进入容器。
containerport是pod内部容器的端口,targetport映射到containerport
快速生成yaml文件:
kubectl create deployment nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run=client -o #生成模板
kubectl create deployment nginx-test --image=nginx --port=80 --replicas=3 --dry-run=client -o yaml > nginx-test.yaml #生成模板文件
kubectl get svc nginx-svc -o yaml > test_svc.yaml
|