Tag: coreos

如何在Mesos或CoreOS中configurationMariaDB和Redis的高可用性群集

在大多数教程,演示和演示中,只提供通过DNS(SkyDNS,skydock等)或通过反向代理(例如configuration了etcd或ZooKeeper的HAproxy或Vulcand)进行负载平衡的无状态服务。 是否有使用以下方法部署MariaDB和Redis集群的最佳做法: CoreOS +机群+ Docker; 要么 Mesos + Marathon + Docker 任何其他集群pipe理解决scheme 当运行Master的主机可能更改时,如何configurationRedis群集和MariaDB群集(Galera)? https://github.com/sheldonh/coreos-vagrant/tree/master/redis http://www.severalnines.com/blog/how-deploy-galera-cluster-mysql-using-docker-containers

在CoreOS上使用etcd进行服务发现时如何处理陈旧的数据?

我目前正在修补CoreOS并基于它创build一个集群。 到目前为止,在单个主机上使用CoreOS的经验非常stream畅。 但是在服务发现方面,事情会变得有些模糊。 不知何故,我没有得到整体的想法,因此我现在要求在这里寻求帮助。 我想要做的是让两个Docker容器在第一个依赖于第二个容器的位置运行。 如果我们正在谈论纯粹的Docker,我可以使用链接容器来解决这个问题。 到现在为止还挺好。 但是这种方法不能跨越机器边界,因为Docker不能跨多个主机链接容器。 所以我想知道如何做到这一点。 到目前为止,我所了解的是CoreOS关于如何处理这个问题的想法是使用它的etcd服务,它基本上是一个分布式的key-value-store,可以通过端口4001在每台主机上访问,所以你没有作为etcd一个消费者来处理任何networking信息:只要访问localhost:4001就行了。 所以,在我的脑海中,我现在有这样的想法,这意味着,当一个提供服务的Docker启动时,它将本身(即它的IP地址和端口)注册到本地etcd , etcd负责分发信息通过networking。 这样,例如,您可以获得键值对,例如: RedisService => 192.168.3.132:49236 现在,当另一个Docker容器需要访问一个RedisService ,至less在信息分发到networking上的RedisService ,它会从他们自己的本地etcd获取IP地址和端口。 到现在为止还挺好。 但现在我有一个问题,我不能回答,这已经困扰了我几天:当一个服务失败时会发生什么? 谁清理了etcd里面的数据? 如果没有清理,所有客户端都尝试访问不在那里的服务。 我现在所能想到的唯一(可靠的)解决scheme是利用etcd的数据TTLfunction,但这涉及到一个折衷:要么你有很高的networkingstream量,因为你需要发送一个心跳秒,或者你必须忍受陈旧的数据。 两者都不好。 另一方面,我所能想到的“解决scheme”就是在服务失效的时候让服务自行注销,但这只适用于计划中的closures,而不是针对崩溃,权限限制,… 那么,你如何解决这个问题呢?

我如何清理我的docker主机

当我创build/debugging一个docker镜像/容器docker似乎在我的系统上留下各种各样的工件。 (有一次有48张图片限制)但是最后一次我看了20-25张图片; docker images 。 所以总的问题是: 如何正确清理? 因为我手动删除图像更多开始到达。 是吧? 我应该真正分配给主机多less磁盘空间? 运行后台程序真的重新启动后,下一次重新启动? 和元问题…有什么问题没有问我需要?

在CoreOS上运行Kubernetes示例,第1部分不起作用

我试图评估Kubernetes 。 我有意在CoreOS集群上挂载kubernetes,并且官方文档没有太多,只有两个引用到CoreOS的博客; 我目前正在使用指南在CoreOS部分1上运行kubernetes例子 。 我的apiserver.service: [Unit] ConditionFileIsExecutable=/opt/kubernetes/bin/apiserver Description=Kubernetes API Server [Unit] ConditionFileIsExecutable=/opt/kubernetes/bin/controller-manager Description=Kubernetes Controller Manager Documentation=https://github.com/GoogleCloudPlatform/kubernetes [Service] ExecStart=/opt/kubernetes/bin/controller-manager \ –etcd_servers=http://127.0.0.1:4001 \ –master=127.0.0.1:8080 \ –logtostderr=true Restart=on-failure RestartSec=1 [Install] WantedBy=multi-user.target Documentation=https://github.com/GoogleCloudPlatform/kubernetes [Service] ExecStart=/opt/kubernetes/bin/apiserver \ –address=127.0.0.1 \ –port=8080 \ –etcd_servers=http://127.0.0.1:4001 \ –machines=127.0.0.1 \ –logtostderr=true Restart=on-failure RestartSec=1 [Install] WantedBy=multi-user.target 我的controller-manager.service: [Unit] ConditionFileIsExecutable=/opt/kubernetes/bin/controller-manager Description=Kubernetes Controller Manager Documentation=https://github.com/GoogleCloudPlatform/kubernetes [Service] ExecStart=/opt/kubernetes/bin/controller-manager […]

我的kubernetes服务怎么找不到端点?

我在coreos上运行kubernetes集群。 我有一个kubernetes复制控制器工作正常。 它看起来像这样: id: "redis-controller" kind: "ReplicationController" apiVersion: "v1beta3" metadata: name: "rediscontroller" lables: name: "rediscontroller" spec: replicas: 1 selector: name: "rediscontroller" template: metadata: labels: name: "rediscontroller" spec: containers: – name: "rediscontroller" image: "redis:3.0.2" ports: – name: "redisport" hostPort: 6379 containerPort: 6379 protocol: "TCP" 但是我有一个复制控制器的pod服务,如下所示: id: "redis-service" kind: "Service" apiVersion: "v1beta3" metadata: name: "redisservice" spec: ports: […]

如何更新coreos中的docker

我在ec2上inputdocker docker version到新configuration的coreos上,我收到了这个消息 Client version: 0.6.3 Go version (client): go1.1.2 Git commit (client): b0a49a3 Server version: 0.6.3 Git commit (server): b0a49a3 Go version (server): go1.1.2 Last stable version: 0.7.3, please update docker 我如何更新docker?

在coreos群集上链接应用程序服务器docker工具容器和数据库容器

我有一个coreos机器集群。 我在其中一台主机的容器上运行数据库,并在另一台主机的另一个容器上运行应用服务器。 由于两个容器不在同一个主机上,所以我不能真正使用'docker link'命令将这些容器链接在一起,所以我不知道怎么才能真正将Web服务器的IP地址告知Web服务器。

CoreOS是非集群安装的Docker的良好/推荐主机操作系统吗?

我打算尝试一个玩具项目的Docker,因为我在Mac OS X上,我需要在虚拟机上运行它。 我也打算在VPS上部署这个,希望是同一个操作系统。 将CoreOS用作容器主机操作系统是一个好主意,还是应该坚持使用像Ubuntu这样的更受欢迎的发行版? 我真的不打算很快进行集群,所以我想知道CoreOS是否会增加不必要的复杂性。 在我看来,你可以忽略etcd或者只是在本地使用它(如果你想要的话),但是我并不完全确定这一点。

如何检查我的本地泊坞窗图像是否过时,而不从其他地方推送?

我正在Coreos服务器上的docker容器中运行一个反应应用程序。 假设它是从https://hub.docker.com/r/myimages/myapp dockerhub中提取的。 现在我想定期检查应用程序容器的dockerhub图像是否已经更新,看看我在本地运行的图像是否在后面。 与远程图像相比,检查本地泊坞窗图像是否过时最有效的方法是什么? 到目前为止,我发现的所有解决scheme都是bash脚本或推送更新的外部服务。 我想find一个尽可能原生docker解决scheme,并希望避免从其他地方推送通知(以提醒服务器更新的图像)。

装入的卷不会被填充泊坞窗图像内容

我使用Container Linux by CoreOS 1618.0.0 (Ladybug)运行Container Linux by CoreOS 1618.0.0 (Ladybug) 。 与rkt Version: 1.29.0 我创build了一个systemd服务文件来运行docker nagios镜像: [Unit] Description=Nagios Requires=network-online.target local-fs.target After=network-online.target local-fs.target [Install] WantedBy=multi-user.target [Service] Slice=machine.slice ExecStart=/usr/bin/rkt run –port=80-tcp:8018 –insecure-options=image –volume volume-var-log-apache2,kind=host,source=/mnt/storage/nagios/apache2-log –volume volume-usr-share-snmp-mibs,kind=host,source=/mnt/storage/nagios/snmp-mibs –volume volume-opt-nagiosgraph-etc,kind=host,source=/mnt/storage/nagios/nagiosgraph/etc –volume volume-opt-nagiosgraph-var,kind=host,source=/mnt/storage/nagios/nagiosgraph/var –volume volume-opt-nagios-libexec,kind=host,source=/mnt/storage/nagios/nagios/libexec –volume volume-opt-nagios-var,kind=host,source=/mnt/storage/nagios/etc,readOnly=false –volume volume-opt-nagios-etc,kind=host,source=/mnt/storage/nagios/var,readOnly=false –volume volume-opt-custom-nagios-plugins,kind=host,source=/mnt/storage/nagios/custom-plugins docker://jasonrivers/nagios:latest KillMode=mixed Restart=always RestartSec=0 ExecStopPost=/usr/bin/rkt gc –mark-only 现在问题是装入的部分不会被填充相关的图像文件。 […]