搭建及使用K8s集羣 [k8s 集羣部署springcloud 多應用]

#k8s 集羣部署springcloud 多應用

單應用能夠順利部署,加上k8s dns能夠解析,那多應用就很簡單了,如果前兩步不成功的可以參考我前幾篇博客 http://blog.csdn.net/JustHaveTry/article/details/78248436
注:應用源碼地址 https://github.com/passionday/spring-cloud-vue

目錄

[TOC]來生成目錄:

  • 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 打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

每個目錄的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
[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 

執行 build_all.sh

3. k8s集羣部署

| app name | 鏡像 | port |TargetPort |
| :-------- | --------😐 :–: |
| cloud-eureka-server | docker.hbg.io/cdchen/eureka:1.0.0 | 8888 |8888
| cloud-config-server | docker.hbg.io/cdchen/config:1.0.0 | 1111 |1111
| cloud-simple-server | docker.hbg.io/cdchen/simple:1.0.0 | 8081 |8081
| cloud-zipkin-server | docker.hbg.io/cdchen/zipkin:1.0.0 | 9012 |9012

按照 k8s集羣部署springcloud 單應用 部署以上應用

該項目太過於簡單,只有單一service ,以後有機會再嘗試更復雜的代碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章