yaml 资源配置清单使用详解——k8s声明式资源管理

news2024/11/20 10:24:08

目录

一、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

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

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

vim demo1_svc.yaml
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-svc
  namespace: kube-public
spec:
  type: NodePort    //类型为nodeport,可以对外提供服务
  ports:
  - name: http    
    port: 8080    //service端口
    targetPort: 80    //对应pod中的80端口
    nodePort: 30080    //服务映射的node节点端口
  - name: https
    port: 8443
    targetPort: 443
    nodePort: 30443
  selector:
    app: nginx    //指定选择器,在pod标签中查看

(3)案例2:yaml创建Pod

vim demo2.yaml
---
apiVersion: v1
kind: Pod    //类型为pod
metadata:
  name: mynginx
  labels:
    name: mynginx
spec:
  containers:    //指定容器镜像和端口
  - name: nginx
    image: nginx:1.18
    ports:
    - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: nginxpodsvc
  labels:
    name: mynginx
spec:
  type: NodePort    //nodeport类型可以对外服务
  ports:
  - port: 8008    //服务指定8008端口,因为没有指定node端口,会随机生成
    targetPort: 80
  selector:
    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        #这种方式需要删除改动的地方较多

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/110537.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java开发如何通过IoT边缘ModuleSDK进行进程应用的开发?

摘要:为解决用户自定义处理设备数据以及自定义协议设备快速接入IOT平台的诉求,华为IoT边缘提供ModuleSDK,用户可通过集成SDK让设备以及设备数据快速上云。本文分享自华为云社区《【华为云IoTEdge开发实战】Java开发如何通过IoT边缘ModuleSDK进…

字符串函数剖析(2)

最慢的步伐不是跬步,而是徘徊;最快的脚步不是冲刺,而是坚持。——《人民日报》 字符串函数的重点: 文章不长,是为了让你一点点消化所有内容: 1.strncpy函数的脾气 1.1模拟实现strncpy函数 2.strncmp函数…

马化腾说视频号是全公司希望

我是卢松松,点点上面的头像,欢迎关注我哦! 这应该是,腾讯这家公司创办以来,马化腾最焦虑也最外露的一次讲话了,对于腾讯内部的大会,马化腾先生作了重要发言,因其在内部员工大会的讲…

边界网关协议BGP(计算机网络-网络层)

目录 因特网分层路由 分层路由和自治系统 边界网关协议 BGP BGP 的设计目标 BGP 发言人 路径向量算法 BGP 协议的要点 因特网分层路由 规模问题 路由选择算法将很难收敛 交换的路由信息会占用大量的带宽 管理问题 许多单位不愿意外界了解自己单位网络的具体细节 希望采用…

新能源汽车补贴即将取消,汽车金融的促进作用逐渐显现

中国新能源汽车产业发展强劲。自2015年起,新能源汽车销量连续7年位居世界第一。特别是2021年以来,在政策支持、技术驱动、消费者接受度提升等多重因素共同影响下,中国新能源汽车市场实现了超越式的发展。2022年1-10月,新能源汽车批…

这份京东T8级程序员整理的新版Spring Cloud手抄本,把微服务讲透了

近几年,微服务可谓是红的发紫,仿佛一时间所有系统无不以拆分为荣,以构建烟囱型应用为耻。最近,一位朋友刚好赶上公司基础服务的微服务化项目,加上之前又主动学习了不少微服务的内容,便主动请缨参与到项目里…

前端实现网站悼念【灰色效果】几行代码轻松解决

博主介绍 📢点击下列内容可跳转对应的界面,查看更多精彩内容! 🍎主页:水香木鱼 🍍专栏:CSS3 文章目录 简介:这是一篇有关【前端实现网站悼念【灰色效果】几行代码轻松搞定】的文章&…

遗传编程(Genetic Programming, GP)

1. 绪言 1.1 遗传编程概述 \quad\quad自计算机出现以来,计算机科学的一个重要目标是让计算机自动进行程序设计,即只要明确地告诉计算机要解决的问题,而不需要告诉它如何去做,遗传规划便是在该领域内的一种尝试。它采用遗传算法的…

IDEA反编译Jar包

一.安装Java Bytecode Decomplier插件 (1) File–>Settings–>Plugins ,搜索 Java Bytecode Decomplier 插件 (2) 查看安装插件的路径 File->Import Setting 注意:如果你的插件里面搜不到 Java Bytecode Decomplier,但是能搜到…

spring之Bean的生命周期

文章目录一、Bean的生命周期之五步1、准备User类2、spring配置文件3、测试类4、运行结果二、Bean的生命周期之七步1、实现BeanPostProcessor类2、配置文件3、运行结果:三、Bean的生命周期之十步1、点位12、点位23、点位3四、Bean的作用域一、Bean的生命周期之五步 …

Coinbase或在不久使用Zebec发放工资,并对Web3支付赛道发展寄予厚望

流支付协议Zebec Protocol目前已经完成了生态向BNB Chian上的迁移,目前得到了以PancakeSwap为代表的头部生态的支持。在12月20日Zebec生态在PancakeSwap官方的支持下,经过社区投票,ZBC通证上线了糖浆池,并有望继续上线Binance。而…

ELK集群部署---Kibana的部署

1. 环境规划: 主机名IP地址角色node1192.168.56.111 ElasticSearch(master) Zookeeper Kafka node2192.168.56.112 ElasticSearch(slave) Kibana Zookeeper Kafka node3192.168.56.113 ElasticSearch(slave) Zookeeper Kafka node4192.168.56.114 Logstash Filebe…

优雅数据同步--canal实现mysql同步demo

当需要两张表数据同步的时候,我们会想到几种方案? 最简单的一种方式就是触发器的方式。例如A同步到B,可以通过下面的sql来添加触发器 create trigger tri_trade_update after UPDATE on A for each row begin update B set company_id new.compan…

数据结构和算法学习——稀疏数组

目录 一、数据结构和算法的关系 二、数据结构的分类 (一)线性结构 (二)非线性结构 三、稀疏数组(sparsearray) (一)稀疏数组的基本介绍 (二)稀疏数组的处理方法 一、数据结构和算法的关系 数据data结构(structure)是一门研究组织数据方式的学科,有了编程语言…

Grafana 查询数据和转换数据

Grafana 系列文章,版本:OOS v9.3.1 Grafana 的介绍和安装Grafana监控大屏配置参数介绍(一)Grafana监控大屏配置参数介绍(二)Grafana监控大屏可视化图表Grafana 查询数据和转换数据 介绍 Grafana能够支持各…

微服务网关GateWay

在微服务架构下,网关的本质,其实就是对请求进行路由转发,在此基础上我们可以根据网关在整个微服务架构中的特殊位置,对请求进行前置和后置的处理。 请求转发和路由:网关类似于一个门面,微服务的组织细节对…

三维数字化开发管理中心

目录一、前言二、项目依赖2.1 后端2.2 前端三、快速运行3.1 启动后台服务3.2 启动前台页面四、使用手册4.1 登录4.2 首页4.3 资源中心4.4 在线预览4.5 三维开发4.6 信息管理4.6.1 用户信息4.6.2 模型信息4.7 个人中心五、数据库5.1 数据需求5.2 数据流图5.3 数据字典1&#xff…

马斯克辞任CEO,产品经理如何用项目协作软件武装自己?

自马斯克接管推特以来,已经发起了多轮裁员潮,仅第一波就裁掉了50%的员工。11月14日,马斯克开启第二波裁员。而IT之家12 月 21 日消息,埃隆・马斯克在推特发文对网友的投票结果做出回应,称会尽快找到一个足够傻的人来接…

蓝桥杯备赛Day3——基础数据结构(一维数组)

目录 数据结构 什么是数据结构? 《数据结构》教材一般包含 基础数据结构 最简单的数据结构——一维数组 一维数组的定义 一维变长数组 一维正向遍历 一维反向遍历 一维数组区间操作(实际上就是切片操作) 一维数组从a[1]开始赋值 一维数组的读…

热门项目披露:四川超声印制板有限公司100%股权转让

热门项目披露:四川超声印制板有限公司100%股权转让 项目推荐指数:;该项目由 北京产权交易所 发布,于2022年12月11日被塔米狗平台收录。 项目方 四川超声印制板有限公司, 成立于 1998年7月5日 , 注册资金 2…