使用 azure kubernetes service + dotnet core 的微服务实践 - 2.利用Helm部署Consul集群

上一篇 使用 azure kubernetes service + dotnet core 的微服务实践 - 1.创建AKS 中完成了azure上 kubernetes cluster的创建,接下来就是往aks上部署各种应用了。

本文将介绍Consul 集群的部署,Consul 在整个微服务架构中用于服务注册和发现。

Helm

微服务和容器化给复杂应用部署与管理带来了极大的挑战。Helm把Kubernetes资源(比如deployments、services或 ingress等) 打包到一个chart中,chart被保存到chart仓库。通过chart仓库可用来存储和分享chart。Helm使发布可配置,支持发布应用配置的版本管理,简化了Kubernetes部署应用的版本控制、打包、发布、删除、更新等操作。

Helm是目前Kubernetes服务编排领域的唯一开源子项目,做为Kubernetes应用的一个包管理工具,可理解为Kubernetes的apt-get / yum,由Deis 公司发起,该公司已经被微软收购。

Helm 可以理解为 Kubernetes 的包管理工具。

更多请参考官网 https://helm.sh

  1. 在本地安装Helm客户端 Helm CLI
    brew install kubernetes-helm

  2. 在K8s集群中安装Helm服务端组件 Tiller
    首先运行如下命令,确保kubectl 命令的上下文已经连接到我们创建的AKS。
    az aks get-credentials --resource-group --name
    可以运行如下命令进行确认:
    kubectl config view
    执行以下命令进行安装:
    helm init --upgrade
    如果没梯子,可通过如下命令利用阿里云的镜像来安装 Helm:
    helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.12.1 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
    注意上面命令中的版本号v2.12.1,需要与 helm cli 版本一致。
    Tiller默认被部署在k8s集群中的kube-system这个namespace下。
    运行命令:
    kubectl get pod -n kube-system -l app=helm
    得到如下输出:

    Xnip2019-01-09_21-09-37.jpg

    运行命令 helm version得到如下的输出:
    image001.jpg

部署 Consul 集群

使用官方的consul-helm部署,更多请参考 https://github.com/hashicorp/consul-helm

consul helm目前还没有放到chart repository中,所以第一步先下载到本地:
git clone https://github.com/hashicorp/consul-helm.git

然后运行如下命令安装:
helm install ./consul-helm
(假设本地目录为consul-helm)

注意:这里没有对consul-helm做任何修改,在生产环境中需要按需修改,更多请参考官网。

运行命令kubectl get pods可得到如下输出:

Xnip2019-01-09_23-55-20.jpg

运行命令helm list可以列出当前k8s中部署的版本,可以看出当前部署的release name为snug-robin:

Xnip2019-01-09_23-57-07.jpg

或者通过Kubernetes仪表板查看:


Xnip2019-01-09_23-59-45.jpg

Consul UI

运行命令:
kubectl port-forward snug-robin-consul-server-0 8500:8500

然后在浏览器中打开http://localhost:8500,如下图:

Xnip2019-01-10_00-01-10.jpg

删除 Consul 集群

通过指定release name 删除Consul:
helm delete
如此处可以执行下面的命令将Consul删除:
helm delete snug-robin

至此,consul 集群部署成功。

你可能感兴趣的:(使用 azure kubernetes service + dotnet core 的微服务实践 - 2.利用Helm部署Consul集群)