k8s声明式命令+yaml

一、声明式管理方法

  1. 适合适合于对资源的修改操作
  2. 声明式资源管理方法依赖于资源配置清单文件对资源进行管理
  3. 对资源的管理,是通过实先定义在同一资源内,再通过陈述式命令应用到k8s集群里
  4. 语法格式: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

port是k8s集群内部访问service的端口,即通过clusterIP:port 可以从Pod所在的Node上访问到service

  • nodeport

nodeport是外部访问k8s集群中service的端口,通过nodeIP:nodeport可以从外部访问到某个service。

  • targetport

targetport是pod的端口,从port或nodeport来的流量经过kube-proxy反向代理负载均衡转发到后端pod的targetport上,最后进入容器。

  • containerport

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
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐