自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Tekton — 通过tekton-operator部署tekton组件

Tektoncd Operator 作为一个 Kubernetes 的扩展,可以方便快捷地在 Kubernetes 集群上安装、升级和管理 Tekton Pipelines、Dashboard、Triggers 等组件。

2023-11-21 10:17:04 445

转载 Raft 算法详解

在分布式系统中,一致性算法至关重要。在所有一致性算法中,Paxos 最负盛名,它由莱斯利·兰伯特(Leslie Lamport)于 1990 年提出,是一种基于消息传递的一致性算法,被认为是类似算法中最有效的。Paxos 算法虽然很有效,但复杂的原理使它实现起来非常困难,截止目前,实现 Paxos 算法的开源软件很少,比较出名的有 Chubby、LibPaxos。

2023-08-23 17:03:38 556

原创 MySQL — 索引

索引是对数据库表中一列或多列的值进行排序的一种结构。MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。

2023-08-15 17:41:35 385

原创 MySQL — MVCC

每次更新后,都会将旧值放到一条 undo log 中,就算是该记录的一个旧版本,随着更新次数的增多,所有的版本都会被roll_ptr 属性连接成一个链表,我们把这个链表称之为版本链,版本链的头节点就是当前记录最新的值。当我们的隔离级别为 RR 或 RC 时:每开启一个事务,系统会给该事务会分配一个事务 Id,在该事务执行第一个 select 语句的时候,会生成一个当前时间点的事务快照 ReadView。undo log 主要用于记录数据被修改之前的日志,在表信息修改之前先会把数据拷贝到undo log里。

2023-08-09 16:53:20 526

原创 MySQL — InnoDB 锁

间隙锁是在索引记录之间的间隙上的锁,或者在第一个索引记录之前或最后一个索引记录之后的间隙上的锁。最简单的情况,如果一个事务正在往表中插入记录,所有其他事务的插入必须等待,以便第一个事务插入的行,是连续的主键值。分别尝试插入值为5和6的事务,在获得插入行上的排他锁之前,每个事务都用插入意图锁锁住4和7之间的间隙,但不会相互阻塞,因为行不冲突。:允许获得排他锁的事务更新数据,阻止其他事务取得相同数据集的共享读锁和排他写锁。next-key锁是索引记录上的记录锁和索引记录之前的间隙上的间隙锁的组合。

2023-08-07 13:04:34 441

原创 MySQL — InnoDB事务

数据库中的事务是指对数据库执行一批操作,在同一个事务当中,这些操作最终要么全部执行成功,要么全部失败,不会存在部分成功的情况。事务是一个原子操作。是一个最小执行单元。可以甶一个或多个SQL语句组成在同一个事务当中,所有的SQL语句都成功执行时,整 个事务成功,有一个SQL语句执行失败,整个事务都执行失败。

2023-08-06 22:02:32 582

原创 MySQL — InnoDB介绍

InnoDB是一款兼顾高可靠性和高性能的通用存储引擎。也是默认的MySQL存储引擎。

2023-08-05 14:08:22 846

原创 MySQL — 存储引擎

存储引擎是数据库的核心,对于mysql来说,存储引擎是以插件的形式运行的。虽然mysql支持种类繁多的存储引擎,但是常用的就那么几种。这篇文章主要是对其进行简单的介绍。

2023-08-05 12:23:34 434

转载 Ceph集群中的逻辑结构 — Object、Pool、PG

Ceph中的逻辑对象有Object、Pool、PG,本文简单介绍相关的概念以及之间的关系,PG状态变化过程等。

2022-11-16 21:11:03 2640 1

原创 K3s离线部署

K3s离线部署

2022-11-16 00:45:46 1224

原创 CentOS环境下安装Python3

python3安装

2022-11-14 20:10:57 1246

原创 Ceph — 使用cephadm搭建Ceph集群

本文将通过cephadm工具来学习如何简单地搭建一个octopus版集群。

2022-11-13 22:12:18 1717

原创 Ceph — 架构

Ceph存储集群从Ceph客户端接收数据——无论是通过Ceph块设备、Ceph对象存储、Ceph文件系统还是使用librados创建的自定义实现——这些数据被存储为RADOS对象。对于较旧的Filestore后端,每个RADOS对象都作为一个单独的文件存储在传统的文件系统(通常是XFS)上。使用新的和默认的BlueStore后端,对象以一种类似于单片数据库的方式存储。Ceph Monitors维护集群映射的主副本,包括集群成员、状态、更改和Ceph存储集群的整体运行状况。所有故障的检测和自动恢复。

2022-11-10 00:12:29 2496

原创 Ceph — 简介

Ceph是一个统一的分布式存储系统,最早起源于Sage就读博士期间的工作(最早的成果于2004年发表),随后贡献给开源社区。其设计初衷是提供较好的性能、可靠性和可扩展性。在经过多年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat 及 OpenStack 都可与Ceph整合以支持虚拟机镜像的后端存储。

2022-11-08 23:51:41 1209

原创 Go WebAssembly 入门

WebAssembly 可以将其他语言C/Go/Rust等语言编译成wasm可执行二进制文件,然后通过浏览器来执行wasm。

2022-11-07 23:30:28 1826

原创 WebAssembly — 概览

WebAssembly 是现代浏览器所能执行的一种新类型的代码,目标是为了在网络上获得更好的性能。同时,它还是一种低层的二进制格式代码,体积小,因此加载和执行速度快。你不需要直接编写 WebAssembly 代码,而是从其他高级语言编译而来。WASM 被设计为其他语言的编译目标,允许服务器端代码(如C或C++代码)被编译成WASM并在浏览器中执行。

2022-10-27 20:07:15 1230

原创 区块链 — 默克尔树

默克尔树(又叫哈希树)是一种典型的二叉树结构,有一个根节点、一组中间节点和一组叶节点组成。默克尔树最早由 Merkle Ralf 在 1980 年提出,曾广泛用于文件系统和P2P系统中。比如 git、区块链、IPFS 等。

2022-10-22 07:45:29 3153

原创 DNS 记录类型

DNS是互联网中一项重要的基础服务,它将简单易记的域名转换成可由计算机识别的IP地址,以便客户端对服务器的正常访问。而由DNS构建起的域名与IP地址之间的对应关系,称之为“DNS记录”(record)。

2022-10-11 23:25:58 1401

原创 Cinder — back-end storage pools

Cinder 自身不提供存储技术,而是作为一个抽象的中间管理层,北向提供稳定而统一的 Block Storage 资源模型、南向通过 Plug-in 和 Drivers 模型对接多样化的后端存储设备(e.g. LVM、CEPH、NetApp、Datastore etc.)。

2022-10-11 22:45:22 1637

转载 面向未来的 IT 基础设施管理架构——融合云(Unified IaaS)

云计算技术自2006年AWS推出第一个公有云服务S3开始,发展到2019年的今天,一些格局和趋势开始逐步清晰:首先,私有云依然是大中型企业以及一些细分行业,例如政务、金融、医疗、教育、能源和制造等的首选IT基础设施。随着各大公有云厂商陆续推出其公有云在政企客户私有化部署的扩展方案,例如AWS Outposts、Azure Stack,Google Anthos,以及国内阿里云、腾讯云等的私有云/专有云部署方案,“私有云是否会随着公有云的发展逐步消亡”的命题已被公有云厂商自己否定。事实证明,私有云将长期持续存

2022-08-09 22:35:57 1892 2

原创 PostgreSQL — 安装及常用命令

PostgreSQL的Docker安装及常用的命令

2022-08-08 21:23:25 1055

原创 PostgreSQL 介绍

PostgreSQL是一个强大的开源对象关系数据库系统,它使用并扩展了SQL语言,并结合了许多特性来安全存储和扩展最复杂的数据工作负载。

2022-08-08 20:38:47 1652

原创 Helm部署ES及Kibana(默认开启SSL)

helm部署ES及Kibana,默认开启ssl

2022-08-05 17:22:24 2594

转载 如何高效掌控K8s资源变化?K8s Informer实现机制浅析

进入K8s的世界,会发现有很多的Controller,它们都是为了完成某类资源(如pod是通过DeploymentController,ReplicaSetController进行管理)的调谐,目标是保持用户期望的状态。K8s中有几十种类型的资源,如何能让K8s内部以及外部用户方便、高效的获取某类资源的变化,就是本文Informer要实现的。...

2022-07-20 16:12:39 974

原创 Kubernetes — client-go组件

client-go组件介绍

2022-07-14 21:09:10 881

原创 Kubernetes 组件介绍

Kubernetes组件介绍

2022-07-10 19:18:54 862

原创 Golang — net/http简介

通过简单的示例介绍net/http包的相关使用

2022-07-10 10:54:40 2358

原创 Helm — Chart介绍

Charts描述的是一组k8s资源相关的文件集合,用户可以通过简单地修改一些参数使得helm部署的应用符合我们的要求。 目录包括了模板文件。安装应用时,helm会将用户设置的参数值通过模板引擎渲染到模板文件里,然后再将渲染后的结果发送给kubernetes。 这个文件包含了chart的 默认值 。这些值会在用户执行 或 时被相应的命令行参数覆盖。 文件包含了该chart的描述。你可以从模板中访问它。目录 可以 包含其他的chart。Hook 机制Helm 提供了一个 hook 机制允许ch

2022-07-06 21:33:18 3071

原创 Helm 介绍

Helm是Kubernetes的包管理工具,类似于centos的yum,能够快速查找、下载和安装软件包。

2022-07-05 21:17:51 697

原创 Golang — RESTful框架 go-restful

go-restful 是一个 Golang 第三方库,是一个轻量的 RESTful API 框架,基于 Golang Build-in 的 http/net 库。适用于构建灵活多变的 Web Application,Kubernetes 的 ApiServer 也使用了 go-restful。

2022-07-03 21:15:58 2705

原创 Golang — 命令行工具cobra

Cobra是一个用于Go语言的CLI框架。它包含一个用于创建强大的现代CLI应用程序的库,以及一个用于快速生成基于Cobra的应用程序和命令文件的工具。

2022-07-02 16:58:54 1067

原创 Golang — template

Go语言内置模板引擎语法介绍

2022-06-29 00:01:29 887

转载 BGP协议

文章目录BGPBGP概述BGP基本概念自治系统AS(Autonomous System )EBGP和IBGP(External BGP /Internal BGP)BGP报文交互中的角色BGP工作原理BGP报文状态机BGP对等体之间交互原则BGP与IGP同步BGP与IGP交互network命令import命令BGP属性特点BGP选路规则与负载分担BGP扩展特性BGP安全特性:路由衰减(EBGP)BGPBorder Gateway Protocol(当前使用的版本是 BGP-4)动态路由协议可以按照工作

2022-05-28 14:51:29 5340

原创 带外与带内管理

文章目录带外管理带内管理从专业的角度,网络管理可分为带外管理和带内管理两种管理模式。在网络的日常管理中,其中最常见的设备管理方式有SNMP、RMON、Web、TELNET、SSH以及通过CONSOLE、AUX接口管理,有些高端设备还具备100BASE-TX或者1G的带外管理端口。带:可以理解为带宽、用户使用的网络流量资源带外管理通过专门的网管通道实现对网络的管理,将网管数据与业务数据分开,为网管数据建立独立通道。在这个通道中,只传输管理数据、统计信息、计费信息等,网管数据与业务数据分离,可以提高网

2022-05-27 15:01:27 3347

原创 Calico — 架构

文章目录calico/nodeFelix接口管理路由配置ACL配置状态报告BIRD路由分发BGP路由反射器配置confdDikastesCNI 插件Datastore pluginKubernetes API datastore (kdd)etcdIPAM 插件TyphaCalico 是一种容器之间互通的网络方案。支持广泛的平台,包括Kubernetes、OpenShift、Docker EE、OpenStack和bare metal服务。它可以不使用隧道或 NAT 来实现转发,而是巧妙的把所有二三层流

2022-05-27 00:09:30 630

原创 KubeVirt — 架构

文章目录什么是KubeVirtKubeVirt架构virt-apivirt-controllervirt-handlervirt-launcherlibvirtd什么是KubeVirtkubevirt是Red Hat开源的以容器方式运行虚拟机的项目,是基于kubernetes运行,利用k8s CRD为增加资源类型VirtualMachineInstance(VMI),使用CRD的方式是由于kubevirt对虚拟机的管理不局限于pod管理接口。通过CRD机制,kubevirt可以自定义额外的操作,来调整常

2022-05-19 22:44:23 1173

原创 Pecan — 文件下载

以下载excel文件为例,仅摘取下载的主要代码:import osimport pecanfrom io import BytesIOfrom openpyxl import Workbookfrom mimetypes import guess_typefrom urllib.parse import quotefrom webob.static import FileIterdef download_file(): file_name = 'tmp.xlsx' work

2022-05-18 22:50:43 260

原创 KubeVirt — 安装KubeVirt及启动VM

文章目录安装KubeVirt启动虚拟机kubernetes version: v1.18.8kubevirt version: v0.35.0安装KubeVirt验证硬件是否支持虚拟化$ virt-host-validate qemu QEMU: Checking for hardware virtualization : PASS QEMU: Checking if device /dev/kvm exists

2022-05-15 16:20:13 3555 2

原创 Python — 异步async/await

文章目录协程asyncawait阻塞函数处理问题解决方案run_in_executor协程协程,英文Coroutines,是一种比线程更加轻量级的存在。协程既不是进程,也不是线程,它就是一个可以在某个地方挂起的特殊函数,并且可以重新在挂起处继续运行。async用来声明一个函数为异步函数,异步函数的特点是能在函数执行过程中挂起,去执行其他异步函数,等到挂起条件消失后,再回到挂起前的状态执行。用法:async def func_name(): passawait用来用来声明程序挂起,

2022-05-04 22:20:05 8626

原创 NATS 基础概念

文章目录NATSSubjectsubject层次结构subject通配符匹配单个标记匹配多个标记工作模式Publish-SubscribeRequest-ReplyQueue GroupNATSNATS是一种go语言开发的开源的、轻量、高性能的云原生消息系统,负责处理、发现和交换分布式系统中的消息;nats消息由主题处理,不依赖于网络位置。它提供了应用程序或服务与底层物理网络之间的抽象层。数据被编码并作为消息,由发布者发送。消息由一个或多个订阅者接收、解码和处理。Subject最简单的来说,sub

2022-04-16 16:16:02 5857

空空如也

空空如也

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

TA关注的人

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