关于 K8s 的资源分配与限制
相关概念引自kubesphere - requests与limits 简介为了实现 K8s 集群中资源的有效调度和充分利用, K8s 采用requests和limits两种限制类型来对资源进行容器粒度的分配。每一个容器都可以独立地设定相应的requests和limits。这 2 个参数是通过每个容器 containerSpec 的 resources 字段进行设置的。一般来说,在调度的时候requests比较重要,在运行时limits比较重要。 一些本地临时存储的配置 **注: ** 当容器申请内存超过limits时会被oomkill,并根据重启策略进行重启。而cpu超过limit则是限流,但不会被kill 由于CPU资源是可压缩的,进程无论如何也不可能突破上限,因此设置起来比较容易。对于Memory这种不可压缩资源来说,它的Limit设置就是一个问题了,如果设置得小了,当进程在业务繁忙期试图请求超过Limit限制的Memory时,此进程就会被Kubernetes杀掉 1234567891011121314# requests: 可以使用requests来设置各容器需...
记录 K8s Service 中的几种类型以及 port 区别
官方介绍k8s service 分为几种类型,分别为:ClusterIp (默认类型,每个Node分配一个集群内部的Ip,内部可以互相访问,外部无法访问集群内部) NodePort (基于ClusterIp,另外在每个Node上开放一个端口,可以从所有的位置访问这个地址) LoadBalance (基于NodePort,并且有云服务商在外部创建了一个负载均衡层,将流量导入到对应Port。要收费的,一般由云服务商提供,比如阿里云、AWS等均提供这种服务, k3s也默认提供了一个lbs - klipper-lb, 本地集群可以使用metallb, metallb解释文档) ExternalName (将外部地址经过集群内部的再一次封装,实际上就是集群DNS服务器将CNAME解析到了外部地址上,实现了集群内部访问) 例如,以下 Service 定义将 prod 名称空间中的 my-service 服务映射到 my.database.example.com: 12345678apiVersion: v1kind: Servicemetadata:name: my-service...
Lua 语法入门
Lua语法入门Nginx编程需要用到Lua语言,因此我们必须先入门Lua的基本语法。 初识LuaLua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。官网:https://www.lua.org/ Lua经常嵌入到C语言开发的程序中,例如游戏开发、游戏插件等。 Nginx本身也是C语言开发,因此也允许基于Lua做拓展。 HelloWorldCentOS7默认已经安装了Lua语言环境,所以可以直接运行Lua代码。 1)在Linux虚拟机的任意目录下,新建一个hello.lua文件 2)添加下面的内容 1print("Hello World!") 3)运行 变量和循环学习任何语言必然离不开变量,而变量的声明必须先知道数据的类型。 Lua的数据类型Lua中支持的常见数据类型包括: 另外,Lua提供了type()函数来判断一个变量的数据类型: 声明变量Lua声明变量的时候无需指定数据类型,而是用local来声明变量为局部变量: 1234567...
K8s 安装部署 MongoDB
MongoDB 高可用模式MongoDB 的部署方式有: Standalone 单节点部署此种部署方式是最简单易用并且常见的部署了,直接使用 mongod 启动一个进程。 Master-Slave 主从结构主从架构一般用于备份或者做读写分离。一般有一主一从和一主多从两种设计方式。 主(Master):可读可写,当数据有修改的时候,会将 oplog 同步到所有连接的 slave 上。 从(Slave):只读不可写,自动从 Master 同步数据。 对于 MongoDB 来说,并不推荐使用 Master-Slave 架构,因为 Master 宕机后不能自动恢复,推荐使用 Replica Set(除非 Replica 的节点数超过 50,才需要使用 Master-Slave 架构,正常情况下不可能用那么多节点)。 另外,Master-Slave 不支持链式结构,Slave 只能直接连接 Master。Redis 的 Master-Slave 支持链式结构,Slave 可以连接 Slave。 Replica Set 副本集MongoDB 的 Replica Set(副本集)主要有...
SpringBoot 集成 MongoDB
Spring Boot 集成 MongoDB1. 集成简介spring-data-mongodb 提供了 MongoTemplate 与 MongoRepository 两种方式访问 MongoDB。MongoRepository 操作简单,MongoTemplate 操作灵活,可以在项目中灵活结合使用。MongoRepository 的缺点是不够灵活,MongoTemplate 正好可以弥补不足。 2. 搭建开发环境2.1 初始化工程使用 Spring Initializr 快速初始化一个 Spring Boot 工程。 2.2 引入依赖修改 pom.xml: 12345678910111213141516171819202122232425262728293031323334<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-da...
MongoDB 备份与恢复
MongoDB 备份(mongodump)与恢复(mongorestore)MongoDB 数据备份在 MongoDB 中我们使用 mongodump 命令来备份 MongoDB 数据。该命令可以导出所有数据到指定目录中。 mongodump 命令可以通过参数指定导出的数据量及转存的服务器。 语法mongodump 命令脚本语法如下: 1mongodump -h dbhost -d dbname -o dbdirectory -h:MongoDB 所在服务器地址,例如:127.0.0.1,也可以指定端口号:127.0.0.1:27017 -d:需要备份的数据库实例,例如:test;不添加此参数则代表备份所有库 -o:备份的数据存放位置,例如:c:\data\dump。该目录需要提前建立,在备份完成后,系统自动在 dump 目录下建立以数据库名命名的子目录,该目录里面存放该数据库实例的备份数据 实例在本地使用 27017 启动 mongod 服务,打开命令提示符窗口,进入 MongoDB 安装目录的 bin 目录输入命令 mongodump: 1mongodump 执行以上...
MongoDB 知识小结
文档型存储的中间件 使用 B+ 树来索引,存储 BSON 数据(二进制格式的 JSON) 支持对文档数据的增删改查,即 CRUD 操作 使用了分片和复制技术,支持处理超大规模数据 基于 C++ 编写 分片模式除了 Hash 模式,还有 Range 模式 集群的配置方式需要手工配置 全文检索:MongoDB 仅支持有限的字段检索,且需人工索引 MongoDB 适用于数据大批量存储,以及需要被约束的主营业务数据
初识 MongoDB
MongoDB 简介NoSQL 简介NoSQL(NoSQL = Not Only SQL),意即反 SQL 运动,指的是非关系型数据库,是一项全新的数据库革命性运动,早期就有人提出,发展至 2009 年趋势越发高涨。NoSQL 的拥护者们提倡运用非关系型的数据存储,相对于目前铺天盖地的关系型数据库运用,这一概念无疑是一种全新思维的注入。 为什么使用 NoSQL: 对数据库高并发读写。 对海量数据的高效率存储和访问。 对数据库的高可扩展性和高可用性。 弱点: 数据库事务一致性需求 数据库的写实时性和读实时性需求 对复杂的 SQL 查询,特别是多表关联查询的需求 什么是 MongoDB?MongoDB 是由 C++ 语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数...
MySQL 函数和 SQL 记录(长期)
摘自小骨格子屋的 mysql中的instr()函数的用法 想要在字符串中查找某字符串可以使用instr()函数 instr()返回子字符串在字符串中首次出现的位置;如果没有找到,则返回0 用法:123str:从哪个字符串中搜索substr:要搜索的子字符串instr()函数不区分大小写 mysql instr()函数示例:1如图,在abcd字符串中查找是否含有字符串b,返回的字符串位置是2. 说明instr()函数返回的位置是从1开始的,如果找不到则返回0 查找字符串中包含“民”的记录 instr()函数与like运算符 在没有索引的情况下,instr()函数与like运算符的速度是一样的;在具有前缀搜索的LIKE运算符下,使用like运算符速度会更快一些 SUBSTRING(s,n,len) MySQL 中获取子串函数 SUBSTRING(s,n,len) 带有 len 参数的格式,从字符串 s 返回一个长度同 len 字符相同的子字符串,起始于位置 n。 也可能对 n 使用一个负值。假若这样,则子字符串的位置起始于字符串结尾的第 n 个字符,即倒数第 n 个字符,...
MySQL 中 EXPLAIN 结果的参数详解
MySQL中EXPLAIN结果的参数详解 explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。 EXPLAIN 列的解释: select_type SIMPLE:简单的 SELECT,不使用 UNION 或者子查询。 PRIMARY:最外层 SELECT。 UNION:第二层,在 SELECT 之后使用了 UNION。 DEPENDENT UNION:UNION 语句中的第二个 SELECT,依赖于外部子查询。 UNION RESULT:UNION 的结果。 SUBQUERY:子查询中的第一个 SELECT。 DEPENDENT SUBQUERY:子查询中的第一个 SELECT,取决于外面的查询。 DERIVED:导出表的 SELECT(FROM 子句的子查询) table显示这一行的数据是关于哪张表的。 type这是重要的列,显示连接使用了何种类型。从最好到最差的连接类型:const、eq_ref、ref、range、index 和 ALL。 Type:告诉我们对表使用的访问方式,主要包含如下几种类型: ...
