声明式管理方法

声明式管理方法(yaml)文件:

1,适合对资源的修改操作

2,声明式管理依赖于yaml文件,所有的内容都在yamI文件当中

3,编辑好的yaml文件,还是要依靠陈述式命令发布到k8s集群当中

发布的三种命令:

create:只能创建,不能更新。从指定yaml文件中读取配置,创建服务。不能更新

apply -f:既可以创建资源对象也可以更新资源对象。如果yaml文件更改了,apply可以之间更新资源对象

工作中最多就是apply -f

delete -f:删除yaml文件中声明的资源对象。

yaml文件如何生成:

1,手打

2,可以根据已有的yaml文件进行修改。

通过已有的文件进行修改

例如:

查看:

kubectl edit deployments.apps nginx

把文件导出:

kubectl get deployments.apps nginx -o yaml > /opt/test.yaml

修改一下:

使用这个文件重新创建:

kubectl apply -f test.yaml

但是只能改一次

再次修改会报错,

可以使用强制修改

--force

kubectl apply -f test.yaml --force

修改直接加上force

所有的基于yaml文件的都可以导出

service

kubectl get svc nginx -o yaml > service.yaml

kubectl apply -f service.yaml

pod也可以导出yaml文件:

kubectl get pod nginx-589f6b958-ghkvm -o yaml

三种yaml文件的类型:

1、deployment的yaml文件 daemonset statefulset

2、service的yamI文件

3、不基于控制器的pod的yamI文件。

k8s当中支持两种声明式的资源管理方式:

1,yaml格式,用于配置和管理资源对象

2,json格式:主要用于api接口之间消息的传递。

一、deployment的yaml文件

查看deployment的格式

kubectl explain deployment

只有deployment api version是apps/v1

vim test.yaml

apiVersion: apps/v1
#声明API版本的标签
kind: Deployment
#定义资源的类型service/pod/deployment/Jod/ingress/daemonset/statefulset
metadata:name: nginx1namespace: chenlabels:cheng: nginx1
#定义资源的元数据信息,资源名称,资源对象部署的命名空间,标签等等信息
spec:
#定义资源需要的参数和属性。replicas: 3
#定义副本数selector:
#定义标签选择器        matchLabels:cheng: nginx1#上下保持一致
#选择匹配的标签template:
#定义业务的模版,如果定义了多个副本,所有的副本的属性都会按照模版的配置进行匹配
。metadata:labels:cheng: nginx1          
#定义了pod的副本都使用元数据的标签和属性来进行匹配spec:containers:- name: nginximage: nginx:1.10posts:#可以忽略- containerPort: 443#可以忽略
#spec声明的是容器的相关参数,虽然我指定了容器的暴露端口是80,nginx默认的镜像就是80
#即使指定了其他端口,也不会改变容器的端口。改了服务还会报错。

命名空间要提前创建。

kubectl create namespace chen

创建

创建一个service

vim nginx-service.yaml

#定义api的版本
apiVersion: v1
kind: Service
metadata:name: nginx-servicenamespace: chenlabels:cheng: nginx1
#元数据信息包括,service的名称,所属的命名空间,以及要匹配的deployment的标签一定要一致。
spec:type: NodePortports:- port: 80targetPort: 80nodePort: 30001selector:cheng: nginx1
#匹配所有的标签都是cheng:nginx1的pod的后端提供服务。

执行:

kubectl apply -f nginx-service.yaml

nodeport端口可以指定也可以不指定

默认的也是TCP

pod yaml文件

vim pod.yaml

#定义POD的APIVERSION
apiVersion: v1
#定义资源的类型
kind: Pod
#定义元数据信息,pod名称,命名空间,标签。
metadata:name: centos1namespace: chen
spec:restartPolicy: Always
#restartPolicy指的是pod内的容器启动失败或者有问题的重启策略:Always Never Onfailure(只有异常才会重启,状态码非0,如果状态是0,不重启)
#restartPolicy指的是容器的重启策略,资源类型定义为deployment,容器的重启策略只能是Alwayscontainers:- name: centosimage: centos:7

执行:

查看拉取详情:

状态没有restart

已经运行结束退出了

改一下

重新运行

会一直重启:

在容器当中运行命令:

command

args

要在容器中运行两个参数,类似于docker的CMD和entrypoint

args可以理解docker中的CMD,给commnad传参。

command和args都会覆盖原容器的标准输出(CMD和ENTRYPOINT)

在容器当中定义执行命令

第一种格式:

多个命令要用分号隔开

查看详细信息:

到3600,自动睡眠

格式2:

多个命令一定要这个开头

kubectl delete pod centos1 -n chen

创建:

kubectl apply -f pod.yaml

在外面查看是否写入

第三种格式:

和args一样

command和args只能有一个

command和arg不要同时出现,除非你要传参

command和args只能有一 个。会把容器的标准输出覆盖。

不论是args和commmand都会覆盖CMD和ENTYRPOINT容器的标准输出。

总结:

三种发布方式:

蓝绿发布

灰布发布(重点)基于deployment的滚动发布,使用了一个机制 pause。resume继续。回滚:所有都升级完毕之后才可以回滚。

滚动发布 deployment默认发布方式。

三种yaml文件格式:

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

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

相关文章

数据损毁!250 亿美金的 Pinterest,在数据库选型上的翻车经历

原文链接 Pinterest 是一个以图片为主的社交网络,用户可以将图片保存或 "钉 / pin" 在自己的图板上。Pinterest 在 2019 年上市,目前市值 250 亿美金。本文内容主要根据 2012 年 Scaling Pinterest 的分享。 2012 年 1 月,Pinteres…

鸿蒙工程目录结构

工程结构 . ├── build ├── build-profile.json5 ├── hvigorfile.ts ├── libs │ └── armeabi-v7a ├── oh-package.json5 ├── oh_modules │ └── types │ └── libentry.so -> ../../src/main/cpp/types/libentry └── src├── ma…

qcom ./development/tools/idegen/idegen.sh 卡住不动

前言 在Android 开发中,有时候我们需要将android 源码导入android studio,就要用到idegen 工具,qcom 高通部分平台发现执行/development/tools/idegen/idegen.sh 不动 分析 通过添加log发现是由于文件遍历进入了死循环; 可以在…

HTML----JavaScript操作对象BOM对象

文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 本章要求 了解BOM模型掌握BOM模型实际应用 一.BOM模型概述 BOM(浏览器对象模型)是JavaScript中的一个重要概念,它提供了一组用于控制浏览器窗口和页面内容的…

力扣热题100道-矩阵篇

矩阵 73.矩阵置零 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法**。** 示例 1: 输入:matrix [[1,1,1],[1,0,1],[1,1,1]] 输出:[[1,0,1],[0,0,0],[1,0,1]]示例…

胡润研究院发布《2023胡润中国最具历史文化底蕴品牌榜》

胡润研究院发布《2023胡润中国最具历史文化底蕴品牌榜》,前十名分别是片仔癀、同仁堂、贵州茅台、五粮液、中国银行、中华、黄山、农业银行、建设银行、汾酒。 榜单调研范围涵盖中国内地具有60年以上历史的为消费者提供产品或服务的品牌,综合考察品牌历史…

C# 语法进阶 委托

1.委托 委托是一个引用类型,其实他是一个类,保存方法的指针 (指针:保存一个变量的地址)他指向一个方法,当我们调用委托的时候这个方法就立即被执行 关键字:delegate 运行结果: 思…

TikTok舞台背后:短视频如何打破艺术界界限?

TikTok,这个以短视频为媒介的平台,正成为全球年轻一代表达创意的重要舞台。然而,其影响不仅仅停留在娱乐领域,更在艺术界引起了巨大的关注。本文将深入探讨TikTok是如何在短视频的形式下打破传统艺术界的界限,为创作者…

欢迎提交pr共同改进项目, pr的含义?

"提交PR"在软件开发和编程领域是一个常用术语,特别是在使用版本控制系统如Git时。这里的“PR”指的是“Pull Request”,它是一种通知项目维护人员您已经完成了一些代码改动并希望将这些改动合并到主项目中的方式。简单来说,当您对一…

Eureka相关面试题及答案(2024)

1、什么是Eureka? Eureka是一个由Netflix开发的服务发现(Service Discovery)工具,它是Spring Cloud生态系统中的一个关键组件。服务发现是微服务架构中的一个重要概念,它允许服务实例在启动时注册自己,以便…

【第7期】前端如何实现菜单记忆和用户操作的状态记忆

本期简介 背景一:我们平时使用到管理功能时,会涉及到打开了某个一级菜单,访问了某个二级菜单,打开了相应的页面,那么我们希望一级菜单当前时展开的,二级菜单当前时有选中颜色与其他未访问的菜单进行区分的&…

【银行测试】超细支付功能测试+测试点总结分析(详全)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、支付功能怎么测…

华为鸿蒙应用--文件管理工具(鸿蒙工具)-ArkTs

0、代码 import fs from ohos.file.fs; import { Logger } from ./Logger; import { Constants } from ../constants/Constants; import { toast } from ./ToastUtils;export class FileUtils {/*** 获取目录下所有文件* param filesDir* returns*/static getFiles(filesDir: …

Vue3.0 所采用的 Composition Api 与 Vue2.x 使用的 Options Api 有什么不同

Vue3.0 所采用的 Composition Api 与 Vue2.x 使用的 Options Api 有什么不同? Composition API 解决了什么问题 Composition API 可以说是 Vue3 的最大特点,那么为什么要推出 Composition Api ,解决了什么问题? 通常使用 Vue2 开发的项目&#xff0…

Java 将base64编码字符串转换为图片工具类

前言 在一些前后端分离项目中,接口方需要前端把图片转换成base64编码字符串,和表单信息一起通过json接口提交。故在后端中,需要对前端传过来的bas64编码字符串转换成图片文件进行存储。 代码 import lombok.extern.slf4j.Slf4j;import jav…

PostgreSQL10数据库源码安装及plpython2u、uuid-ossp插件安装

PostgreSQL10数据库源码安装及plpython2u、uuid-ossp插件安装 1、环境2、安装包下载3、安装3.1 、解压3.2、配置3.3、编译安装3.4 、启动与关闭 4、安装 uuid-ossp 、plpython2u插件5、参考 1、环境 centos 7 、 postgresql 10.19 2、安装包下载 postgres 源码安装包 3、安…

【面试高频算法解析】算法练习1 二分查找

目录 前言算法解析练习题二分查找在排序数组中查找元素的第一个和最后一个位置搜索旋转排序数组 前言 本篇章开放目的是按算法类型学习算法,学习对应算法理论,并通过练习一些经典算法题深入理解这类算法,避免出现刷了很多算法题,…

golang学习专栏

GOLANG专栏 Golang基础教程 Golang基础教程 Golang练手算法 Golang练手算法 Golang设计模式 Golang设计模式 Golang数据结构和算法 Golang数据结构和算法 Golang并发编程 Golang并发编程 ORM框架Gorm Golang ORM框架gorm Golang源码分析 Golang源码分析 MySQL教程 MySQ…

11.Kubernetes Ingress NGINX Controller 部署

Ingresss是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTP。 Ingress 可以提供负载均衡、SSL 终结和基于名称的虚拟托管。 Ingress NGINX Controller 是kubernetes官方维护的 Ingress 控制器 至此、kubernetes必要的组件都已经安装完成,后面可以演示一…

Java 读取超大excel文件

注意&#xff1a;此参考解决方案只是针对xlsx格式的excel文件&#xff01; Maven <dependency><groupId>com.monitorjbl</groupId><artifactId>xlsx-streamer</artifactId><version>2.2.0</version> </dependency>读取方式1…