自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(108)
  • 收藏
  • 关注

原创 k8s——Rancher开源平台

Rancher是一个功能强大的开源平台,旨在简化 Kubernetes 的部署、管理和操作。它为企业提供了一个统一的界面,用于管理跨多个环境(包括公有云、私有云和边缘计算环境)的 Kubernetes 集群。官网:https://docs.rancher.cn/

2024-06-12 22:46:52 911

原创 k8s——HPA自动伸缩机制

弹性伸缩是根据用户的业务需求和策略,自动“调整”其“弹性资源”的管理服务。通过弹性伸缩功能,用户可设置对定时、周期或监控策略,恰到好处地增加或减少“弹性资源”,并完成实例配置,保证业务平稳健康运行。在实际工作中,我们常常需要做一些扩容缩容操作,如:电商平台在618和双十一搞秒杀活动;由于资源紧张、工作负载降低等都需要对服务实例数进行扩缩容操作。

2024-06-12 20:47:04 1032

原创 K8s——Helm

在没使用 helm 之前,向 kubernetes 部署应用,我们要依次部署 deployment、svc 等,步骤较繁琐。况且随着很多项目微服务化,复杂的应用在容器中部署以及管理显得较为复杂,helm 通过打包的方式,支持发布的版本管理和控制, 很大程度上简化了 Kubernetes 应用的部署和管理。charts 除了可以在 repo 中下载,还可以自己自定义,创建完成后通过 helm 部署到 k8s。●NOTES.txt:chart 的“帮助文本”,在用户运行 helm install 时显示给用户。

2024-06-06 22:46:13 1109

原创 K8S——安全机制

默认情况下,每个 namespace 都会有一个 Service Account,如果 Pod 在创建时没有指定 Service Account,就会使用 Pod 所属的 namespace 的 Service Account。比如 kubectl 如果想向 API Server 请求资源,需要过三关,第一关是认证(Authentication),第二关是鉴权(Authorization), 第三关是准入控制(Admission Control),只有通过这三关才可能会被 K8S 创建资源。

2024-06-05 17:18:35 758

原创 K8s对外服务之——ingress

这时,ingress-controller所在的node机器就很类似传统架构的边缘节点,比如机房入口的nginx服务器。ingress-controller并不是k8s自带的组件,实际上ingress-controller只是一个统称,用户可以选择不同的ingress-controller实现,目前,由k8s维护的ingress-controller只有google云的GCE与ingress-nginx两个,其他还有很多第三方维护的ingress-controller,具体可以参考官方文档。

2024-06-04 14:01:01 798

原创 Kubernetes——配置资源管理

Secret 是用来保存密码、token、密钥等敏感数据的 k8s 资源,这类数据虽然也可以存放在 Pod 或者镜像中,但是放在 Secret 中是为了更方便的控制如何使用数据,并减少暴露的风险。ConfigMap是Kubernetes中用于存储配置信息的资源,它允许你将配置数据以键值对的形式存储,并且可以被Pods以多种方式使用。与Secret不同,ConfigMap通常用于存储不需要加密的非敏感配置信息,例如应用的配置参数、数据库连接信息等。

2024-06-03 18:32:21 743

原创 Pod控制器

FIELDS:FIELDS:podManagementPolicy <string> #Pod管理策略replicas <integer> #副本数量revisionHistoryLimit <integer> #历史版本限制selector <Object> -required- #选择器,必选项serviceName <string> -required- #服务名称,必选项template <Object> -required- #模板,必选项。

2024-05-30 21:46:12 628

原创 存储卷、PV与PVC

这里定义5个PV,并且定义挂载的路径以及访问模式,还有PV划分的大小。

2024-05-30 09:17:16 800

原创 K8s集群调度续章

设置了污点的 Node 将根据 taint 的 effect:NoSchedule、PreferNoSchedule、NoExecute 和 Pod 之间产生互斥的关系,Pod 将在一定程度上不会被调度到 Node 上。但我们可以在 Pod 上设置容忍(Tolerations),意思是设置了容忍的 Pod 将可以容忍污点的存在,可以被调度到存在污点的 Node 上。

2024-05-28 21:24:30 1034

原创 K8s的集群调度

Scheduler 是 kubernetes 的调度器,主要的任务是把定义的 pod 分配到集群的节点上。其主要考虑的问题如下:①公平:如何保证每个节点都能被分配资源②资源高效利用:集群所有资源最大化被使用③效率:调度的性能要好,能够尽快地对大批量的 pod 完成调度工作④灵活:允许用户根据自己的需求控制调度的逻辑。

2024-05-27 22:07:57 1154 2

原创 Pod进阶——资源限制以及探针检查

当定义Pod时可以选择性的为每个容器设定所需要的资源数量。最常见的可设定资源是CPU和内存大小,以及其他类型的资源。健康检查:又称为探针(Probe),探针是由kubelet对容器执行的定期诊断。①livenessProbe(存活探针)∶判断容器是否正常运行,如果失败则杀掉容器(不是pod),再根据重启策略是否重启容器②readinessProbe(就绪探针)∶判断容器是否能够进入ready状态,探针失败则进入noready状态,并从service的endpoints中剔除此容器。

2024-05-24 21:52:14 1112

原创 Pod详解

每个pod都有一个特殊的被称为基础容器的pause容器,pause容器对应的镜像属于k8s平台的一部分,除了pause容器,每个pod还包含一个或者多个紧密相关的用户应用容器。①创建过程中的第一次停滞,是init-myservoce容器启动后,未能发现myservice域名,无法得到解析因此陷入循环。②第二次停滞,是init-mydb容器启动后,未能发现mydb域名,无法得到解析,因此再次陷入循环之中③在上述两个容器成功并退出之后,myapp-pod才开始创建,否则pod无法创建。

2024-05-23 21:45:32 978

原创 金丝雀发布与蓝绿发布

①比如等待第一批新的Pod资源创建完成后立即暂停更新过程,此时,仅存在一部分新版本的应用,主版本还是旧的版本:②然后,在筛选一小部分的用户请求路由到新版本的Pod应用,继续观察能否稳定的按期望的方式运行③确定没问题之后再继续完成余下的Pod资源滚动更新,否则立即回滚更新操作。这就是所谓的金丝雀发布就是按照一部分一部分的滚动更新;创建一定比例的pod,先创建再删除旧的pod。

2024-05-21 18:26:39 253

原创 K8s的常用命令以及yaml文件的创建

YAML仍然是一种标记语言,主要强调这种语言是以数据为中心,而不是以标记为中心,而像XML语言就使用了大量的标记。YAML可读性高,易于理解,用来表达数据序列化的格式。它的语法和其他高级语言类型,还可以简单表达属组,散列表,标量等数据形态。它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构,各种配置文件。yaml配置文件的后缀为.yml如果是业务场景,一般首选使用 apps/v1(apps/v1 从 v1.9 版本开始提供 API)。

2024-05-21 17:25:00 1546

原创 Kubernetes常用命令

②kubectl 是官方的CLI命令行工具,用于与 apiserver 进行通信,将用户在命令行输入的命令,组织并转化为 apiserver 能识别的信息,进而实现管理 k8s 各种资源的一种有效途径。为deployment(无部署状态)的nginx创建service,并通过service的80端口转发至容器的80端口上,service的名称为nginx-service,类型为NodePort。获取资源的相关信息,-n 指定命令空间,-o 指定输出格式。创建--发布--更新--回滚--删除。

2024-05-17 17:39:34 941

原创 K8s之ku-be admin部署安装

Harbor节点(hub.rmh.com)192.168.170.115 docker、docker-compose、harbor-offline-v1.2.2。④部署kubernets Node,将节点加入Kubernetes集群中。⑤部署Dashboard Web页面,可视化查看Kubernetes资源。在node节点执行kubeadm.join命令加入集群。②部署kubernetes Master。⑥部署Harbor私有仓库,存放镜像资源。存放ca等证书和密码的目录。有两处host需要修改。

2024-05-16 18:27:22 933

原创 K8s:二进制安装k8s(单台master)

6.4上传kubeconfig.sh文件到/opt/k8s/kubeconfig目录中,生成kubelet初次加入集群引导kubeconfig文件和kube-proxy.kubeconfig文件。注意:进入卡住状态等待其他节点加入,这里需要三台etcd服务同时启动,如果只启动其中一台后,服务会卡在那里,直到集群中所有etcd节点都已启动,可忽略这个情况。4.2生成etcd证书,上传etcd-cert.sh 和 etcd.sh 到 /opt/k8s/ 目录中。

2024-05-13 22:55:55 1073 2

原创 Kubernetes:K8s组件

每个 Service 都有一个固定的虚拟 ip(这个 ip 也被称为 Cluster IP),自动并且动态地绑定后端的 Pod,所有的网络请求直接访问 Service 的虚拟 ip,Service 会自动向后端做转发。在k8s的集群里,虽然每个pod会被分配一个单独的IP地址,但由于pod是有生命周期的(他们可以被创建,而且销毁之后不会再启动),随时可能会因为业务的变更,导致这个IP地址会随着pod的销毁而消失。pod是k8s创建或部署的最小/最简单的基本单位,一个pod代表集群上正在运行的一个进程。

2024-05-10 17:07:53 740

原创 Kubernetes(K8s)的基础概念

kubernetes是一个可移植,可扩展的开源平台,用于管理容器化工作负载和服务,有助于声明式配置和自动化。它拥有庞大且快速发展的生态系统。kubernetes服务,支持和工具随处可见。作用:用于自动部署,扩展和管理“容器化应用程序”的开源系统。可以理解成k8s是负责自动化运维管理多个容器化程序(比如docker)的集群,是一个生态及其丰富的容器编排框架工具。

2024-05-09 22:08:12 954 1

原创 ansible—playbook的template、tags、roles模块

ansible的template模块,可以将带有参数的配置文件传递到目标地址,可以对文件进行属组属主的修改以及备份。template是一种创建配置文件的工具,在配置文件中,会有一些数据等会动态的变化,如IP地址,主机名,端口,用户,页面路径等。template模块就是将变量和动态文件结合起来,最终生成一个配置文件(你需要动态改变)jinja是基于python的模板引擎。

2024-05-08 18:45:51 1076

原创 Docker --harbor私有仓库的概述与部署

Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。Harbor以 Docker 公司开源的 Registry 为基础,提供了图形管理 UI 、基于角色的访问控制(Role Based AccessControl) 、AD/LDAP 集成、以及审计日志(Auditlogging) 等企业用户需求的功能,同时还原生支持中文。

2024-05-05 20:59:53 1025

原创 Docker-consul

服务注册与发现是微服务架构中不可或缺的重要组件,起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问。知道后来出现了多个节点的分布式架构,起初的解决手段是在服务前端负载均衡,这样前端必须要知道所有后端服务的网络位置,并配置在配置文件中。这里就会出现几个问题:①如果需要调用后端服务A-N,就需要配置N个服务的网络位置,配置会很麻烦②后端服务的网络位置变化,都需要该百年每个调用者的配置。既然有这些问题,那么服务注册与发现就是解决这些问题的。

2024-04-30 16:12:11 1591

原创 Docker-compose

Dockerfile模板文件可以定义一个单独的应用容器,如果需要定义多个容器就需要服务编排。Dockerfile可以让用户管理一个单独的应用容器;而compose则允许用户在一个模板(YAML格式)中定义一组相关联的应用容器(被称为一个project,即项目)。Docker-compose负责实现对Docker容器集群进行快速编排Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(cotainer)。

2024-04-29 17:26:04 659

原创 Docker搭建LNMP+Wordpress的实验

在生产环境中使用docker在一台主机上创建LNMP服务并且运行Wordpress网站平台。然后对此服务进行相关的性能调优和管理工作。查看。

2024-04-28 22:31:58 1053

原创 Docker的数据管理

数据卷是一个供容器使用的特殊目录,位于容器中。可将宿主机的目录挂载到数据卷上,对数据卷的修改操作立刻可见,并且更新数据不会影响镜像,从而实现数据在宿主机与容器之间的迁移。数据卷的使用类似于Linux下对目录进行的mount操作。数据卷容器是一个普通的容器,专门提供数据卷给其他容器挂载使用。

2024-04-27 00:43:39 616

原创 Docker的资源控制管理——Cgroups

cgroup是一个非常强大的linux内核工具,它不仅可以限制被namespace隔离起来的资源,还可以为资源设置权重,计算使用量,操控进程启停等等。所以cgroup实现了对资源的配额和度量。

2024-04-24 22:11:41 1220 1

原创 Docker的网络模式

先自定义网络,再使用指定IP运行docker。

2024-04-24 18:17:11 3040 1

原创 Docker镜像与容器的命令与基本操作

格式:docker cp 容器id:文件路径 目标目录#当前容器有一个rmh.txt文件 复制到宿主机data文件夹里。

2024-04-23 18:32:55 1532

原创 Docker基础+虚拟化概念

虚拟化就是将应用程序和系统内核资源进行解耦,以操作系统级别进行隔离,目的是提高资源利用率。①Docker 是一个开源的应用容器引擎,基于 go 语言开发并遵循了 apache2.0 协议开源。②Docker 是在 Linux 容器里运行的开源工具,是一种轻量级的虚拟机。③Docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器。④目前 Docker 只能支持 64 位系统。

2024-04-22 21:35:26 1207

原创 Zabbix

Zabbix是一款开源免费的,自动化发现服务与网络设备的分布式监控,可以监视应用层服务并以web前端页面集中管理并展示。#切换目录#修改#重启服务SNMP是简单的网络管理协议,它不是一个软件,而是用于网络管理的一套规则。利用SNMP,一个管理工作站可以远程管理所有支持这种协议的网络设备,包括监视网络状态、修改网络设备配置、接收网络事件警告等。

2024-04-16 21:20:24 1246

原创 Zookeeper与Kafka消息队列

是一个开源分布式的服务,为分布式框架提供协调服务的apache服务项目。kafka:是一个分布式的,支持分区的,多副本基于发布/订阅模式的消息队列(MQ message quene)主要用于日志和大数据的实时处理。①broker:一台kafka服务器就是一个broker。一个集群由多个broker组成,一个broker可以容纳多个topic。②Produer:生产者。也就是写入消息的一方,将消息写入broker中③Cinsumer:消费者。也就是读取消息的一方,从broker中读取消息。

2024-04-12 17:44:45 1277

原创 ELK日志分析系统概述及部署

①ElasticSearch是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。②Elasticsearch 是用 Java 开发的,可通过 RESTful Web 接口,让用户可以通过浏览器与 Elasticsearch 通信。③Elasticsearch是一个实时的、分布式的可扩展的搜索引擎,允许进行全文、结构化搜索,它通常用于索引和搜索大容量的日志数据,也可用于搜索许多不同类型的文档。就是提供了一个分布式多用户能力的全文搜索引擎。

2024-04-11 18:44:20 1140

原创 GFS分布式文件系统概述以及集群部署

①GlusterFS是一个开源的分布式文件系统。②由存储服务器、客户端以及NFS/Samba存储网关(可选,根据需要选择使用)组成。③没有元数据服务器组件,这有助于提升整个系统的性能、可靠性和稳定性。传统的分布式文件系统大多通过元服务器来存储元数据,元数据包含存储节点上的目录信息、目录结构等。这样的设计在浏览目录时效率高,但是也存在一些缺陷,例如单点故障。一旦元数据服务器出现故障,即使节点具备再高的冗余性,整个存储系统也将崩溃。

2024-04-09 16:38:38 1014

原创 rsync下行同步

它能本能复制,远程复制,或者远程守护进程方式复制,它提供了大量的参数来控制其行为的各个方面,并且允许非常灵活的方式来实现文件的传输复制。可以保留原有的权限(permission,mode),owner,group,时间(修改时间,modify time),软硬链接,文件acl,文件属性(attributes)信息等。在传输数据之前通过一些算法通过你有的数据和我有的数据进行比对,把不一样的数据通过网络传输,增量复制,效率高。原有的数据全部传送,把原来的文件和新的文件一起统一传送,全量复制,效率低。

2024-04-07 17:21:03 969

原创 Redis的高可用(主从复制、哨兵模式、集群)的概述及部署

哨兵的启动依赖于主从模式,所以须把主从模式安装好的情况下再去做哨兵模式,所有节点上都需要部署哨兵模式,哨兵模式会监控所有的 Redis 工作节点是否正常,当 Master 出现问题的时候,因为其他节点与主节点失去联系,因此会投票,投票过半就认为这个 Master 的确出现问题,然后会通知哨兵间,然后从 Slaves 中选取一个作为新的 Master。当主节点不能正常工作时,哨兵会自动开始故障转移操作,它会将失效主节点的其中一个节点升级为新的主节点,并让其他从节点成为新的主节点。

2024-04-03 16:06:12 1437

原创 Redis的简介,常用命令、安装以及优化

Redis是一个开源的,使用C语言编写的Nosql数据库Redis基于内存允许并支持持久化,采用key-value(键值对)的存储形式,是目前分布式架构中不可或缺的一环。Redis服务器程序是单进程模型,也就是在一台服务器上可以同时启动多个Redis进程,Redis的实际处理速度则是完全依靠于主进程的执行效率。若在服务器上只运行一个Redis进程,当多个客户端同时访问时,服务器的处理能力是会有一定程度的下降;

2024-04-02 17:40:25 867

原创 MySQL的优化以及排错

优化总原则:给MySQL的资源太少,则MySQL施展不开:给MySQL的资源太多,可能会拖累整个os。横向拆解:主从同步,负载均衡,高可用性集群,当单个MySQL数据库无法满足日益增加的需求时,可以考虑在数据库这个逻辑层面增加多台服务器,以达到稳定,高效的效果。②问题分析:服务器非正常关机,数据库所在空间已满,或一些其它未知的原因,对数据库表造成了损坏。不过,问题是查询缓存在默认情况下是禁用的。磁盘分区:将数据库目录放在一个分区或一个磁盘上的物理分区,存储数据的硬盘或分区和系统所在的硬盘分开。

2024-04-01 15:34:39 1026

原创 Mysql的MHA高可用集群部署及故障切换

use strict;my (#############################添加内容部分##########################################指定vip的地址#指定vip的广播地址#指定vip绑定的网卡#指定vip绑定的虚拟网卡序列号#代表此变量值为ifconfig ens33:1 192.168.223.200#代表此变量值为ifconfig ens33:1 192.168.223.200 down#指定退出状态码为0。

2024-03-29 17:31:41 755

原创 Mysql主从复制和读写分离

①首先client端(tomcat)将数据写入到master节点的数据库中,master节点会通知存储引擎提交事务,同时会将数据以(基于行、基于sql、基于混合)的方式保存在二进制日志中②SLAVE节点会开启I/O线程,用于监听master的二进制日志的更新,一旦发生更新内容,则向master的dump线程发出同步请求③master的dump线程在接收到SLAVE的I/O请求后,会读取二进制文件中更新的数据,并发送给SLAVE的I/O线程。

2024-03-28 19:28:40 785

原创 Mysql的连接与存储

MysQL数据库存储过程是一组为了完成特定功能的SQL语句的集合。存储过程这个功能是从5.0版本才开始支持的,它可以加快数据库的处理速度,增强数据库在实际应用中的灵活性。存储过程在使用过程中是将常用或者复杂的工作预先使用SQL语句写好并用一个指定的名称存储起来,这个过程经编译和优化后存储在数据库服务器中。当需要使用该存储过程时,只需要调用它即可。操作数据库的传统SQL语句在执行时需要先编译,然后再去执行,跟存储过程一对比,明显存储过程在执行上速度更快,效率更高。

2024-03-27 18:33:41 682

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除