云原生技术爱好者。
1. 问题描述 工作环境中有三个独立的 Ceph 集群,分别负责对象存储、块存储和文件存储。搭建这几个 Ceph 集群时,我对 Ceph 重命名 Cluster name 的难度没有足够的了解,所以使用的都是默认的 cluster name:ceph,不巧的是 Prometheus 的 ceph_exporter 就是用 cluster name 来区分不同集群,结果是 Grafana 中各个集群的数据无法区分,所有的集群数据都绘制在了一个图标中,非常乱不说,而且部分数据还无法正常显示。
最近公司的生产环境已经开始使用 CephFS 作为文件系统存储,记录一下使用过程中遇到的问题,已经一些常用的命令。
最近在准备 CKA 考试,所以需要搭建一个 Kubernetes 集群来方便练习.GCP 平台新用户注册送 300 刀体验金,所以就想到用 kubeadm 在 GCP 弄个练练手,既方便又省钱. 这一套做下来,还是比较容易上手的,kubeadm 提供的是傻瓜式的安装体验,所以难度主要还是在科学.
比较一番下来,我的建议是,如果是刚刚要上监控系统的话,不用犹豫了,Prometheus 准没错。 但如果已经对传统监控系统有技术积累的话,还是要谨慎考虑:如果监控的是物理机,用 Zabbix 没毛病,或者是环境变动不会很频繁的情况下,Zabbix 也会比 Prometheus 好使;但如果是云环境的话,除非是 Zabbix 玩的非常溜,可以做各种定制,那还是 Prometheus 吧,毕竟人家就是干这个的。
Kafka 最近在 OpenStack 环境下需要部署消息队列集群,包括 RabbitMQ 和 Kafka,这篇记述一下 Kafka 集群的部署过程。
pypi 写过 Python 程序的小伙伴们都知道,需要 import 个非 Python 自带的软件包时,都要用到 pip 这个程序。平时我们都是用 pip,如果我们写好了一个程序,想让大家都能用的到,那么是不是也可以通过 pip 发布出去呢? 答案当然是可以了,这篇文章我们就来看看如何用 pip 发布一个 python 程序。
Ceph 之前介绍了 RBD 的使用方法,有了 RBD,远程磁盘挂载的问题就解决了,但 RBD 的问题是不能多个主机共享一个磁盘,如果有一份数据很多客户端都要读写该怎么办呢?这时 CephFS 作为文件系统存储解决方案就派上用场了。
block storage RBD 是 Ceph 的块存储方案,最近需要在一台 Linux 服务器上挂载 Ceph 镜像,做法和 Kubernetes 挂 RBD 很像,但部分操作由于 Kubernetes 在镜像中已经固化了,所以将这次完全自己控制的步骤记录下来,加深对 Ceph 挂载的理解。
Kubernetes and Istio 翻译一篇 Istio 部署教程,原文链接:test-drive-your-first-istio-deployment-using-play-with-kubernetes-platform-cloud-computing 作为一名全栈开发,假如最近花了不少时间开发应用,肯定已经理解了微服务架构下要面临的一系列全新挑战。
Discourse logo 0. 简要介绍 Discourse 是由 Stack Overflow 创始人之一的 Jeff Atwood 主导的开源论坛项目,使用时能感受到和 Stack Overflow 的关联性,比如为鼓励有效的技术讨论、控制人身攻击等做了很多努力,页面的布局方式也有相似之处。
Damaged disks 对于存储系统,磁盘是消耗品,损坏是很常见的,所以这篇文章记录一下 Ceph 中出现磁盘损坏时的现象,以及如何定位和更换损坏的磁盘。
sidecar 1. 简介 ElasticSearch 在日志收集和分析领域非常流行,而 fluentd 是一种万用型的日志收集器,当然也支持 ES(ElasticSearch)。
SSH 为了降低运维成本,提高可靠性,物理服务器往往都不再部署在本地,IDC 托管成了更多企业的选择。服务器托管在 IDC 后,出于安全的考虑,不会直接开放所有服务器的外部访问,而是使用跳板机,跳板机可以直接从外部访问,而其他服务器只能在登录到跳板机后才能连接得上。
crush.png 在服务器资源不足,或者测试环境下,Ceph 通常只有一个节点,就算有多个服务器组成集群,往往存储服务器也往往只有一台,Ceph 的默认配置下,只能设置单数据备份,也就是说数据只存了一份,如果磁盘坏了,数据就丢了。
OSD.png 工作中需要从 Ceph 的集群中移除一台存储服务器,挪作他用。Ceph 存储空间即使在移除该存储服务器后依旧够用,所以操作是可行的,但集群已经运行了很长时间,每个服务器上都存储了很多数据,在数据无损的情况下移除,看起来也不简单。
MediaWiki 0 简介 MediaWiki 是 Wikipedia 使用的网站解决方案的开源版,以个人观点来看,Wiki 在这个时代显得不够时尚,且不支持 MarkDown 等新兴的标记语言,另外页面的组织方式采用了自己的一套管理语言,上手需要一定的学习成本。
MySQL + Kubernetes 1. 简介 在系列文章的第三篇中,讲到了如何使用 PV 和 PVC 挂载 RBD 上建立好的块存储镜像,但这还是不足以满足 cloud native 环境下的需求,试想如果部署一个应用,需要申请十个 R...
MySQL in Kubernetes MySQL 中的数据是关键信息,是有状态的,不可能随着 MySQL pod 的销毁而被销毁,所以数据必须要外接到一个可靠的存储系统中,目前已经有了 Ceph 系统,所以这里就只考虑如何将 Ceph 作为外部存储的情况,毕竟没有条件去尝试其他存储方案。
MySQL MySQL 在 Kubernetes 环境中运行这件事情本身并不困难,最简单的方式就是找到 MySQL 的 Docker image,跑起来就行了,但是要做到生产环境可用,还是有几个问题要解决,所以本文不对整个流程做详细的描述,而是把重点放在几个难点上。
stack overflow 今年 stackoverflow.com 已经上线十年,Stack Overflow 可以说是最好的软件类问答网站了,给软件开发人员工作和学习提供了非常大的便利,以至于像我这样的小白,离了 Stack Overflow 简直都不会写程序了。
Madison Kanna 007 的小伙伴们大多反应看不懂我写的技术文章,对于这点我也很头痛,我写的是偏记录和教程方向的,如何才能让非相关领域的朋友看懂,真不是个简单的事情。
DNS 1. 简介 本文使用 BIND9,用尽量少的步骤,搭建出一个可用的内网 DNS 服务。另外要说明的一点是,本文不仅适用于 Ubuntu 16.04,也使用其后的 Ubuntu 系统(截止到目前位置,最新的 Ubuntu server 版本是 18.04,之后的版本无法保证)。
luminous.jpg 1. 为什么要做内外网分离 先明确一下这么做的必要性。Ceph 的客户端,如 RADOSGW,RBD 等,会直接和 OSD 互联,以上传和下载数据,这部分是直接提供对外下载上传能力的;Ceph 一个基本功能是提供数据的冗余备份,OSD 负责数据的备份,跨主机间的数据备份当然要占用带宽,而且这部分带宽是无益于 Ceph 集群的吞吐量的。
MySQL in Kubernetes 最近因为工作上的需求,搭建了一套部署在 Kubernetes 环境中的 MySQL,可能听起来就是让 MySQL 的 docker image 跑在 Kubernetes 里,应该没什么难度,可实...
Go reflect 为何需要使用 reflect 获取:减少重复代码 1. API 接口中抽取参数的逻辑大量重复 API 接口自然是要获取传过来的数据,不同接口要获取的数据自然也不一样,如果不做特殊处理,必然是每个接口都有一堆功能重复的从 request 里获取参数的代码。
Golang 开发 API server Go 语言是由谷歌主导并开源的编程语言,和 C 语言有不少相似之处,都强调执行效率,语言结构尽量简单,也都主要用来解决相对偏底层的问题。
坐船的小青蛙 17 年春节前,《旅行青蛙》火的不行,反应慢一拍的我最近才开始迷上这个游戏。最近我的青蛙出去旅行不知所踪好几天了,作为一个不甘心当“佛系青年”的程序员,我想看看游戏的代码到底是如何设定的。
iPhone 可以刷公交卡了! 苹果手机很早就已经有了 NFC 功能,但是只能用于 Apple Pay,对其他应用不开放,这让我时常有 “我要这铁棒有何用” 的感慨,不过现在终于有了点变化。
gin-gonic 这是系列文章的第三篇。下面是另外两篇的链接: 如何使用 Gin 和 Gorm 搭建一个简单的 API 服务(一) 如何使用 Gin 和 Gorm 搭建一个简单的 API 服务(二) 修改数据结构 基本的 API 已经定义好了,现在是个修改 Person 对象结构的好时机。
gin-gonic 这是系列文章的第二篇。下面是另外两篇的链接: 如何使用 Gin 和 Gorm 搭建一个简单的 API 服务(一) 如何使用 Gin 和 Gorm 搭建一个简单的 API 服务(三) 创建 API 我们之前已经跑过 Gin 框架的代码,现在是时候加些功能进去了。
gin-gonic 今天工作上的事情比较多,所以就把工作中参考的英文文章搬运过来了,这是我参考文章的链接: Developing a simple CRUD API with Go, Gin and Gorm 因为文章较长,我打算分成三篇,这是第一篇。
我的工作用电脑的桌面环境是 Ubuntu 17.10,作为一个 Linux 用户,一直困扰我的一个问题是没有找到一个比较理想的可以取词划词的英语词典,之前我尝试过几种方法: 有道:有道是有 Linux 版的,不过没有集成到官方的包管理工具中,软件商店也找不到,只能下安装包。
春节即将结束了,复盘一下今年春节的得与失。 作为一名为人父不久的技术工作者,春节真是一个难得的长假,有太多事情要去做。平时加班较多,自然是希望借这个机会多给孩子高质量的陪伴;双方父母都不方便过来照顾孩子,所以娃一直是媳妇一个人带,我也想在假期里能多分担一些她的压力;因为孩子还比较小,老家又在寒冷的东北,最近几年一直没有回家过年,今年春节是娃出生后第一次返乡过年,当然也要多陪陪父母;作为一个自诩的终身学习者,我也给这个难得的长假安排了很多的学习计划,例如学习热门的开源项目,看英文技术书籍,学习英语等。
看得远,才走得远 最近两周阅读了《远见》这本关于职业规划的书,这本书在一定程度上改变了我对职业生涯的认识。 最深的感受是职业生涯的长度。我是计算机专业毕业,一直也在从事软件相关的工作,因为工作压力大,加班强度高,大多数人对这个行业的认识都是做不久,从业十年都已经算是老兵了,我周围的环境也是如此,比我年轻的人都开始自称老头子,所以我也有点迷惑该如何发展。
这次的作业主要是以对一个非常简单的数据分析问题进行实践的形式呈现出来,对于《R语言实战》第一二章的内容已经体现在了对问题的解析的过程中,所以就不再将学习的过程贴出来了。
ssh-keys.png 好久之前在公司的 PC 机上设置了 alias 登录服务器,感觉挺方便的.例如: alias 184='ssh -lroot xxx.
星辰大海 这是之前使用R语言完成的一道简单的数据统计题目链接:https://zhuanlan.zhihu.com/p/27092971 完成之后心理还是有点小得意的。