自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

m69zhuang的博客

My云计算技术博客

  • 博客(69)
  • 收藏
  • 关注

原创 K8S Pod调度控制器约束(pod调度约束、pod亲和性与反亲和性、pod污点与容忍、cordon与drain)

Kubernetes 是通过 List-Watch 的机制进行每个组件的协作,保持数据同步的,每个组件之间的设计实现了解耦。用户是通过 kubectl 根据配置文件,向 APIServer 发送命令,在 Node 节点上面建立 Pod 和 Container。APIServer 经过 API 调用,权限控制,调用资源和存储资源的过程,实际上还没有真正开始部署应用。这里需要 Controller Manager、Scheduler 和 kubelet 的协助才能完成整个部署过程。

2023-09-20 17:11:41 296 1

原创 K8S Pod 进阶(资源限制、pod容器探针、pod容器启动退出动作)

cpu、内存当定义 Pod 时可以选择性地为每个容器设定所需要的资源数量。最常见的可设定资源是 CPU 和内存大小,以及其他类型的资源。当为 Pod 中的容器指定了 request 资源时,调度器就使用该信息来决定将 Pod 调度到哪个节点上。当还为容器指定了 limit 资源时,kubelet 就会确保运行的容器不会使用超出所设的 limit 资源量。kubelet 还会为容器预留所设的 request 资源量, 供该容器使用。

2023-09-18 17:58:32 297 2

原创 K8S 部署 harbor 私有项目

secret是用于存储敏感信息的一种机制,如API密钥、密码、证书等。这些敏感信息可以被Pod容器挂载,以便在应用程序内部使用。创建 harbor 登录凭据资源清单,用于 K8S 访问 Harbor 私服拉取镜像所需要的密钥权限凭证 secret 资源。所有 node 节点都修改 docker 配置文件,加上私有仓库配置。在本地使用火狐浏览器访问:https://hub.m.com。在每个node节点上登录harbor 私有仓库。浏览器访问 harbor 服务器,创建项目。添加例外 -> 确认安全例外。

2023-09-16 16:35:22 270

原创 K8S Pod 基础概念

Pod 是 kubernetes 中最小的资源管理组件,Pod 也是最小化运行容器化应用的资源对象。一个 Pod 代表着集群中运行的一个进程。kubernetes 中其他大多数组件都是围绕着 Pod 来进行支撑和扩展 Pod 功能的,例如用于管理 Pod 运行的 StatefulSet 和 Deployment 等控制器对象,用于暴露 Pod 应用的 Service 和 Ingress 对象,为 Pod 提供存储的 PersistentVolume 存储资源对象等。pod是k8s最小的创建和运行单元。

2023-09-13 16:36:44 134

原创 K8S 金丝雀发布(Canary Release)- 声明式

金丝雀发布的声明式管理方法create/apply 两个的区别:当yaml配置文件发送改动后,使用以下两个更新的过程是一次性的,先delete删除原有的资源再通过yaml’文件再创建。创建资源没办法更新的,如果想更新,可以直接再执行kubectl apply -f 更新或先修改在删除,最后再创建更新。

2023-09-13 10:44:33 229

原创 K8S kubectl 命令详解

在每个Node上打开一个端口以供外部访问,Kubernetes将会在每个Node上打开一个端口并且每个Node的端口都是一样的,通过 NodeIp:NodePort 的方式Kubernetes集群外部的程序可以访问Service。为deployment的nginx创建service,并通过Service的80端口转发至容器的80端口上,Service的名称为nginx-service,类型为NodePort。Service 通过 Label Selector 实现的对一组的 Pod 的访问。

2023-09-13 10:42:34 34

原创 Kubeadm 部署 K8S(Kubenetes)

kubectl需经由API server认证及授权后方能执行相应的管理操作,kubeadm 部署的集群为其生成了一个具有管理员权限的认证配置文件 /etc/kubernetes/admin.conf,它可由 kubectl 通过默认的 “$HOME/.kube/config” 的路径进行加载。#日志使用json-file格式类型存储,大小为100M,保存在/var/log/containers目录下,方便ELK等日志系统收集和管理日志。所有节点,关闭防火墙规则,关闭selinux,关闭swap交换。

2023-09-13 10:40:49 116

原创 Kubernetes(K8S)概念

Kubernetes(通常称为K8s,K8s是将8个字母“ubernete”替换为“8”的缩写)是一个以容器为中心的基础架构,可以实现在物理集群或虚拟机集群上调度和运行容器,提供容器自动部署、扩展和管理的开源平台。满足了应用程序在生产环境中的一些通用需求:应用实例副本、水平自动扩展、命名与发现、负载均衡、滚动升级、资源监控等。Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化工作负载和服务,有助于声明式配置和自动化。它拥有庞大且快速发展的生态系统。

2023-09-13 10:38:11 29

原创 Ansible 自动化工具(剧本 playbook)

Playbooks 是 Ansible的配置、部署、编排语言,他们可以被描述为一个需要希望远程主机执行命令的方案,或者一组IT程序运行的命令集合Playbooks 与 ad-hoc相比,是一种完全不同的运用ansible的方式,是非常之强大的。简单来说,playbooks是一种简单的配置管理系统与多机器部署系统的基础,与现有的其他系统有不同之处,且非常适合于复杂应用的部署。playbook是ansible用于配置,部署,和管理被控节点的剧本。

2023-09-13 10:34:43 113

原创 Nginx 平滑升级

在关闭旧进程之前,我们需要确保新进程已经加载了更新后的配置文件。通过发送HUP(Hang Up)信号给旧进程,可以实现重新加载配置文件,使旧进程使用新的配置。这样可以确保在关闭旧进程之前,新进程已经开始使用新的配置,从而实现平滑过渡,避免在升级过程中出现服务中断或配置冲突的情况。重载旧的nginx工作进程是为了使其加载新的配置文件,以应用升级后的配置。在nginx的平滑升级过程中,我们先启动了新版本的nginx进程,并将请求逐渐迁移到新进程上,同时旧进程仍然在工作。测试新版本的nginx是否正常。

2023-09-13 10:31:33 109

原创 Ansible 自动化工具(配置、命令模块、主机清单)

Ansiblc 是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbct和Saltstack能实现的功能,Ansiblc基本上都可以实现。Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具。它用Python写成,类似于saltstack和Puppet,但是有一个不同和优点是我们不需要在节点中安装任何客户端。它使用SSH来和节点进行通信。

2023-09-13 10:28:23 105

原创 Docker 搭建本地 https 环境

来测试您的应用程序。请注意,由于使用的是自签名证书,您可能会收到浏览器的安全警告。首先,生成自签名的 SSL 证书和私钥。可以使用 OpenSSL 命令来生成。现在,您的本地 Docker 环境已经搭建好了 HTTPS。文件相同的目录中创建一个名为。这个命令将会生成一个私钥文件。

2023-09-09 20:34:50 1100

原创 Docker Harbor 私有仓库

Harbor 是一个由 VMware 公司开源的企业级 Docker Registry 项目,旨在帮助用户快速搭建一个企业级的 Docker Registry 服务。Harbor 基于 Docker 公司开源的 Registry,并提供了一些企业用户需求的功能,包括图形管理界面、基于角色的访问控制(Role Based Access Control)、AD/LDAP集成和审计日志等。此外,Harbor 还原生地支持中文,便于中文用户使用和管理。

2023-09-09 20:32:26 99

原创 搭建 Docker 本地私有仓库

以上命令会在后台启动一个基于最新版本的Docker Registry容器,并将主机的5000端口映射到容器的5000端口。**注意:**当你对源镜像进行命名后,命名后的镜像名称也视为一个标签,因为id号是相同的。有时候使用Docker Hub这样的公共仓库可能不方便,这种情况下用户可以使用registry创建一个本地仓库供私人使用,这点跟Maven的管理类似。Docker 官方提供了一个搭建私有仓库的镜像 registry (注册服务器),只需把镜像下载下来,运行容器并暴露5000端口,就可以使用了。

2023-09-09 20:28:01 61

原创 Docker Compose 搭建 LNMP 架构的 wordpress 网站

公司在实际的生产环境中,需要使用Docker 技术在一台主机上创建LNMP服务并运行Wordpress网站平台。然后对此服务使用docker-compose管理工作。

2023-09-09 20:26:51 224

原创 Docker Consul 注册与发现

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

2023-09-09 20:23:43 36

原创 Docker-Compose

Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)。Docker-Compose运行目录下的所有文件(docker-compose.yml,extends文件或环境变量文件等)组成一个工程,若无特殊指定工程名即为当前目录名。一个工程当中可包含多个服务,每个服务中定义了容器运行的镜像、参数、依赖。

2023-09-09 20:18:55 27

原创 docker 搭建 LNMP 架构的 Wordpress网站

公司在实际的生产环境中,需要使用 Docker 技术在一台主机上创建 LNMP 服务并运行 Wordpress 网站平台。然后对此服务进行相关的性能调优和管理工作。所有安装包下载:wget http://101.34.22.188/lnmp_wordpress/mysql-boost-5.7.20.tar.gzwget http://101.34.22.188/lnmp_wordpress/nginx-1.12.0.tar.gzwget http://101.34.22.188/lnmp_wordpr

2023-09-06 11:47:49 144 1

原创 Dockerfile 构建镜像

表示Dockerfile所在的上下文路径,默认情况下是当前目录。Dockerfile是一个文本文件,其中包含了构建镜像的指令和配置。:使container内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限。是一个由Systemd init系统提供的服务单元文件。它负责在系统启动过程中创建临时文件和目录。浏览器访问:http://129.168.23.35:12334。启动容器,并挂载宿主机目录挂载到容器中,和进行初始化。用方法一时需要run.sh脚本。

2023-09-06 11:46:10 69

原创 Docker 的数据管理

可将宿主机的目录挂载到数据卷上,对数据卷的修改操作立刻可见,并且更新数据不会影响镜像,从而实现数据在宿主机与容器之间的迁移。当我们创建一个容器,也就是将Docker镜像进行实例化,系统会在一层或是多层read-only的rootfs之上分配一层空的read-write的rootfs。一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录。(2)将修改后的容器提交为新的镜像,需要使用该容器的ID号创建新镜像。

2023-09-06 11:43:21 23

原创 Docker 基本管理

Docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机”Docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器

2023-09-06 11:41:42 35

原创 Zabbix 监控 Tomcat 服务

zabbix提供了一个java gateway的应用去监控jmx(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。zabbix通过部署jmx来监控tomcat。表示指定JMX远程连接的端口号为8888。表示禁用JMX远程连接的SSL安全传输。表示禁用JMX远程连接的身份验证。表示开启JMX远程管理功能。

2023-09-06 11:34:01 962

原创 Zabbix 分布式监控平台

作为一个运维,需要会使用监控系统查看服务器状态以及网站流量指标,利用监控系统的数据去了解上线发布的结果,和网站的健康状态。通过一个友好的界面进行浏览整个网站所有的服务器状态可以在Web 前端方便的查看监控数据可以回溯寻找事故发生时系统的问题和报警情况案例:自定义监控客户端服务器登录人数需求:限制登陆人数不超过3个,超过3个就发出警报信息who创建 zabbix 的监控项配置文件,用于自定义 key#可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中。

2023-09-06 10:42:12 57

原创 Zookeeper 集群 + Kafka 集群

Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目Kafka是一个分布式的基于发布/订阅模式的消息队列(MQ,Message Queue),主要应用于大数据实时处理领域。

2023-09-06 10:39:10 26

原创 ELK日志分析系统

ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。

2023-09-06 10:37:33 23

原创 GFS 分布式文件系统

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

2023-09-06 10:36:09 47

原创 rsync 远程同步

rsync(Remote Sync,远程同步)是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客户机的rsync同步操作的服务器称为同步源。在同步过程中,同步源负责提供文件的原始位置,发起端应对该位置具有读取权限。

2023-09-06 10:34:21 93

原创 NoSQL之Redis配置与优化

在redis中,实现高可用的技术主要包括持久化、主从复制、哨兵和cluster集群,下面分别说明他们的作用,以及解决了什么样的问题。持久化持久化是最简单的高可用方法(有时甚至不被归为高可用的手段),主要作用是数据备份,即将数据存储在磁盘,保证数据不会因为进程的退出而丢失。主从复制主从复制是高可用redis的基础,哨兵和集群都是在主从复制基础上实现的高可用。主从复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简单的故障修复。缺陷:故障恢复无法自动化;写操作无法负载均衡;存储能力受到单机的限制。哨兵。

2023-09-06 10:31:07 34

原创 MySQL MHA 高可用配置及故障切换

套优秀的MySQL高可用环境下故障切换和主从复制的软件MHA的出现就是解决MySQL单点的问题MySQL故障过程中,MHA能做到0-30秒内自动完成故障切换MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可用。

2023-09-06 10:25:36 51

原创 MySQL 主从复制与读写分离

在企业应用中,成熟的业务通常数据量都比较大单台MySQL在安全性、高可用性和高并发方面都无法满足实际的需求配置多台主从数据库服务器以实现读写分离读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。

2023-09-04 11:43:01 20

原创 MySQL 高级 SQL 语句

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

2023-09-04 11:41:35 25

原创 MySQL数据库备份与还原

只有那些在上次完全备份或者增呈备份后被修改的文件才会被备份以上次完整备份或上次增呈备份的时间为时间点,仅备份期间内的数据变化,因而备份的数据量小,占用空间小,备份速度快。每次对数据进行完整备份,即对整个数据库、数据库结构和文件结构的备份,保存的是备份完成时刻的数据库,是差异备份与增量备份的基础完全备份的备份与恢复操作都非常简单方便,但是数据存在大量的重复并且会占用大量的磁盘空间,备份的时间也很长。差异备份:每次差异备份,都会备份上一次完全备份之后的数据,可能会出现备份重复数据,导致占用额外的磁盘空间。

2023-09-04 11:34:57 95

原创 MySQL 数据库 存储引擎

MyISAM不支持事务,也不支持外键约束,只支持全文索引,数据文件和索引文件是分开保存的访问速度快,对事务完整性没有要求MyISAM适合查询、插入为主的应用MyISAM在磁盘上存储成三个文件,文件名和表名都相同,但是扩展名分别为:**.**frm文件存储表结构的定义数据文件的扩展名为.MYD (MYData)索引文件的扩展名是.MYI (MYIndex)表级锁定形式,数据在更新时锁定整个表数据库在读写过程中相互阻塞会在数据写入的过程阻塞用户数据的读取。

2023-09-01 17:35:27 36

原创 MySQL-事务

原子性(Atomicity)一致性(Consistency )隔离性(Isolation)持久性(Durability)这是可靠数据库所应具备的几个特性。

2023-09-01 17:31:43 43

原创 MySQL数据库-索引

加快查询速度,对字段进行排序。索引需要占用额外的磁盘空间。对于 MyISAM 引擎而言,索引文件和数据文件是分离的,索引文件用于保存数据记录的地址。而 InnoDB 引擎的表数据文件本身就是索引文件。(索引文件和数据文件是同一个)在插入和修改数据时要花费更多的时间、消耗更多性能,因为索引也要随之变动。

2023-09-01 17:27:09 44

原创 数据库基本操作

TRUNCATE清空表后,没有返回被删除的条目: TRUNCATE 工作时是将表结构按原样重新建立,因此在速度上TRUNCATE会比DELETE清空表快;TRUNCATE清空表后,没有返回被删除的条目:TRUNCATE 工作时是将表结构按原样重新建立,临时表创建成功之后,使用SHOWTABLES命令是看不到创建的临时表的,临时表会在连接退出。可做测试环境使用 比如删除大量数据的时候,可以创建临时表 做一个复杂删除。DELETE清空表后,返回的结果内有删除的记录条目;

2023-09-01 17:14:35 32

原创 MySQL 数据库初体验

数据库管理系统(DatabaseManagementSystem,DBMS)是实现对数据库资源有效组织、管理和存取的系统软件。它在操作系统的支持下,支持用户对数据库的各项操作

2023-09-01 17:12:41 23

原创 Haproxy 搭建 web 集群

是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中,同时可以保护你的web服务器不被暴露到网络上HAProxy实现了一种事件驱动,单一进程模型,此模型支持非常大的并发连接数。

2023-09-01 17:06:20 25

原创 企业集群的应用 LVS+Keepalived 集群

keepalived 可以通过读取自身的配置文件,实现通过更底层的接口直接管理 LVS 配置以及服务的启动、停止功能这会使 LVS应用跟更加简便。

2023-08-25 10:40:56 29

原创 企业集群的应用 - LVS-DR 集群

修改源 MAC 地址为 Director Server 的 MAC地址,修改目标 MAC 地址为 Real Server 的 MAC 地址,源 IP 地址与目标 IP 地址没有改变,然后将数据包发送给 Real Server。解决方案:系统不响应数据包的源IP地址(VIP)来作为本机进行ARP报文的源IP地址,而是用发送报文的物理网卡IP地址作为ARP请求报文的源IP地址,这样可以防止网关路由器接受到的源IP地址为VIP的请求报文后又更新ARP缓存表,导致外网再发送请求时数据包达到不了调度器。

2023-08-25 10:39:28 20

空空如也

空空如也

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

TA关注的人

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