Content

  • 环境
  • 实施过程

环境

  • 阿里云的容器集群swarm模式
  • docker17.06.2-ce
  • mysql版本mysql:5.7.24

实施过程

1.修改镜像版本

原来的服务编排

pro-kong-ce:
  image: 'kong:0.14.1-alpine'
  restart: always
  hostname: 'production-kong-ce'
  environment:
    - KONG_DATABASE=postgres
    - KONG_PG_HOST=pro-postgre-db
    - 'constraint:aliyun.node_index==3'
    - KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl
  labels:
    aliyun.scale: '1'

要升级到最新版本(最新版本是1.0.2),直接修改版本号

pro-kong-ce:
  image: 'kong:1.0.2-alpine'
  restart: always
  hostname: 'production-kong-ce'
  environment:
    - KONG_DATABASE=postgres
    - KONG_PG_HOST=pro-postgre-db
    - 'constraint:aliyun.node_index==3'
    - KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl
  labels:
    aliyun.scale: '1'

2.启动服务

运行后服务无法启动,看日志,发现没有migration

3.执行migration

于是登录到host,执行下面的命令(sudo)

docker run --rm \
    --network=multi-host-network \
    -e "KONG_DATABASE=postgres" \
    -e "KONG_PG_HOST=pro-postgre-db" \
    -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
    kong:1.0.2-alpine kong migrations up

注意--network=multi-host-network一定要有,否则找不到postgre的主机

4.再次重启服务

一切ok,升级完毕.