Blog

Istio学习的开始(二):部署官方示例Bookinfo

2017-10-25
Istio

Bookinfo是Istio的官方示例应用。 我们已经在k8s集群上安装了Istio,本篇的目标是在k8s集群上将Bookinfo应用跑起来。

Bookinfo示例应用概述 #

Bookinfo这个示例应用由4个独立的微服务组成,Istio使用这个应用来演示Istio的Service Mesh的各种功能。 Bookinfo应用的端到端架构图如下:

...

Istio学习的开始(一):在Kubernetes安装Istio

2017-10-24
Istio

Istio是由Google, IBM, Lyft开源的Service Mesh项目。 Istio的Introduction中说它是一个用来连接、管理和保护微服务的开放平台。 因为是个人学习Istio的开篇,对Istio概念的第一印象先停留在前面一句话上,本篇的目标是先在我们的k8s集群上部署Istio。

安装Istio #

注意Istio还在快速发展,这里安装的是最新的Istio 0.2.9,后续的版本极有可能发生变化,本来也是学习和体验这里就不废话了。 当前的Istio要求在Kubernetes 1.7.4及以上版本,要求k8s集群开启RBAC,另外kubectl的版本也需要是1.7以后的版本。

...

Kubernetes StatefulSet的滚动升级

2017-10-19
Kubernetes

滚动升级时一种平滑过渡的升级方式,采用的是逐步替换的策略从而保证服务的稳定性,在升级时如果发现问题可以及时回滚、调整问题,尽量让问题不会扩大。我们经常使用Kubernetes的两种资源对象Deployment和DaemonSet的滚动升级,本篇来看一下StatefulSet的滚动升级。

...

MySQL从库的Crash Safe

2017-10-17
Mysql

最近测试环境的一个三节点的MySQL GR集群(单主)的一个从节点发生了宕机,重启恢复后,过了一会监控系统告警,刚刚宕机的这个节点退出了GR集群。原因是主库上对某条数据的修改复制到从库后,在这个从库上找不到这条数据(slave_exec_mode=STRICT),第一反应就是主库和从库出现了不一致。因为是测试环境,数据量不大,所以采取的方案是将从库重建(团队没有专门的DBA)。接下来特意查看了一下MySQL复制和从库宕机恢复这块的资料。

...

Kubernetes 1.6到1.7升级记录

2017-10-13
Kubernetes

最近正在制定将团队生产环境的Kubernetes集群从1.6升级1.7的计划。 Kubernetes 1.8已经发布,所以准备考虑从1.6到1.7的升级。

准备 #

当前1.7的最新版本是1.7.8。在做准备之前需要仔细读一遍官方的Kubernetes 1.7 - Action Required Before Upgrading

使用ansible升级k8s的核心组件 #

目前我们总共有两个高可用的Kubernetes集群,分别是测试环境和生产环境,版本都是1.6.10。 这两套环境的Kubernetes集群都是基于ansible自动部署,在1.6.x的每个小版本的升级也都是使用ansible完成。

...

使用kubeadm安装Kubernetes 1.8

2017-09-30
Kubernetes

kubeadm是Kubernetes官方提供的快速安装和初始化Kubernetes集群的工具,目前的还处于孵化开发状态,伴随Kubernetes每个版本的发布都会同步更新。 当然,目前的kubeadm是不能用于生产环境的。 但伴随着Kubernetes每次版本升级,kubeadm都会对集群配置方面的一些实践做调整,通过实验kubeadm我们可以学习到Kubernetes官方在集群配置上一些新的最佳实践。

...

团队环境:OpenVPN集成LDAP认证

2017-09-29
Openvpn

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

...

团队环境:OpenVPN安装

2017-09-28
Openvpn

为了方便团队成员从异地访问开发环境,考虑使用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

目前我们线上环境使用的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私有仓库:

...

© 2024 青蛙小白