当前位置:   article > 正文

yaml 资源配置清单使用详解——k8s声明式资源管理_kubectl查看yaml文件

kubectl查看yaml文件

目录

一、kubectl 操作 yaml 文件

1.应用yaml文件指定的资源 

2.删除yaml文件指定的资源

3.查看资源的yaml格式信息

4.查看yaml文件字段说明

5.修改yaml文件指定的资源

(1)离线修改

(2)在线修改

二、编辑yaml配置清单生成资源

1.编写yaml文件

(1)案例1:yaml创建Deployment

 (2)案例2:yaml创建Service对外提供访问并测试

(3)案例2:yaml创建Pod

2.生成模板

(1)pod模板

(2)serivce模板

(3)deployment模板

3.导入模板


一、kubectl 操作 yaml 文件

1.应用yaml文件指定的资源 

kubectl create -f xxx.yaml

kubectl apply -f xxx.yaml 

#区别:使用create创建资源是一次性的,如果使用apply创建,后期修改yaml文件再次执行apply可以实现更新资源

2.删除yaml文件指定的资源

 kubectl delete -f xxx.yaml

3.查看资源的yaml格式信息

kubectl get 资源名称 -o yaml

4.查看yaml文件字段说明

kubectl explain yaml文件中的字段(多级字段用 . 隔开)

5.修改yaml文件指定的资源

(1)离线修改

直接修改资源对应的yaml文件,并用 kubectl apply -f xxx.yaml 文件使之生效

注意:当apply不生效时,先使用delete清除资源,再使用apply创建资源

(2)在线修改

kubectl edit 资源名称        #在线编辑资源配置清单并保存退出即时生效

                                          注意:此修改方式不会对yaml文件内容修改

二、编辑yaml配置清单生成资源

编写yaml文件有三种方式:

  • 直接编写:即从零开始写一个yaml文件,可以借用kubectl explain 字段名查看。
  • 生成模板:使用kubectl run 资源 --dry-run=client > xxx.yaml 生成yaml模板文件,然后进行编辑。
  • 导出模板:将现有资源使用 yaml 格式输出并导入 xxx.yaml 文件,然后进行编辑。

1.编写yaml文件

(1)案例1:yaml创建Deployment

  1. vim demo1.yaml
  2. ---
  3. apiVersion: apps/v1 //指定api版本标签
  4. kind: Deployment //定义资源的类型/角色,deployment为副本控制器,此处资源类型可以是Deployment、Job、Ingress、Service等
  5. metadata: //定义资源的元数据信息,比如资源的名称、namespace、标签等信息
  6. name: nginx-deployment //定义资源的名称,在同一个namespace空间中必须是唯一的
  7. namespace: kube-public //定义资源所在命名空间
  8. labels: //定义资源标签
  9. app: nginx
  10. name: test01
  11. spec: //定义资源需要的参数属性,诸如是否在容器失败时重新启动容器的属性
  12. replicas: 3 //副本数
  13. selector: //定义标签选择器
  14. matchLabels: //定义匹配标签
  15. app: nginx //需与.spec.template.metadata.labels 定义的标签保持一致
  16. template: //定义业务模板,如果有多个副本,所有副本的属性会按照模板的相关配置进行匹配
  17. metadata:
  18. labels: //定义Pod副本将使用的标签,需与.spec.selector.matchLabels 定义的标签保持一致
  19. app: nginx
  20. spec:
  21. containers: //定义容器属性
  22. - name: nignx //定义一个容器名,一个 - name: 定义一个容器
  23. image: nginx:1.21 //定义容器使用的镜像以及版本
  24. ports:
  25. - name: http
  26. containerPort: 80 定义容器的对外的端口
  27. - name: https
  28. containerPort: 443

 (2)案例2:yaml创建Service对外提供访问并测试

  1. vim demo1_svc.yaml
  2. ---
  3. apiVersion: v1
  4. kind: Service
  5. metadata:
  6. name: nginx-svc
  7. namespace: kube-public
  8. spec:
  9. type: NodePort //类型为nodeport,可以对外提供服务
  10. ports:
  11. - name: http
  12. port: 8080 //service端口
  13. targetPort: 80 //对应pod中的80端口
  14. nodePort: 30080 //服务映射的node节点端口
  15. - name: https
  16. port: 8443
  17. targetPort: 443
  18. nodePort: 30443
  19. selector:
  20. app: nginx //指定选择器,在pod标签中查看

(3)案例2:yaml创建Pod

  1. vim demo2.yaml
  2. ---
  3. apiVersion: v1
  4. kind: Pod //类型为pod
  5. metadata:
  6. name: mynginx
  7. labels:
  8. name: mynginx
  9. spec:
  10. containers: //指定容器镜像和端口
  11. - name: nginx
  12. image: nginx:1.18
  13. ports:
  14. - containerPort: 80
  15. ---
  16. apiVersion: v1
  17. kind: Service
  18. metadata:
  19. name: nginxpodsvc
  20. labels:
  21. name: mynginx
  22. spec:
  23. type: NodePort //nodeport类型可以对外服务
  24. ports:
  25. - port: 8008 //服务指定8008端口,因为没有指定node端口,会随机生成
  26. targetPort: 80
  27. selector:
  28. name: mynginx

2.生成模板

(1)pod模板

kubectl run pod名称 --image=指定镜像 --port=pod端口 --dry-run=client -o yaml > xxx.yaml

# kubectl run 可以运行一个容器

# --dry-run=client 可以实现空跑一个容器,不会实际创建(用于测试)

# -o yaml 输出yaml格式

# > xxx.yaml 将输出内容导入指定的yaml文件

(2)serivce模板

kubectl expose deployment 服务名称 --port=服务端口 --target-port=pod端口 --type=端口类型 --dry-run=client -o yaml > xxx.yaml

(3)deployment模板

kubectl create deployment 名称 --image=镜像 --port=容器端口 --replicas=n --dry-run=client -o yaml > xxx.yaml

3.导入模板

kubectl get 资源类型 资源名称 -o yaml > xxx.yaml        #这种方式需要删除改动的地方较多

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/629171
推荐阅读
相关标签
  

闽ICP备14008679号