job反义词英语(当 xxl-job 遇上 docker → 它晕了,但我不能乱!)
开心一刻
某次住酒店 ,晚上十点多叫了个外卖
过了一阵儿 ,外卖到了
因为酒店电梯要刷卡 ,所以我下楼去接
到了电梯口看到个模样不错的妹纸
我:是你么?
妹纸愣了下:嗯!
于是拉上进电梯回房间 ,正准备开始呢
我俩的电话同时响了
按下接听键 ,一男一女同时问:我到电梯口了 ,你人呢?
尴尬了 ,取错外卖了
然后一起回电梯口 ,四个人一起上电梯 ,电梯里非常尴尬
我:呵呵 ,你的妹纸不错
他:呵呵 ,你也是
前情回顾
在当 xxl-job 遇上 docker → 它晕了 ,我也乱了!,有两个场景没给大家演示 ,先补上
executor 和 admin 在同一台宿主机上通过 docker 部署
这里有必要给大家简单讲一下Docker的bridge网络模式
docker0类似一个交换机 ,它有很多接口,每个接口叫veth ,在宿主机和容器内分别创建一个虚拟接口 ,并让他们彼此联通(这样一对接口叫veth pair)
每个容器实例内部也有一块网卡 ,其接口叫eth0;docker0上面的每个veth匹配某个容器内部的eth0 ,两两配对 ,一一匹配
如此 ,将同个宿主机上的所有容器都连接到同个内部网络上 ,那么这些容器之间的网络是互通的
所以这种情况下 ,xxl-job-admin是可以掉通xxl-admin-executor的 ,因为它们在同一个内部网络上
executor 和 admin 都通过 docker 部署 ,但不在同一个宿主机
上一篇提到了 ,但没告诉大家结果 ,也不知道大家有没有去验证,这里再给大家演示下
从结果来看 ,xxl-job-admin是访问不通xxl-job-executor的 ,想知道为什么吗?
两台宿主机的docker0分别构成了一个内部网络,但这两个内部网络是隔离的 、不通的!
这就好比我的局域网的192.168.1.115访问你的局域网的192.168.1.118 ,你说能访问得通吗?
自动注册
关于自动注册的问题 ,很多小伙伴在上一篇的评论区给出一些解决方案 ,我来给大家试试水
docker compose
xxl-job-admin镜像不需要改动 ,以docker-compose进行编排部署即可 ,docker-compose.yml内容如下
xxl-job-executor需要修改下配置
用服务名替换具体的ip
改完之后重新生成xxl-job-executor的镜像sample-executor-compose:1.2
然后以docker-compose进行编排部署 ,docker-compose.yml内容如下
我们来看下效果
额 ,自动注册好了!你们是不是爱上我了?
etcd + flannel
配置过程就不演示了 ,可参考:docker使用 Flannel(etcd+flannel)网络 、etcd安装和所遇到的坑
当IP情况类似如上所示 ,则说明配置成功了
我们再来看看xxl-job的自动注册
xxl-job-executor自动注册的IP10.10.96.2 ,xxl-job-admin可以正常调度xxl-job-executor
k8s
k8s集群搭建过程不是那么简单 ,但也不是很复杂;搭建好的集群信息如下
在k8s集群部署xxl-job-admin 、xxl-job-executor成功后 ,我们来看下xxl-job的自动注册
如你所见,自动注册是可以正常调度的!
我们再来看下xxl-job-admin 、xxl-job-executor所在节点
sample-xxl-job-admin-56bb76f846-7rnmw在节点docker221
sample-xxl-job-executor-78c4997dd4-562hw在节点docker220
不在同一个节点哦!
总结
1 、三种方式(docker compose 、etcd+flannel 、k8s)选哪一种 ,需要结合具体情况来定
如果想实现简单点 ,那就选docker compose
如果已经使用了k8s,那就用k8s方式就行了
实现方式肯定还有其他的 ,比如etcd + flannel只是属于打通内部网络的一种
2 、环境的搭建 ,楼主都省略了 ,有两点目的
2.1 考虑到篇幅问题 ,如果把搭建环境的详细过程都加进来 ,整篇篇幅就太长了 ,担心你们看的累
2.2 希望大家都去尝试搭建一下 ,受过伤才会刻骨铭心 ,楼主是深有感触
你们不要觉得我坏 ,我就是坏!!!
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!