kubernetes1.17安装glusterfs
本文介绍了如何使用在最新kubernetes版本上安装glusterfs。 官方源仓库master分支相关脚本无法部署成功,主要是由于kubernetes的版本发生了变化, 一些beta版本的资源升至稳定版本,所以一些模板yaml文件需要修改,这些修改很多在issus中能够发现,目前还未合并到主分支,仍然需要手动修改。 所以我Fork了源仓库,合并了这些这些修改。代码仓库地址为:gluster-kubernetes。 同时还将镜像源改为国内镜像源,镜像源使用国内daocloud.io/daocloud下的镜像。 安装前以下原因可能会导致安装失败,安装前请先检查。 glusterfs server和glusterfs client版本需要尽量保持一直,由于镜像中的glusterfs server版本较低,为7.1, 所以客户端不能够安装最新版本,centos7 yum版本回退操作如下: 12345678910# 获取事务IDyum history info glusterfs-fuse # 删除所有依赖yum history undo ${事务ID}# 安装7.1 ...
2019-summary
一年的时间,眨眼就过去了! Make easier工程师的追求是让事情变得更简单!。将复杂度扔给工程师。 简单的设计 简单的 相信过程并坚持下去《Atomic Habits》里面,有一个很有趣的过程理论: 1% worse everyday for one year:0.99³⁶⁵ = 0.03 1% better everyday for one year:1.01³⁶⁵ = 37.78
kubernetes-api-conventions
本文介绍kubernetes的API设计,主要面向想要深入了解kubernetes API结构的用户。 kubernetes API采用RESTful风格(客户端create,update,delet,get对象通过标准的HTTP verbs),并且这些API优先选择JSON。 同时kubernetes也暴露一些不是标准HTTP verb的接口和使用其他的content类型。服务端接收和发送的JSON数据都有对应schema( JSON schema) ,kind和apiVersion这两个字段确定唯一的schema。 术语定义: kind:Object schema的名称 Resource: 获取Object的特定URL(小写),所以Resource比如/api/v1/podsResource可以获取v1 Pod Object列表,这类Resource也被称为Collections;/api/v1/namespace/<namespace-name>/pods/<pod-name> resource可以 获取具体的v1 Pod Object,这类resour ...
Docker-container详解
本文介绍docker中的contanier,基于操作系统介绍什么是container。 进程(Processes)Container是具有指定配置的Linux进程(processes)。我们进行如下操作: 12345678910111213141516## 启动一个redis进程➜ ~ docker run -d --name=db redis:alpine## 显示容器运行的进程➜ ~ docker top dbPID USER TIME COMMAND2288 999 0:00 redis-server## 查看系统是否存在redis-server进程➜ ~ ps aux | grep redis-serverdonggang 10761 0.0 0.0 4258876 200 s007 R+ 6:57下午 0:00.00 grep --color=au ...
Asciinema终端录屏&Hexo文章目录管理
本文介绍了近期我在使用Hexo的两个技巧。一是使用Asciinema来录制终端Demo。并在Hexo博客 中显示。二是如何使用目录来管理Hexo文章,当博客越来越多的时候,这将十分必要,当然我并不 是博客太多才去分目录管理,主要是因为强迫症🤪。 AsciinemaAsciinme能够解决Hexo博文中显示多行命令行代码块不太友好的显示方式,同时也能更直观的阐述 命令的输入和输出。 如何使用 注册Asciinema, 官网。为注册用户 提供一个仓库。 下载客户端工具;1234# mac下homebrew安装brew install ascillnema 使用asciinema auth登录–>asciinema rec开始记录–>CTRL+D或者输入exit退出。 完成之后会输出对应的链接。具体配置参考官方教程 安装Hexo插件,支持Asciinema的渲染; 1npm install --save hexo-tag-asciinema Vscode设置Markdown的Snippet,方便编写: 12345"Asciinema": ...
Spring事务&分布式事务&单服务处理多数据源事务
本文以一个实际业务问题来谈谈事务该如何处理。对接外部系统是是不可避免的,从广泛意义上来说,外部系统范围很大,中间件(数据库)也属于外部系统。当我们讨论事务时,通常我们将那些没有支持事务的系统称为外部系统,业务系统基本上都是外部系统。 问题有这样一套系统,以gitlab为底层系统, 在gitlab project的基础上封装了代码仓,系统对其中一些与gitlab关联的数据进行了落表。创建代码仓的逻辑过程比较复杂,首先通过gitlab创建代码仓(其中返回的代码仓id需要落库),系统表code_repo插入记录,创建gitlabhook,系统表member插入记录(维护系统用户和对应代码仓的关系),创建多个gitlabbranch(系统业务,初始化代码仓可以初始化多个分支),系统表label插入记录。 分析以上大概说明整个业务流程, gitlab接入的方式采用HTTP,不采用直接对接gitlab数据库的原因是,其创建项目和分支业务逻辑复杂,梳理代价很大。对接任何系统其实本质上可以概括为两种: 对接方式 优势 缺点 上游系统提供的接口 不需要关注上游系统的自身义务逻辑,维护只需要 ...
Spring Boot中的并发处理
在使用Spring Boot开发过程中,并发concurrency问题不可避免。很多开发者存在这样的误区,使用Servlets为每个请求分配一个新的线程进行处理就不再需要并发处理了。我将在这篇文章中介绍如何在Spring Boot中处理并发并且如何避免一些问题。 Spring Boot 并发基础有以下几点特别值得注意: 最大线程数:这是为处理应用程序的请求而分配的最大线程数。 共享资源:调用共享资源如数据库 异步方法调用:这些方法调用将会释放线程资源 内部共享资源:内部资源调用如缓存、共享应用程序状态 接下来我们逐一介绍如何处理这些场景 Spring Boot应用程序的最大线程数量首先我们必须限制应用程序的线程数量。如果使用默认内嵌的Tomcat Server,我们可以通过server.tomcat.max-threads变量修改线程数量限制。默认为200。我们可以通过修改此配置以更合理利用硬件资源。 共享外部资源调用数据库或者第三方Restful接口可能需要很长时间。 异步方法调用我们可能遇到一个请求会调用多个服务。比如一次请求调用Service A、B、C,你肯定不想这样调 ...
Hexo博客访问优化
通过Hexo&Gitpage方案部署的博客系统,访问速度确实很慢。一个网站如果在4秒内没有读取出来,大多数访客会选择离开。 分析首先需要排查出页面加载速度慢的原因,这里我们结合Chrome开发者工具和开源的在线网站测试(模拟不同地区和终端)进行测试。 chrome分析结果 通过比较Gitpage和本地访问情况,可以看出DomcontentLoad加载时间没有多少差距,那当然是请求资源load耗时比较长,其中一张4.5M的图片资源加载了3分钟。Chrome Devtool`相关介绍可以参考文档资料。 优化 图片压缩,加载一张图片速度是很慢 静态资源使用CDN加速 图片使用JsDelivs CDN加速,每次需要四个步骤,显然是反人类的,思考了一番,暂时通过一下方式解决,后续可以将所有操作步骤整合到命令工具中。 复制博客所在目录图片到CDN仓库目录 --> push到远程分支 --> release --> 修改博客文件图片引用地址 python命令行工具 --> git命令 --> 开源release-it --> 修改paste Ima ...
优雅的打印日志
日志是很多开发者在开发过程中很容易忽略,开发过程中开发者可以通过IDE或其他调试工具,。在软件的生命周期中, 分析丑陋的日志123456789101112131415161718192019-07-05 09:49:53k8s_cosmo-portal-console-app_cosmo-portal-console-app-6d7fc78d7b-29rw5_default_c8beb189-9e38-11e9-b1a0-0242ac120005_02019-07-05 09:49:53,257 INFO [com.cosmo.portal.interceptor.TokenInterceptor] - AUTH:x-usc-token:5354d67c-d2b1-42b0-8160-d7040a0fd1eb clusterId:qingdao2019-07-05 09:49:53k8s_cosmo-portal-console-app_cosmo-portal-console-app-6d7fc78d7b-29rw5_default_c8beb189-9e38-11e9-b1a0-0 ...
Hexo博客框架&Butterfly主题&Vscode&Paste Image插件
HexoHexo是一款快速、简洁且高校的博客框架,有以下亮点: Markdown 编辑模式; 静态,可以使用GitPage部署; 基于CLI优雅的管理模式; 1hexo clean && hexo s 主题酷炫。 为什么选择Butterlfy主题看图:Never put off till tomorrow what you can do today一语胜千言,警醒自己。 博客图片管理本人使用的是VSCode文本编辑器,改编辑器插件体系丰富,同时对VIM的兼容良好。Paste Image这款插件能够过从系统剪切板(clipboard)复制图片到Markdown或其他类型文件。 VsCode下载Paste Image插件 设置插件 "pasteImage.path": "${currentFileDir}/${currentFileNameWithoutExt}" 图片文件保存到和博文处于同一级目录的同名目录中 "pasteImage.insertPatte ...