使用Helm部署微服务应用PiggyMetrics

本文介绍如何使用Kubernetes和Helm一键部署复杂的PiggyMetrics SpringCloud应用,包括修改DockerCompose文件,使用Kompose转换为Kubernetes配置,并通过Helm进行部署。

一、概述

本文介绍如何将一个较复杂的应用部署到Kubernetes容器服务上,下面将从基础设施和应用部署的不同组合方式,来部署一个复杂的SpringCloud应用。

PiggyMetrics

PiggyMetrics是github上的一个SpringCloud应用项目,Star数目3400多。这个项目主体采用Docker Compose部署,包含了完整的源代码以及构建好的容器镜像,是非常不错的SpringCloud容器化示例。

 

 

 

这个项目包含了3个业务微服务,分别是统计服务(Statistics Service)、账户服务(Account Service)和通知服务(Notification Service)。每个服务分别对应一个独立的MongoDB。微服务架构图示(采用作者原图)如下:

 

 

 

 

SpringCloud基础组件负责服务注册和registry服务(Eureka服务注册),config服务(配置管理),gateway(API网关,同时也是JavaScript Web界面),monitor服务(Hystrix Dashboard/Turbine)等。

 

二、用helm一键部署所有服务

修改docker-compose

1. 修改PiggyMetrics应用程序的Docker编写文件
切换配置文件版本。
PiggyMetrics的部署采用docker-compose YAML部署到单机,如果要部署到Kubernetes环境中 ,需要转换成为Kubernetes deployment YAML。

说明 PiggyMetrics中的docker compose模版为2.1,kompose不支持该版本,所以需要把compose文件改为版本2。

 

2. 在docker-compose.yml文件中。

去除kompose不支持的语法。

depends_on:
      config:
        condition: service_healthy  # 不支持 condition

增加Kubernetes server type annotation。

depends_on:
  - config
labels:
  kompose.service.type: loadbalancer

docker-compose.dev.yml文件中,将PiggyMetrics应用程序使用的四个MongoDB数据库的外部端口更改为27017。

说明 PiggyMetrics应用包含四个MongoDB数据库,分别由 auth-mongodb, 、account-mongodbstatistics-mongodbnotification-mongodb这四个字段定义。

完整的YAML文件示例如下:

version: '2'
services:
  rabbitmq:
    image: rabbitmq:3-management
    restart: always
    labels:
      kompose.service.type: nodeport
    ports:
      - 5672
      - 15672:15672
    logging:
      options:
        max-size: "10m"
        max-file: "10"

  config:
    environment:
      CONFIG_SERVICE_PASSWORD: $CONFIG_SERVICE_PASSWORD
    image: sqshq/piggymetrics-config
    restart: always
    ports:
      - 8888
    logging:
      options:
        max-size: "10m"
        max-file: "10"

  registry:
    environment:
      CONFIG_SERVICE_PASSWORD: $CONFIG_SERVICE_PASSWORD
    image: sqshq/piggymetrics-registry
    restart: always
    depends_on:
      - config
    labels:
      kompose.service.type: loadbalancer
    ports:
      - 8761:8761
    logging:
      options:
        max-size: "10m"
        max-file: "10"

  gateway:
    environment:
      CONFIG_SERVICE_PASSWORD: $CONFIG_SERVICE_PASSWORD
    image: sqshq/piggymetrics-gateway
    restart: always
    depends_on:
      - config
    labels:
      kompose.service.type: loadbalancer
    ports:
      - 4000:4000
    logging:
      options:
        max-size: "10m"
        max-file: "10"

  auth-service:
    environment:
      CONFIG_SERVICE_PASSWORD: $CONFIG_SERVICE_PASSWORD
      NOTIFICATION_SERVICE_PASSWORD: $NOTIFICATION_SERVICE_PASSWORD
      STATISTICS_SERVICE_PASSWORD: $STATISTICS_SERVICE_PASSWORD
      ACCOUNT_SERVICE_PASSWORD: $ACCOUNT_SERVICE_PASSWORD
      MONGODB_PASSWORD: $MONGODB_PASSWORD
    image: sqshq/piggymetrics-auth-service
    restart: always
    ports:
      - 5000
    depends_on:
      - config
    logging:
      options:
        max-size: "10m"
        max-file: "10"

  auth-mongodb:
    environment:
      MONGODB_PASSWORD: $MONGODB_PASSWORD
    image: sqshq/piggymetrics-mongodb
    restart: always
    ports:
      - 27017
    logging:
      options:
        max-size: "10m"
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值