基于Istio与Kubernetes的Blue/Green实战(
我为什么写这篇文章
在相当长一段时间工作之后,停下来思考,从向往到学习探索到实践,这之中经历过什么;在不断的学习路上,我个人十分渴望看到别人的成功经验,比如博客、讲座以及图书,非常感谢这些人将自己的经验分享出来,让我们得以站在巨人的肩膀上做自己想做的事,提高生产效率;然而,在我将近10年的技术道路上,很少为他人付出过什么。
以此开篇,希望能以我的经验和实际经验为大家奉上你最关心的技术技能、实战讲解,一起在漫漫黑科技之路上下求索。
阅读前提
1. 微服务体系(什么是微服务、微服务的12要素、你所擅长的技术体系、Service Mesh)
2. 容器化(Docker、Kubernetes/Openshift)
3. Istio(参考 https://istio.io/docs/)
4. 开发语言(本文将支持Golang、Java等,视时间而定)
5. DevOps
在您对这些有了一定了解之后,我希望您能做如下事情:
1) 搭建Go语言开发环境(如无需请忽略),并检出我准备好的Repo,并将其Dockerized,并可正常运行;
2) 准备Kubernetes环境,作者使用Minikube(请确保kubectl已安装);
3) 安装Istio
正式动手
非常抱歉,从来没写过博客,不太会使用如何支持代码方面的功能,也找不到Markdown的位置,只能暂时说一下步骤,如果您存在部署上的问题,或者其他的技术问题,请留言给我;在能正常使用博客功能后,我会继续把整个文章写好.
1. 编译Blue/Green版本,在本例中,以歌手为例,分为别jessie和feng版本;并push自己的镜像,可以传到DockerHub,本地或者阿里云仓库(本例中使用的是阿里云仓库);
注意: 在使用部署到阿里云仓库方式时,需要修改Makefile,相应命令改为
docker build -t $(IMG) .
使其能够自动编译latest镜像.
2. 发布服务,具体参照代码结构中的run.sh,每一步骤均作了说明.