- 博客(85)
- 收藏
- 关注
原创 【云原生之K8s】 Pod控制器
Pod控制器,又称之为工作负载(workload),是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现故障时,会尝试进行重启,当根据重启策略无效,则会重新新建pod的资源。
2022-11-16 02:25:41 1761 1
原创 【云原生之K8s】 K8s之持久化存储PV、PVC
容器磁盘省的文件的生命周期是短暂的,这就使得在容器中运行重要应用时出现一些问题。首先,当容器崩溃时,kubelet会重启它,但是容器中的文件将丢失,容器以干净的状态(镜像最初的状态)重新启动。其次,在pod中同时运行多个容器时,这些容器之间通常需要共享文件。Kubernetes 中的Volume抽象就很好的解决了这些问题。Pod中的容器通过Pause容器共享Volume查看PV定义的方式。
2022-11-10 01:52:56 1600
原创 【云原生之K8s】 list-watch机制及调度约束
Kubernetes是通过List-Watch的机制进行每个组件的协作,保持数据同步的,每个组件之间的设计实现了解耦用户是通过kubectl根据配置文件,向APIServer发送命令,在Node节点上建立Pod和Container。APIServer经过API调用,权限控制,调用资源和存储资源的过程,实际上还没有真正开始部署应用。这里需要Controller Manager、Scheduler和kubelet的协助才能完成整个部署过程在Kubernetes种,所有部署的信息都会写到etcd中保存。
2022-11-09 00:55:43 943
原创 【云原生之K8s】 K8s排障思路
K8S是一个开源的,用于管理云平台中多个主机上的容器化应用,Kubernetes的目标是让部署容器化变得简单并且高效。
2022-11-08 23:43:31 832
原创 【云原生之K8s】 K8s资源控制及探针检查
当为Pod中地容器制定了request资源时,调度器就使用该信息来决定将Pod调度到哪个节点上。当还为容器指定了limit资源时,kubelet就会确保运行地容器不会使用超出所设地limit资源量。kubelet还会为容器预留所设地request资源量,供该容器使用 2. 如果Pod所在地节点具有足够地可用资源,容器可以使用超过所设置地request资源量。不过,容器不可以使用超出所设置的limit资源量 3. 如果给容器设置了内存的limit值,但未设置内存的request值,Kubernetes会自
2022-11-08 23:24:44 648
原创 【云原生之K8s】 Pod基础概念
**Pod是Kubernetes中自小的资源管理组件**,Pod也是最小化运行容器化应用的资源对象。**一个Pod代表着集群中运行的一个进程**。Kubernetes中其它大多数组件都是围绕着Pod来进行支撑和扩展Pod功能的,例如用于管理Po的运行的StatefulSet和Deployment等控制器对象,用于暴露Pod应用的Service和Ingress对象,为Pod提供存储的PersistentVolume存储资源对象等。
2022-11-08 18:39:32 735
原创 【云原生之K8s】 YAML文件详解
**kubernetes支持YAML和JSON文件格式管理资源对象**- **JSON格式**:主要用于api接口之间消息的传递- **YAML格式**用于配置和管理,YAML是一种简洁的非标记性语言,内容格式人性化,较易读## 1.YAML和JSON的主要区别1、YAML使用空格缩进,这是Python开发人员熟悉的领域2、JavaScript开发人员喜欢JSON,因为它是JavaScript的一个子集,可以直接在JavaScript中解释和编写,同时使用简写方式声明JSON,在使用没有空格的
2022-11-07 17:28:28 855
原创 【云原生之K8s】 K8s 亲和、反亲和、污点、容忍
1、调度器通过kubernetes的list-watch机制来发现集群中新创建且尚未被调度到Node尚的Pod。调度器会将发现的每一个未调度的Pod调度到一个合适的Node上来运行2、kube-scheduler是kubernetes集群的默认调度器,并且是集群控制面的一部分。如果你真的希望或者有这方面的需求,kube-scheduler在设计上是允许你自己写一个调度组件并替换kube-scheduler3、在做调度决定时需要考虑的因素包括:单独和整体的资源请求、硬件/软件/策略限制、亲和以及反亲和
2022-11-05 15:30:01 405
原创 【云原生之K8s】 K8s管理工具kubectl详解(二)
**Kubectl是管理k8s集群的命令行工具,通过生成的json格式传递给apiserver进行创建、查看、管理的操作**```bash//帮助信息[root@localhost bin]# kubectl --helpkubectl controls the Kubernetes cluster manager. Find more information at: https://kubernetes.io/docs/reference/kubectl/overview/
2022-11-05 01:13:35 1143 1
原创 【云原生之K8s】 K8s管理工具kubectl详解(一)
kubernetes 集群管理集群资源的唯一入口时通过相应的方法调用apiserver的接口- kubectl是官方的CLI命令行工具,用于余apiserver进行通信,将用户在命令行输入的命令,组织并转化为apiserver能识别的信息,进而实现管理K8s各种资源的一种有效途径- kubectl的命令大全:kubectl --help- K8s官方中文文档:http://docs.kubernetes.org.cn/683.html- 对资源的增、删、查操作比较容易,但对改的操作就不容易了
2022-11-04 19:17:09 248
原创 【云原生之K8s】 Kubeadm搭建K8s
部署Kubenetes Node,将节点加入Kubenetes集群中。部署Dashboard Web页面,可视化查看Kubenetes资源。节点显示NotReady状态,需要安装网络插件。在所有节点上安装Docker和kubeadm。部署Kubenetes Master。
2022-11-02 02:25:57 638 1
原创 【云原生之K8s】 Kubernetes核心组件
Kubernetes是为运行分布式集群而建立的,分布式系统的本质使得网络成为Kubernetes的核心和必要组成部分,了解Kubernetes网络模型可以使你能够正常运行、监控和排查应用程序故障无状态服务:就是没有特殊状态的服务,各个请求对于服务器来说统一无差别处理,请求自身携带了所有服务端所需要的所有参数(服务端自身不存储跟请求相关的任何数据,不包括数据库存储信息)。有状态服务:与之相反,有状态服务在服务端保留之前请求的信息,用以处理当前请求,比如session等简单版。
2022-11-01 18:52:42 425
原创 【云原生之K8s】 Kubernetes原理
Kubernetes是什么意思?为什么又称作K8S?Kubernetes的名字来自希腊语,意思是“舵手” 或 “领航员”。K8s是将8个字母“ubernete”替换为“8”的缩写Kubernetes是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。Kubernetes拥有一个庞大且快速增长的生态系统。Kubernetesd的服务、支持和工具广泛可用。
2022-10-29 15:34:50 312
原创 Promrtheus+Grafana+onealert--实现报警
Prometheus 报警需要使用 alertmanager 这个组件,而且报警规则需要手动编写(对运维来说不友好)。所以我这里选用 grafana+onealert 报警。注意:实现报警前把所有机器时间同步再检查一遍登陆http://www.onealert.com/→注册帐户→登入后台管理获取appkey现在可以去设置一个报警来测试了(这里以我们前面加的 cpu 负载监控来做测试)在被监控端下载一个stress测试工具开始测试设置4核cpu,此时cpu就会被冲高发来的报警如
2022-10-27 19:39:36 587
原创 Prometheus部署,操作及Grafana展示
* 通过浏览器访问 http:// 被监控端 IP:9100/metrics 就可以查看到 node_exporter 在被监控端收集的监控信息:**Grafana 是一个开源的度量分析和可视化工具,可以通过将采集的数据分析,查询,然后进行可视化的展示,并能实现报警。**回到 web 管理界面→点 Status→点 Targets→可以看到监控 mysql **
2022-10-27 18:48:31 1021
原创 【无监控,不运维】监控之Prometheus
Prometheus是一个开源的服务监控系统和时序数据库,其提供了通用的数据模型和快捷数据采集、存储和查询接口。它的核心组件Prometheus server会定期从静态配置的监控目标或者基于服务发现自动配置的目标中进行拉取数据,当新拉取到的数据大于配置的内存缓存区时,数据就会持久化到存储设备当中- 每个被监控的主机都可以通过专用的exporter程序提供输出监控数据的接口,它会在目标处收集监控数据,并暴露出一个HTTP接口供Prometheus server查询,Prometheus通过基于HTTP的p
2022-10-26 19:45:12 2394
原创 Docker--consul部署
Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现于配置与Docker等轻量级容器可无缝配合template 模板(更新)registrator(自动发现)后端每构建出一个容器,会向registrator进行注册,控制consul 完成更新操作,consul会触发consul template模板进行热更新核心机制:consul :自动发现、自动更新,为容器提供服务(添加、删除、生命周期)
2022-10-24 02:27:54 520
原创 Docker--harbor私有仓库部署与管理
之前我们搭建了本地私有仓库,但是本地仓库的管理和使用比较麻烦,个原生的私有仓库并不好用,所以我们采用harbor私有仓库,也叫私服,更加人性化Harbor是VMware公司开源的企业级Docker Registry项目,其目标是帮助用户迅速搭建一个企业级的Docker Registry服务。
2022-10-24 01:06:39 250
原创 Docker--compose
Dockerfile可以让用户管理一个单独的应用容器,而Compose则允许用户在一个模板(YAML)中定义一组相关联的应用容器(被称为一个project,即项目),例如一个Web服务器加上后端的数据库服务容器等。Docker-Compose项目是基于Python开发的Docker官方开源项目,负责实现对Docker容器集群的快速编排Docker-Compose将所管理的容器分为三层,分别是 工程(project),服务(service)以及容器(container)
2022-10-23 23:36:31 222
原创 Docker--cgroups资源监控
cgroups是一个非常强大的Linux内核工具,他不仅可以限制被namespace隔离起来的资源,还可以为资源设置权重,操控进程启停等等,所有cgroups(control groups)实现了对资源的配额和度量cgroups有四大功能Linux通过CFS(completely fair scheduler,完全公平调度器)来调度各个进程对cpu的使用查看周期限制和cpu配额限制进行cpu压力测试然后修改每个周期的使用cpu的时间,查看cpu使用率Docker通过–cpu-shares指定cpu
2022-10-23 20:21:08 745
原创 Docker--搭建本地私有仓库
Docker 官方提供了一个搭建私有仓库的镜像 registry ,运行该镜像的容器并且对外暴露5000端口就ok了。通常我们在docker拉取的镜像都是在docker hub或quay.io等公有仓库获取,那么在实际工作中,每个公司如果使用到docker,那么肯定是要搭建自己的私有仓库。那么接下来就通过docker提供的registry镜像来搭建我们自己的私有仓库。
2022-10-20 02:19:06 296
原创 Docker--Docker优化镜像大小
dockerfile优化主要可以从几点切入1、减少标准输出的内容,使用 yum clean all 清除缓存,删除上传的压缩包2、减少使用RUN命令,能合并尽量合并3、可以使用多阶段构建镜像(不过需要17版本之后才支持)
2022-10-20 01:43:19 387
原创 Docker--dockerfile构建镜像
Docker是一个文本文件,文件中包含了一条条的指令(instruction),用于构建镜像。每一条指定构建一层镜像,因此每一条指令的内容,就是描述该层镜像应当如何构建- dockerfile是自定义镜像的一套规则- docker由多条指定构成,docker的每一条指令都会对应于docker镜像中的每一层**dockerfile的原理就是镜像分层**- Dockerfile中的每一个指定都会创建一个新的镜像层(是一个临时的容器,执行完后将不再存在,再往后进行重新的创建与操作)- 镜像曾被缓存和复
2022-10-20 00:28:37 399
原创 Docker--数据卷和数据卷容器
通过数据卷和数据卷容器对容器内数据进行共享、备份和恢复等操作,通过这些机制,即使容器在运行中出现故障,用户也不必担心数据发生丢失,只需要快速地重新创建容器即可。在生成容器的同时,加上-v选项,指定把当前服务器的目录映射到容器中。命令说明docker run -v 数据卷创建数据卷docker run -v 宿主机目录:数据卷挂载宿主机目录docker run --volumes-from 数据卷容器挂载数据卷容器(挂载点路径不变)docker run --link 源容器名:别名容器互联。
2022-10-18 02:33:36 143
原创 Docker--网络模式
Docker使用Linux桥接,在宿主机许你一个docker容器网桥(docker0)- Docker启动一个容器时会根据docker网桥的网段分配给容器一个IP地址,称为Container-IP- 同时Docker网桥是每个容器的默认网关。因为在同一宿主机内的容器都接入同一个网桥,这样容器之间就能通过容器的Container-IP直接通信**Docker网桥是宿主机虚拟出来的**,并不是真正存在的网络设备,外部网络是无法寻址到的,这也意味着外部网络无法直接通过Container-IP访问到容器。如
2022-10-18 00:51:45 1037
原创 Docker--镜像、容器操作
镜像:类似于虚拟机镜像容器:类似linux系统环境,运行和隔离应用。容器从镜像启动的时候,docker会在镜像的最上一层创建一个可写层,镜像本身是只读的,保持不变仓库:每个仓库存放某一类镜像。
2022-10-17 19:07:15 801
原创 Docker--安装与优化
docker本质就是宿主机的一个进程,docker是通过namespace(命名空间)实现资源隔离,通过cgroup实现资源限制,通过写时复制技术(copy-on-write)实现了高效的文件操作(类似虚拟机的磁盘比如分配500g并不是实际占用物理磁盘500g)。通过镜像启动一个容器,一个镜像是一个可执行的包,其中包括运行应用程序所需要的所有内容包含代码,运行时间,库、环境变量、和配置文件。Docker的镜像是创建容器的基础,类似虚拟机的快照,可以理解为一个面向 Docker容器引擎的只读模板。
2022-10-16 21:46:39 162
原创 Docker--虚拟化及docker概念基本介绍
以Linux而言,Linux操作系统会有一个主进程PID=1派出其他进程来控制不同服务三个服务可能会相互影响使用者期望将这三个不同的服务,泡在不同的运行时环境中实现相互不影响,同时不会增加服务器成本延伸出→能否将这三种服务分别封装起来→KVM虚拟化技术,实现了一个操作系统模拟多个操作系统/不同的运行时环境随着技术发展→虚拟化技术开销较大(例如:只要运行一个py脚本,想要使用虚拟化方式实现,还需要安装一个操作系统,并不方便/合理)延伸出容器技术。
2022-10-16 21:05:22 643
原创 ELK日志分析(二)之ELK搭建部署
Logstash配置文件基本由三部分组成(根据需要选择使用)input:表示从数据源采集数据,常见的数据源如Kafka、日志文件等filter:表示数据处理层,包括对数据进行格式化处理、数据类型转换、数据过滤等,支持正则表达式output:表示将Logstash收集的数据经由过滤器处理之后输出到Elasticsearch。修改Logstash配置文件,让其收集系统日志/var/log/messages,并将其输出到Elasticsearch中。
2022-10-13 08:34:30 788
原创 ELK日志分析系统(一)之ELK原理
随着业务量的增长,每天业务服务器将会产生上亿条的日志,单个日志文件达几个GB,这时我们发现Linux自带工具,cat grep awk 分析越来越力不从心了,而且除了服务器日志,还有程序报错日志,分布在不同的服务器,查阅繁琐ELK是三个软件的统称,即Elasticsearch、logstash和kibana三个开源软件的缩写。这三款软件都是开源软件,通常配合使用,并且都会先后归于Elastic.co企业名下,故被简称为ELK协议线。
2022-10-12 18:43:40 2880
原创 GFS分布式文件系统
Gluster是一个开源的分布式文件系统- 由于存储服务器、客户端以及NFS/Samba存储网关(可选,根据需要选择使用)组成- 没有元数据服务器组件,这有助于提升整个系统的性能、可靠性和稳定性传统的分布式文件系统大多通过元服务器来存储元数据,元数据包含存储节点上的目录信息、目录结构等。这样的设计在浏览目录时效率高,但是也存在一些缺陷,例如单点故障。一旦元数据服务器出现故障,即使节点具备再高的冗余性,整个存储系统也将崩溃。而**GlusterFS分布式文件系统是基于无元服务器的设计,数据的横向扩展能
2022-10-11 19:27:32 346
原创 Rsync远程同步与inotify监控
Rsync(Remote Sync,远程同步)是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份,镜像服务器等应用Rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。并且可以不进行改变原有数据的属性信息,实现数据的备份迁移特性。在远程同步任务中,负责发起Rsync同步操作的客户机称为发起端,而负责响应来自客户机的rsync同步操作的服务器称为同步源。
2022-10-09 23:47:04 622
原创 Redis(主从复制、哨兵、集群)概述及部署
主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(Master),后者称为从节点(Slave);数据的复制时单向的,只能由主节点到从节点默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点
2022-10-06 00:32:53 521
原创 Redis不同数据类型下的基础查询命令
String是Redis最基本的类型,最大能存储512MB的数据,String类型是二进制安全的,即可以存储人了数据类型,比如数字、图片、序列化对象等列表的元素类型为String,按照插入顺序完成,在列表的头部和尾部添加元素Hash用于存储对象,可以采用这样的命名方式(hash格式):对象列别和ID构成键名,使用字段表示对象的属性,而字段值则存储属性值如:存储ID为2的汽车对象如果Hash中包含很少的字段,那么该类型的数据也将仅占用很少的磁盘空间。每一个Hash可以存储
2022-10-03 23:17:52 472
原创 Redis高可用与持久化
Redis 高可用含义:高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务。组成:实现高可用的技术主要包括持久化、主从复制、哨兵和集群。高可用中的持久化:RDB与AOF持久化方式:RDB:周期性的快照AOF:接近实时的持久化(以everysec方式)redis启用的优先级 AOF > RDB 同时仅当AOF功能关闭的情况下,redis才会再重新启动时使用RDB的方式进行恢复。
2022-10-03 03:18:00 487
原创 Redis介绍、安装、性能优化
Redis基于内存运行的数据库,缓存是其最常应用的场景之一Redis是非关系型数据库,是单进程模型1.Redis基于内存运行并支持持久化2.采用key-value(键值对)的存储形式redis是一个开源的、使用C语言编写的NoAQL数据库Redis基于内存运行并支持持久化,采用key-value(键值对)的存储形式,是目前分布式架构中不可或缺的一环Redis服务器程序是单进程模型,也就是在一台服务器上可以同时启动多个Redis进程,Redis的实际处理速度则是完全依靠于主进程的执行效率。
2022-10-01 16:39:55 188
原创 MySQL之MHA高可用及故障切换
MySQL服务器中,单台服务器无法承载服务量就配置多台MySQL服务器,多台MySQL服务器或者MySQL服务器无冗余的情况下,配置主从复制。MySQL服务器的读和写的压力不均衡可使用MySQL的读写分离,MySQL的读写分离中Master存在单点故障,就得用到MHAMHA(Master High Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件MHA的出现就是解决MySQL单点故障的问题MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。
2022-09-28 00:36:43 1531
原创 MySQL之主从复制及读写分离
在企业应用中,成熟的业务通常数据量都比较大。单台MySQL在安全性、高可用性和高并发方面都无法满足实际的需求。配置多台主从数据服务器以实现读写分离读写分离,基本的原理就是让主数据库处理事务性增、删、改操作,而从数据库处理select查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。
2022-09-26 20:04:17 1435
原创 MySQL之数据库函数及存储过程
存储过程与shell脚本里的函数类似,只不过存储过程,封装的是一组sql语句MySQL数据库存储过程是一组为了完成特定功能的sql语句集合存储过程在使用过程中是将常用或者复杂的工作预先使用的sql语句写好并用一个指定的名称存储起来,这个过程编译和优化后存储在数据库服务器中。当需要使用该存储过程时,只需要调用它即可存储过程在执行上比传统sql速度更快、执行效率更高。
2022-09-23 01:45:14 646
原创 MySQL之进阶查询语句
(增、删、改、查)对MySQL数据库的查询,除了基本的查询外,有时候需要对查询的结果集进行处理。例如:只取10条数据、对查询结果进行排序或分组等使用select语句可以将需要的数据从MySQL数据库中查询出来,如果对查询的结果进行排序,可以使用order by 语句来对语句实现排序,并最终将排序后的结果返回给用户。这个语句的排序不光可以针对某一个字段,也可以针对多个字段ASC/DESCORDER BY 语句也可以使用多个字段来进行排序,当排序的第一个字段相同的记录有多条的情况下,这些多条的记录再按
2022-09-19 20:18:23 2565 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人