- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个生产 DC/OS(v1.8.4) 集群,我正在尝试在其中设置一个 Cassandra 集群。我使用 Marathon(v1.3.0) 来部署 Cassandra 节点。我使用 Cassandra 的官方 Docker 镜像,更具体地说是 2.2.3 版本。
第一个案例:使用HOST模式网络部署Cassandra——一切OK
在这种情况下,我首先部署一个名为 cassasndra-seed 的节点,并将其连接到 IP 为 10.32.0.6 的物理主机。从此服务的 Marathon stdout 日志中,我可以看到“节点/10.32.0.6 状态跳转到正常”,并且 listen_address 和 broadcast_address 设置为 10.32.0.6。如果我在主节点中使用“_cassandra-seed._tcp.marathon.mesos SRV”检查 mesos-dns 记录,我可以看到为此服务解析的 IP 是 10.32.0.6。该节点功能齐全,我设法创建了一个测试数据库。
{
"id": "/cassandra-seed",
"cpus": 1.5,
"mem": 8192,
"disk": 0,
"instances": 1,
"container": {
"type": "DOCKER",
"docker": {
"image": "cassandra:2.2.3",
"network": "HOST",
"ports": [7199,7000,7001,9160,9042],
"requirePorts": true,
"privileged": true
}
},
"constraints": [ ["hostname","UNIQUE"] ],
"env": { "CASSANDRA_CLUSTER_NAME": "democluster" }
}
现在我使用单独的部署再添加一个 cassandra 节点,并提供 10.32.0.6 作为种子(在部署 JSON 的环境部分中设置“CASSANDRA_SEEDS”:“10.32.0.6”)。新节点获取另一个物理主机的 IP(与之前相同的模式)并设法与种子节点进行八卦。因此,我们有一个正常运行的 Cassandra 集群。
{
"id": "/cassandra",
"cpus": 1.5,
"mem": 8192,
"disk": 0,
"instances": 1,
"container": {
"type": "DOCKER",
"docker": {
"image": "cassandra:2.2.3",
"network": "HOST",
"ports": [7199,7000,7001,9160,9042],
"requirePorts": true,
"privileged": true
}
},
"constraints": [ ["hostname","UNIQUE"] ],
"env": {
"CASSANDRA_CLUSTER_NAME": "democluster",
"CASSANDRA_SEEDS": "10.32.0.6"
}
}
案例二:使用 BRIDGE 模式网络部署 Cassandra - 休斯顿,我们遇到了问题
在这种情况下,我还部署了第一个 cassandra-seed 节点,它连接到 IP 为 10.32.0.6 的物理主机。但是,现在在 Marathon 服务的标准输出日志中,我可以看到“Node/172.17.0.2 state jump to normal”并且 listen_address 和 broadcast_address 设置为 172.17.0.2。 172.17.0.2 是 docker 容器的 IP(使用 docker inspect 找到)。但是,如果我在主节点中使用“_cassandra-seed._tcp.marathon.mesos SRV”检查 mesos-dns 记录,我可以看到为此服务解析的 IP 是 10.32.0.6。该节点功能齐全,我设法创建了一个测试数据库。
{
"id": "/cassandra-seed",
"cpus": 1.5,
"mem": 8192,
"disk": 0,
"instances": 1,
"container": {
"type": "DOCKER",
"docker": {
"image": "cassandra:2.2.3",
"network": "BRIDGE",
"portMappings": [
{"containerPort": 7000, "hostPort": 7000, "servicePort": 0 },
{"containerPort": 7001, "hostPort": 7001, "servicePort": 0 },
{"containerPort": 7199, "hostPort": 7199, "servicePort": 0 },
{"containerPort": 9042, "hostPort": 9042, "servicePort": 0 },
{"containerPort": 9160, "hostPort": 9160, "servicePort": 0 },
],
"privileged": true,
}
},
"constraints": [ [ "hostname", "UNIQUE" ] ],
"env": {"CASSANDRA_CLUSTER_NAME": "democluster"}
}
现在,我使用单独的部署并提供 10.32.0.6 作为种子,再添加一个 cassandra 节点。新节点附加到另一台主机并获取他容器的IP(节点/172.17.0.2状态跳转到正常)。结果是新节点无法与种子进行八卦。
{
"id": "/cassandra",
"cpus": 1.5,
"mem": 8192,
"disk": 0,
"instances": 1,
"container": {
"type": "DOCKER",
"docker": {
"image": "cassandra:2.2.3",
"network": "BRIDGE",
"portMappings": [
{"containerPort": 7000, "hostPort": 7000, "servicePort": 0 },
{"containerPort": 7001, "hostPort": 7001, "servicePort": 0 },
{"containerPort": 7199, "hostPort": 7199, "servicePort": 0 },
{"containerPort": 9042, "hostPort": 9042, "servicePort": 0 },
{"containerPort": 9160, "hostPort": 9160, "servicePort": 0 },
],
"privileged": true,
}
},
"constraints": [ [ "hostname", "UNIQUE" ] ],
"env": {
"CASSANDRA_CLUSTER_NAME": "democluster",
"CASSANDRA_SEEDS": "10.32.0.6"
}
}
问题是在第二种情况下我怎样才能让两个节点八卦?为了找到第一个节点,我应该将哪个 IP 作为种子提供给第二个节点? 172.17.0.2 是 docker 容器 IP,第二个节点无法访问。例如,种子节点中的cassandra实例是否可以像主机网络模式一样获取物理主机的IP?
提前致谢!
最佳答案
在桥接网络模式下形成 cassandra 集群时,应注意以下设置。1.设置下面的值给主机IP(不是容器IP)
种子:public_ip广播地址:public_ipBroadcast_rpc_address : public_ip
监听地址:172.17.x.x
3。将 rpc_address 设置为 0.0.0.0(不要使用本地主机)
这样我们实际上可以使用桥接网络形成一个 Cassandra 集群。
试一试。确保外部世界可以访问所需的端口。
关于docker - 如何使用 BRIDGE 网络在 Marathon 中设置 Cassandra Docker 集群?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41586960/
我正在使用以下dockerfile: FROM ubuntu:14.04 MAINTAINER xxx xxx # SSH RUN apt-get update && apt-get install
我运行了docker-compose build celery,(经过数小时的尝试,我的连接不良)成功了。 app Dockerfile的前80%是相同的,但不会重复使用缓存。从我可以浏览的内容来看,
我可以使用以下命令成功创建 Docker 注册表 v2 服务:docker service create 然后我使用 docker Push 将一些图像推送到该服务。 当我通过 curl localh
我正在尝试使用 gitlab 构建 CI,我从 docker 的 docker 镜像开始,我的前端存储库没有任何问题,但现在使用相同的 gitlab-ci 配置文件,我有此守护程序错误。 这是构建的输
用例: 我们在 Jenkins 中有几个“发布作业”build 和 push 应用程序的 Docker 镜像到 docker registry,更新各种文件中的项目版本,最后将发布标签推送到相应的 G
当我尝试构建我的 docker 文件时,docker 返回以下错误: [+] Building 0.0s (1/2)
docker-in-docker 的作者在此博客中建议不要将此图像用于 CI 目的: jpetazzo/Using Docker-in-Docker for your CI or testing en
我创建了一个 Dockerfile 来在 Docker 中运行 Docker: FROM ubuntu:16.04 RUN apt-get update && \ apt-get in
我尝试为 Docker 镜像定位一个特定标签。我怎样才能在命令行上做到这一点?我想避免下载所有图像,然后删除不需要的图像。 在 Ubuntu 官方版本中,https://registry.hub.do
我正在尝试在docker中运行docker。唯一的目的是实验性的,我绝不尝试实现任何功能,我只想检查docker从另一个docker运行时的性能。 我通过Mac上的boot2docker启动docke
docker-compose.yml version: "3" services: daggr: image: "docker.pvt.com/test/daggr:stable"
我有一个非常具体的开发环境用例。在一些代码中,我启动了一个容器来抓取页面并检索在容器中运行的服务(Gitlab)的 token 。 现在,我希望 Dockerize 运行它的代码。具体来说,类似: o
之前已经问过这个问题,但我不确定当时是否可以使用docker-compose文件完成docker堆栈部署。 由于最新版本支持使用compose将服务部署到堆栈,因此,我无法理解dab文件的值。 我检查
我在一次采访中被问到这个问题,但无法回答。也没有找到任何相关信息。 最佳答案 正如 Docker 文档中所述,Docker 注册表是: [...] a hosted service containin
有没有一种方法可以将具有给定扩展名的所有文件复制到Docker中的主机?就像是 docker cp container_name:path/to/file/in/docker/*.png path/o
我的日志驱动程序设置为journald。使用日志记录驱动程序时,daemon.json文件中的日志级别配置会影响日志吗?使用docker logs 时仅会影响容器日志? 例如,docker和journ
我最近开始使用Docker + Celery。我还共享了full sample codes for this example on github,以下是其中的一些代码段,以帮助解释我的观点。 就上下文
运行docker build .命令后,尝试提交构建的镜像,但收到以下错误 Step 12 : CMD activator run ---> Using cache ---> efc82ff1ca
我们有docker-compose.yml,其中包含Kafka,zookeeper和schema registry的配置 当我们启动docker compose时,出现以下错误 docker-comp
我是Docker的新手。是否可以在Docker Hub外部建立Docker基本镜像存储库?假设将它们存储在您的云中,而不是拥有DH帐户?谢谢。 最佳答案 您可以根据需要托管自己的注册表。可以在Depl
我是一名优秀的程序员,十分优秀!