您的位置:首页 > 编程语言 > Java开发

k8s 集群部署springcloud 多应用

2018-02-14 15:48 731 查看


单应用能够顺利部署,加上k8s dns能够解析,那多应用就很简单了,如果前两步不成功的可以参考我前几篇博客 http://blog.csdn.net/JustHaveTry/article/details/78248436 
注:应用源码地址 https://github.com/passionday/spring-cloud-vue

目录

用 
[TOC]
来生成目录:k8s 集群部署springcloud 多应用目录

修改配置文件及打jar包1 修改配置文件
2 打jar包

build docker 镜像
k8s集群部署

1. 修改配置文件及打jar包
2. build docker 镜像
3. k8s集群部署

1. 修改配置文件及打jar包

1.1 修改配置文件

修改springcloud的配置文件中的eureka 和 config 的server地址 改为 k8s 中部署的app name 
如下 : 
其中 cloud-config-server cloud-eureka-server 用来作为app name 
k8s dns 会根据app name 解析成对应的ip
server.port=8081
server.context-path=/
spring.cloud.config.profile=dev
spring.cloud.config.uri=http://${cofig.host:cloud-config-server}:${config.port:1111}
spring.cloud.config.name=cloud-config
#${config.profile:dev}

eureka.instance.hostname=cloud-eureka-server
#service discovery url
eureka.client.serviceUrl.defaultZone=http\://${eureka.host:cloud-eureka-server}\:${eureka.port:8888}/eureka/

将eureka改为Ip和端口注册服务
#使用IP注册服务
eureka.instance.prefer-ip-address=true
eureka.instance.instance-id=${spring.cloud.client.ipAddress}:${server.port}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

1.2 打jar包

mvn install

2. build docker 镜像

在master 或者 node上build都可以 只要能push 到私库即可。 
创建 /root/apps/目录 ,并在该目录下 创建 config eureka simple zipkin 文件夹 用来存放不同的应用,将打好的jar包放入对应的文件夹,并在每个文件夹内创建Dockerfile,已经build 脚本,文件目录如下:
[root@master ~]#  tree  apps/  -L 3
apps/
├── build_all.sh
├── config
│   ├── build.sh
│   ├── cloud-config-server-1.0.0.jar
│   ├── Dockerfile
│   └── start_docker.sh
├── eureka
│   ├── build.sh
│   ├── cloud-eureka-server-1.0.0.jar
│   └── Dockerfile
├── simple
│   ├── build.sh
│   ├── cloud-simple-service-1.0.0.jar
│   └── Dockerfile
└── zipkin
├── build.sh
├── cloud-zipkin-ui-1.0.0.jar
└── Dockerfile

4 directories, 14 files
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
每个目录的Dockerfile内容都是相同的,不同的是build.sh
[root@master config]# cat Dockerfile
FROM java:8

VOLUME /tmp

ADD *.jar app.jar

RUN sh -c 'touch /app.jar'

ENV JAVA_OPTS=""

CMD exec java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar
1
2
3
4
5
6
7
8
9
10
11
12
[root@master config]# cat /root/apps/config/build.sh
docker build -t docker.hbg.io/cdchen/config:1.0.0 /root/apps/config/ && docker push docker.hbg.io/cdchen/config:1.0.0
[root@master eureka]# cat /root/apps/eureka/build.sh
docker build -t docker.hbg.io/cdchen/eureka:1.0.0 /root/apps/eureka && docker push docker.hbg.io/cdchen/eureka:1.0.0
[root@master eureka]# cat /root/apps/simple/build.sh
docker build -t docker.hbg.io/cdchen/simple:1.0.0 /root/apps/simple && docker push  docker.hbg.io/cdchen/simple:1.0.0
[root@master eureka]# cat /root/apps/zipkin/build.sh
docker build -t docker.hbg.io/cdchen/zipkin:1.0.0 /root/apps/zipkin  && docker push docker.hbg.io/cdchen/zipkin:1.0.0
[root@master apps]# cat /root/apps/build_all.sh
./config/build.sh && ./eureka/build.sh && ./simple/build.sh  && ./zipkin/build.sh
1
2
3
4
5
6
7
8
9
10
执行 build_all.sh

3. k8s集群部署

app name镜像portTargetPort
cloud-eureka-serverdocker.hbg.io/cdchen/eureka:1.0.088888888
cloud-config-serverdocker.hbg.io/cdchen/config:1.0.011111111
cloud-simple-serverdocker.hbg.io/cdchen/simple:1.0.080818081
cloud-zipkin-serverdocker.hbg.io/cdchen/zipkin:1.0.090129012
按照 k8s集群部署springcloud 单应用 部署以上应用该项目太过于简单,只有单一service ,以后有机会再尝试更复杂的代码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: