博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
marathon-lb使用实践
阅读量:7183 次
发布时间:2019-06-29

本文共 1794 字,大约阅读时间需要 5 分钟。

hot3.png

在使用marathon发布程序时经常发现端lb上的端口号不是自己想发布的,而是一个随机端口。

仔细研究了下marathon-lb的端口机制,发现servicePort才是真正在lb上对外释放的端口。

如下端口的配置意思是容器内,程序监听的容器端口是30590,在lb上对外释放50000端口,主机上对应桥接端口是30010(也可以是其他端口,或随机端口,随机端口填0),VIP_0这个地方端口号要与容器内的端口号一致,其主要作用是的配合lb做负载均衡时使用,让用户可以再mesos集群外部通过访问lb的50000端口可以访问到容器内的30590的服务。

 

"portMappings": [      {        "containerPort": 30590,        "hostPort": 30010,        "labels": {          "VIP_0": "/api:30590"        },        "protocol": "tcp",        "servicePort": 50000,        "name": "api"      }    ],

 

VIP包含3个部分:

  • Private virtual IP address -----容器自动分配的内部地址
  • Port (a port which the service is available on)------这也就是说该端口必须与容器内端口一致才能有效访问到服务
  • Service name 

api即一个service endpoint, 在DC/OS集群里面(包含master节点)里面可以使用VIP地址(命名约定):api..marathon.l4lb.thisdcos.directory:30590来访问该服务。如果配置了VIP,marathon-lb则直接使用该VIP来实现对各个instance之间的负载均衡。

 

网络采用bridge模式:

"networks": [    {      "mode": "container/bridge"    }  ],

 

如果需要发布端口到marathon-lb上,标签的配置不能缺少,如果缺少标签配置,则不会发布端口到lb

 

 "labels":{    "HAPROXY_GROUP":"external"  }

这个group有2个选项: external, internal,取决于将lb用于外部还是内部,或者2个都配置,用逗号隔开,同时用于内部和外部。

另外需要注意的是marathon的app没有完成部署(即非running状态),对外的端口是不会发布到lbs上的。

总而言之,servicePort和label 2个配置一起完成lb的配置。

如果需要对HTTP请求做更多的头部设置可以在每个应用的labels里面的相应字段添加相关信息:

如:

"labels":{        "HAPROXY_GROUP":"external",        "HAPROXY_0_BACKEND_HTTP_OPTIONS":"  option forwardfor\n  no option http-keep-alive\n      http-request set-header X-Forwarded-Port %[dst_port]\n  http-request add-header X-Forwarded-Proto https if { ssl_fc }\n"      }

 

"labels":{      "HAPROXY_0_STICKY":true,      "HAPROXY_0_REDIRECT_TO_HTTPS":true,      "HAPROXY_0_VHOST":"nginx.mesosphere.com"    }
"labels":{      "HAPROXY_0_VHOST":"nginx.mesosphere.com",      "HAPROXY_0_SSL_CERT":"/etc/ssl/certs/nginx.mesosphere.com"    }

 

转载于:https://my.oschina.net/u/2449787/blog/1628014

你可能感兴趣的文章
LVS-DR工作原理图文详解
查看>>
PPT演讲10大准备技巧
查看>>
linux连接数检查
查看>>
水火交融-Windows上的Linux容器
查看>>
Linux调优方案,sysctl.conf的设置
查看>>
dnsmasq 小巧且方便地用于配置DNS和DHCP的工具
查看>>
日期控件
查看>>
有关缓存,缓存算法,缓存框架
查看>>
Redhat6 安装mysql
查看>>
python利用本地保存cookies文件登录调取api
查看>>
OpenSSL生成根证书CA及签发子证书
查看>>
MySql远程连接的设置问题
查看>>
[swift3.0]-集成环信大文件问题
查看>>
数学之美笔记(十四)
查看>>
今天你云同步了吗
查看>>
iscsi_target
查看>>
应对 win2003server 服务自动关闭的方案
查看>>
错误:Forefront TMG管理无法连接到配置存储服务器
查看>>
Java多线程——非原子64位操作(long,double)
查看>>
Maver使用外部的jar 包问题
查看>>