Blog

团队环境:OpenVPN集成LDAP认证

📅 2017-09-29

前面已经成功部署了OpenVPN的服务端。客户端和服务端采用的是基于TLS的双向认证,需要给每个客户端生成客户端私钥和证书。本篇将在OpenVPN服务端集成的OpenLDAP认证,这样能够使客户端用户在连接VPN时直接使用统一的OpenLDAP账号。部署的环境和版本信息如下:

...

团队环境:OpenVPN安装

📅 2017-09-28

为了方便团队成员从异地访问开发环境,考虑使用OpenVPN搭建虚拟局域网。部署的环境和版本信息如下:

  • CentOS 7
  • OpenVPN

1.easy-rsa生成证书 #

这里下载easy-rsa。

 1unzip easy-rsa-old-master.zip
 2cd easy-rsa-old-master/easy-rsa/2.0
 3
 4ls
 5build-ca        build-key-pkcs12  inherit-inter      pkitool
 6build-dh        build-key-server  list-crl           revoke-full
 7build-inter     build-req         openssl-0.9.6.cnf  sign-req
 8build-key       build-req-pass    openssl-0.9.8.cnf  vars
 9build-key-pass  clean-all         openssl-1.0.0.cnf  whichopensslcnf
10
11ln -s openssl-1.0.0.cnf openssl.cnf

可修改vars文件中定义的变量用于生成证书的基本信息。下面生成CA证书:

...

升级Kubernetes Dashboard小记

📅 2017-09-04

目前我们线上环境使用的Kubernetes Dashboard的版本是1.6.1,这里记录一下升级到1.6.3的过程。

Dashboar和Heapster组件主要包含如下部署文件:

当前对应的docker镜像及版本如下:

  • gcr.io/google_containers/kubernetes-dashboard-amd64:v1.6.3
  • gcr.io/google_containers/heapster-amd64:v1.4.0
  • gcr.io/google_containers/heapster-influxdb-amd64:v1.3.3

从gcr pull这些镜像,并将其推送到我们的docker私有仓库:

...

在Kubernetes上使用Sateful Set部署RabbitMQ集群

📅 2017-09-01

前面我们已经在Kubernetes上部署了Redis - 《在Kubernetes上使用Sateful Set部署Redis》。 本篇我们继续把RabbitMQ也跑在K8S上。

1.RabbitMQ的基础知识 #

在正式开始部署工作之前,我们先来复习一下RabbitMQ的一些基础知识。

RabbitMQ内建的集群功能可以实现其高可用,允许消费者和生产者在RabbitMQ节点崩溃的情况下继续工作,同时可以通过添加更多的节点来提高消息处理的吞吐量。

...

Kubernetes DaemonSet的滚动升级

📅 2017-08-25

DaemonSet好比Kubernetes集群Node的守护进程,可以保证在每个Node上(或者一部分Node上)都运行同一个Pod。 目前我们的线上环境主要用到以下两个DaemonSet:

  • kube-flannel-ds 这个是部署Kubernetes集群时选用的是flannel network add-on
  • fluent-bit 这个是用来在部署在各个Node上,收集各个Node上容器的日志。我们选用的日志收集方案是EFK(Elasticsearch+Fluent-bit+Kibana),后边有时间再写点fluent-bit的内容

我们目前线上Kubernetes的版本总是落后最新的release版本,例如现在Kubernetes最新是1.7,我们使用1.6.x。但是我们注意到Kubernetes 1.7中很多外部组件、Addon都做了更新。我们在使用1.6.x的过程中会考虑提前升级这些组件,以便于后续顺利将Kubernetes升级到1.7。DaemonSet的升级就是需要考虑的。

...

Kubernetes的Cron Job

📅 2017-08-21

Kubernetes集群使用Cron Job管理基于时间的作业,可以在指定的时间点执行一次或在指定时间点执行多次任务。 一个Cron Job就好像Linux crontab中的一行,可以按照Cron定时运行任务。

定时任务对我们并不陌生,例如Linux的crontab,各种编程语言都内置了定时任务支持,这在我们应用开发中比较常见,但这种定时任务在分布式系统中使用会有限制,因此需要分布式计划任务。 Kubernetes的CronJob可以理解为Kubernetes对分布式计划任务的支持。

...

使用thumbor搭建独立的图片处理服务

📅 2017-08-18

thumbor介绍 #

图片处理服务是互联网产品开发中必不可少的服务,有很多图片处理引擎如ImageMagic, Graphicsmagic, OpenCV等,我们之前的实现是在我们的对象存储前面搭建了Nginx+Lua+GraphicsMagick的组合,用Lua脚本实现了图片缩放和处理等功能。 最近要搭建独立的图片处理微服务,因此需要对一些图片处理系统做一些调研,就是其中之一。

...

体验ProxySQL 1.4.1对MySQL Group Replication的内置支持

📅 2017-08-09

ProxySQL 1.4.1是ProxySQL 1.4的首个稳定版本,加入了对MySQL Group Replication的原生支持。 目前我们两套环境使用的是ProxySQL 1.3,使用proxysql_scheduler调用自定义的MySQL GR检查脚本实现故障切换。 现在1.4内置了对GR的支持,这里体验一下。

...

使用Prometheus监控MySQL

📅 2017-08-01

Prometheus官方提供了mysqld_exporter,我们直接使用即可。

在每个要监控的MySQL中创建监控用户并授予权限。

1CREATE USER 'exporter'@'127.0.0.1' IDENTIFIED BY 'XXXXXXXX' WITH MAX_USER_CONNECTIONS 3;
2GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'127.0.0.1';
3flush privileges;

mysqld_exporter也是用Go语言写的,安装十分简单,我们的环境MySQL有3个节点,使用ansible部署mysqld_exporter。 这里贴一下其中一个MySQL节点上生成的systemd的单元文件:

...

© 2025 青蛙小白 | 总访问量 | 总访客数