https://blog.csdn.net/lixiang987654321/article/details/88134324

docker部署过程中遇到如下问题:

(1)docker容器创建之后,进入容器会发现容器有多个ip,一个是10.255段的一个是172段的,一个自定义集群的网络10.0.2段的

(2)注册到eureka注册服务中的地址为10.255段的地址

(3)通过网关访问注册到eureka中的服务时候获取到的ip是10.255段网址,是实际上各个服务监听的ip为10.0.2段的端口

(4)网关无法连接到10.255段的服务的端口(可以查看10.0.2段的端口:nc -zv 10.0.2.84 7000)

引起问题的原因:

(1)docker部署服务的时候无法指定容器使用对应网段

(2)服务注册到注册服务的时候使用指定网段注册到注册服务(10.0.2自建网络的网段)

(3)服务运行的时候监听多网卡机器的所有网段

解决方式:

(1)docker运行的容器使用指定网卡(但是实际智能指定ip,而容器运行的ip是随机分配的,当然也可以指定,不过比较复杂)--可行,比较啰嗦,运维所有配置

(2)服务注册的时候使用指定网卡注册到注册服务---可行

(3)springcloud配置的端口,监听ip为0.0.0.0--需要修改源码,不可行

(4)eureka注册的时候使用主机名而不是使用ip--可行但只能部署一个(同一个网络多个hostname相同?有问题!)

方式一

方式二

方式三

忽略网卡(正则)

指定ip(正则)

以下以(2)中解决方式,在注册的时候选择固定的网卡注册注册中心,忽略哪些无法访问的网卡即可

(1)了解springcloud网卡配置

spring-cloud-commons项目为Spring Cloud生态提供了顶层的抽象和基础设施的实现。

网络这个最基本的基础设施也是在这里有对应的实现:InetUtils、InetUtilsProperties和UtilAutoConfiguration提供了网络配置相关的功能。

spring.cloud.inetutils.default-hostname

spring.cloud.inetutils.default-ip-address

spring.cloud.inetutils.ignored-interfaces

spring.cloud.inetutils.preferred-networks

spring.cloud.inetutils.timeout-seconds

spring.cloud.inetutils.use-only-site-local-interfaces

需要解释一下的是ignored-interfaces和preferred-networks这两个配置。这两个配置决定了spring cloud应用在启动的时候所使用的网卡和IP地址。ignored-interfaces接收一个正则表达式数组,配置名字虽然是ignored-interfaces,忽略的网卡,但是因为其接收的是正则表达式,所以我们可以任意的选择和反选本机的网卡。preferred-networks是指倾向于使用的IP地址,接收一个正则表达式数组,用于选择Spring Cloud应用使用的本机的IP地址。通过这两个配置,我们可以任意指定Spring Cloud应用使用的网卡和IP地址。

(2)参数配置

方式一:通过运行环境变量配置

java -jar xxx.jar --spring.cloud.inetutils.ignored-interfaces=

方式二:通过docker传递环境变量配置

--env  spring.cloud.inetutils.ignored-interfaces=eth0

通过application.yml或properties配置文件配置

spring.cloud.inetutils.ignored-interfaces=

spring:

cloud:

inetutils:

ignored-interfaces[0]

docker服务配置实例:

注意

(1)重启机器后mycat不能自己开机启动

(2)重启后需要重新配置svn监听目录

apt-get -y install netcat-openbsd

sudo apt-get install netcat

启动服务

(1)注册中心

dys_register_server: 提供所有服务模块的统一注册

(2)配置中心

dys_config_center: 提供所有服务的统一配置管理

(3)授权中心

dys_auth_center: 提供平台统一的权限校验

(4)系统网关

dys_gateway_server: 提供外网访问系统内网的唯一入口,以及统一鉴权,系统流量控制

(5)区域服务

dys_region_server: 提供区域代码查询服务

(6)人脸后台

dys_face_server: 提供人脸比对和人脸抓拍数据等管理

(7)文件上传

dys_file_server: 提供人脸上传图片存储服务

(8)系统校时

dys_time_server: 提供系统所有模块的时间同步服务

(9)短信服务

dys_sms_server: 提供黑名单比中手机短信发送服务

(10)邮件服务

dys_email_server: 提供黑名单比中电子邮件发送服务

(11)人脸前端

web_face: 提供人脸系统展示资源管理服务

docker service rm eureka1

docker service rm eureka2

docker service rm config

docker service rm auth

docker service rm gateway

docker service rm region

docker service rm face

docker service rm file

docker service rm time

docker service rm email

docker service rm web_face

docker service rm door

docker service rm smart

docker service rm tvwall

docker service rm websocket

docker service rm wifi

docker service rm zfy

docker service rm zipkin

关于网卡设置

忽略指定网卡或符合正则表达式的网卡

--env spring.cloud.inetutils.ignored-interfaces[0]=^eth0 \

优先使用满足指定名或符合正则表达式的网卡

--env spring.cloud.inetutils.preferred-networks[0]=^10\.0 \

注册服务1:

docker service create --with-registry-auth \

--mode replicated \

--replicas 1 \

--name eureka1 \

--network springcloud \

--publish 7002:7002 \

--env spring.profiles.active=eureka1 \

--env spring.cloud.inetutils.preferred-networks[0]=^10\.0 \

images.dondown.com:5000/dys_register_server:latest

注册服务2:

docker service create --with-registry-auth \

--mode replicated \

--replicas 1 \

--name eureka2 \

--network springcloud \

--publish 7003:7003 \

--env spring.profiles.active=eureka2 \

--env spring.cloud.inetutils.preferred-networks[0]=^10\.0 \

images.dondown.com:5000/dys_register_server:latest

配置中心:

docker service create --with-registry-auth \

--mode replicated \

--replicas 1 \

--name config \

--network springcloud \

--publish 7000:7000 \

--env spring.profiles.active=subversion \

--env spring.cloud.inetutils.preferred-networks[0]=^10\.0 \

images.dondown.com:5000/dys_config_center:latest

授权中心:

docker service create --with-registry-auth \

--mode replicated \

--replicas 1 \

--name auth \

--network springcloud \

--publish 7006:7006 \

--env spring.cloud.inetutils.preferred-networks[0]=^10\.0 \

images.dondown.com:5000/dys_auth_center:latest

系统网关:

docker service create --with-registry-auth \

--mode replicated \

--replicas 1 \

--name gateway \

--network springcloud \

--publish 80:80 \

--env spring.cloud.inetutils.preferred-networks[0]=^10\.0 \

images.dondown.com:5000/dys_gateway_server:latest

docker node update --label-add gateway=yes docker113

docker service create --with-registry-auth \

--mode replicated \

--replicas 1 \

--name gateway \

--network springcloud \

--publish 80:80 \

--env spring.cloud.inetutils.preferred-networks[0]=^10\.0 \

--constraint 'node.labels.gateway == yes' \

images.dondown.com:5000/dys_gateway_server:latest

区域服务:

docker service create --with-registry-auth \

--mode replicated \

--replicas 1 \

--name region \

--network springcloud \

--publish 7004:7004 \

--env spring.cloud.inetutils.preferred-networks[0]=^10\.0 \

images.dondown.com:5000/dys_region_server:latest

人脸后台:

docker service create --with-registry-auth \

--mode replicated \

--replicas 1 \

--name face \

--network springcloud \

--publish 7012:7012 \

--env spring.cloud.inetutils.preferred-networks[0]=^10\.0 \

images.dondown.com:5000/dys_face_server:latest

文件管理服务:

docker service create --with-registry-auth \

--mode replicated \

--replicas 1 \

--name file \

--network springcloud \

--publish 7016:7016 \

--env spring.cloud.inetutils.preferred-networks[0]=^10\.0 \

--constraint 'node.labels.type == file' \

images.dondown.com:5000/dys_file_server:latest

平台校时服务:

docker service create --with-registry-auth \

--mode replicated \

--replicas 1 \

--name time \

--network springcloud \

--publish 7013:7013 \

--env spring.cloud.inetutils.preferred-networks[0]=^10\.0 \

images.dondown.com:5000/dys_time_server:latest

短信服务(智能部署在windows):

邮件服务:

docker service create --with-registry-auth \

--mode replicated \

--replicas 1 \

--name email \

--network springcloud \

--publish 7011:7011 \

--env spring.cloud.inetutils.preferred-networks[0]=^10\.0 \

images.dondown.com:5000/dys_email_server:latest

人脸前端资源服务:

docker service create --with-registry-auth \

--mode replicated \

--replicas 1 \

--name web_face \

--network springcloud \

--publish 8080:8080 \

--env spring.cloud.inetutils.preferred-networks[0]=^10\.0 \

images.dondown.com:5000/web_face:latest

车辆大数据服务:

docker service create --with-registry-auth \

--mode replicated \

--replicas 1 \

--name car \

--network springcloud \

--publish 7007:7007 \

--env spring.cloud.inetutils.preferred-networks[0]=^10\.0 \

images.dondown.com:5000/dys_car_server:latest

门禁+视频服务:

docker service create --with-registry-auth \

--mode replicated \

--replicas 1 \

--name door \

--network springcloud \

--publish 7014:7014 \

--env spring.cloud.inetutils.preferred-networks[0]=^10\.0 \

images.dondown.com:5000/dys_door_server:latest

智能分析服务:

docker service create --with-registry-auth \

--mode replicated \

--replicas 1 \

--name smart \

--network springcloud \

--publish 7008:7008 \

--env spring.cloud.inetutils.preferred-networks[0]=^10\.0 \

images.dondown.com:5000/dys_smart_server:latest

电视墙服务:

docker service create --with-registry-auth \

--mode replicated \

--replicas 1 \

--name tvwall \

--network springcloud \

--publish 7009:7009 \

--env spring.cloud.inetutils.preferred-networks[0]=^10\.0 \

images.dondown.com:5000/dys_tvwall_server:latest

消息推送服务:

docker service create --with-registry-auth \

--mode replicated \

--replicas 1 \

--name websocket \

--network springcloud \

--publish 7019:7019 \

--env spring.cloud.inetutils.preferred-networks[0]=^10\.0 \

images.dondown.com:5000/dys_websoket_server:latest

电子围栏服务:

docker service create --with-registry-auth \

--mode replicated \

--replicas 1 \

--name wifi \

--network springcloud \

--publish 7015:7015 \

--env spring.cloud.inetutils.preferred-networks[0]=^10\.0 \

images.dondown.com:5000/dys_wifi_server:latest

移动巡防服务:

docker service create --with-registry-auth \

--mode replicated \

--replicas 1 \

--name zfy \

--network springcloud \

--publish 7017:7017 \

--env spring.cloud.inetutils.preferred-networks[0]=^10\.0 \

images.dondown.com:5000/dys_zfy_server:latest

链路跟踪服务:

docker service create --with-registry-auth \

--mode replicated \

--replicas 1 \

--name zipkin \

--network springcloud \

--publish 7001:7001 \

--env spring.cloud.inetutils.preferred-networks[0]=^10\.0 \

images.dondown.com:5000/dys_zipkin_server:latest
————————————————
版权声明:本文为CSDN博主「贝壳里的沙」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lixiang987654321/article/details/88134324

SpringCloud多网卡配置(转)的更多相关文章

  1. 烂泥:VMWare Workation双网卡配置IP地址

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 前几天给一个客户做远程项目实施,客户那边的服务器是Windows OS的,我们这边的业务 ...

  2. Linux网卡配置及学习linux的注意事项

    一.网卡配置 1.ifconfig网卡信息,配置IP ifconfig eth0 192.168.2.102 2.修改网卡配置(连接不了可能是IP给占用了) 进入编辑界面命令:vi /etc/sysc ...

  3. centos网卡配置和防火墙停止和启动

    Linux 设置网卡配置ip vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ONBOOT=yes BOOTPROTO=static ...

  4. 【转】Ubuntu网卡配置

    一.网卡地址配置Ubuntu的网络配置文件是:/etc/network/interfaces1.以DHCP 方式配置网卡   auto eth0   iface eth0 inet dhcp用sudo ...

  5. Ubuntu 为网卡配置静态IP地址

    为网卡配置静态IP地址编辑文件/etc/network/interfaces:sudo vi /etc/network/interfaces并用下面的行来替换有关eth0的行:# The primar ...

  6. 给网卡配置10个临时ip地址,但是不配置192.168.17.15这个ip

    给网卡配置10个临时ip地址,但是不配置192.168.17.15这个ip #!/bin/bash `;do ];then continue fi ifconfig eth0:$i .$i netma ...

  7. linux学习之centos(三):网卡配置

    Linux系统版本:Centos 6.5 在linux学习之centos(二):虚拟网络三种连接方式和SecureCRT的使用中,使用远程工具SecureCRT,通过“ifconfig eth0 + ...

  8. Cent OS 修改网卡配置

    进入网卡修改界面 vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 描述网卡设备名称 BOOTPROTO=static 静态IP,这里一 ...

  9. Linux网卡配置与绑定

    一定要在服务管理中关闭NetworkManager服务并禁用自动启动. 第一步:先查看下本机网卡,使用命令到network-scripts 下 [root@root~]# cd /etc/syscon ...

随机推荐

  1. react hook的todolist

    感觉好长时间没写博客一样,app.js代码 import React from 'react'; import { useState } from 'react'; function App() { ...

  2. ubuntu 切换默认python版本

    现在的python项目都是基于python3的了,再用ubuntu的时候默认的版本是py2的,所以想切换到py3上: 打开终端: sudo update-alternatives --install ...

  3. [ML] Bayesian Logistic Regression

    简单概率分类 Ref: 逻辑回归与朴素贝叶斯有什么区别? Ref: 机器学习笔记——逻辑回归(对数几率回归)和朴素贝叶斯分类器的对比 首先,搞清楚一个问题. naive bayes 能分类:逻辑回归也 ...

  4. python之selenium多窗口切换

    前提: 在页面操作过程中有时候点击某个链接会弹出新的窗口,这就需要主机切换到新打开的窗口上.WebDriver提供了switch_to.window()方法,可以实现在不同的窗口之间切换. 内容: 以 ...

  5. QFramework 使用指南 2020(五):脚本生成(3)生成 Prefab

    在上一篇,我们简单介绍了 ViewController 的嵌套实现. 在这一篇,我们学习 ViewController 脚本生成的最后一个功能,即:生成 Prefab. 实际上这个功能非常简单. 我们 ...

  6. Unit Testing, Integration Testing and Functional Testing

    转载自:https://codeutopia.net/blog/2015/04/11/what-are-unit-testing-integration-testing-and-functional- ...

  7. 【VS开发】VS2010 MFC中控件、对话框等背景颜色动态修改的方法

    [VS开发]VS2010 MFC中控件.对话框等背景颜色动态修改的方法 标签(空格分隔):[VS开发] 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 说明: ...

  8. IO阻塞模型、IO非阻塞模型、多路复用IO模型

    IO操作主要包括两类: 本地IO 网络IO 本地IO:本地IO是指本地的文件读取等操作,本地IO的优化主要是在操作系统中进行,我们对于本地IO的优化作用十分有限 网络IO:网络IO指的是在进行网络操作 ...

  9. POJ 2195 Going Home 【最小费用最大流】

    题目链接:http://poj.org/problem?id=2195 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions:2715 ...

  10. poj1947(树上分组背包)

    题目链接:https://vjudge.net/problem/POJ-1947 题意:给定一棵树,求得到一个结点数为p最少删多少条边. 思路: 明显的树形dp,分组背包.用dp[u][j]表示在结点 ...