Tag: etcd

如何在一个docker容器中运行etcd之后启动一个python脚本?

我build立了一个由python2.7-alpine和etcd( https://hub.docker.com/r/elcolio/etcd/ )组成的docker文件,我试图在etcd运行之后运行一个python脚本(从相同的容器),但是我得到连接错误,因为etcd还没有结束。 有什么build议么? (我试图在上一个CMD之后创build另一个CMD,并且将exec命令放入run.sh) FROM python:2.7-alpine RUN pip install python-etcd # Create script directory RUN mkdir -p /usr/src/app WORKDIR /usr/src/app COPY ./scripts /usr/src/app ## install etcd RUN apk add –update ca-certificates openssl tar && \ wget https://github.com/coreos/etcd/releases/download/v2.0.10/etcd-v2.0.10-linux-amd64.tar.gz && \ tar xzvf etcd-v2.0.10-linux-amd64.tar.gz && \ mv etcd-v2.0.10-linux-amd64/etcd* /bin/ && \ apk del –purge tar openssl […]

为什么kubernetes-scheduler和controller-manager在etcd master(三个节点)

我build立了一个有三个节点的主集群(k8s)。 但是有两个问题: etcd在每个节点上login报告两个警告:(1)。 申请条目花费时间太长[11.167451ms for 1 entries](2)。 没有及时发出心跳我可能知道这是从谷歌磁盘太慢,但我无法解决它 API服务器或Kubernetes-sheduler或Controller-Manager依赖etcd,有时启动时不能启动或停止(日志可能报告etcd服务器超时) 你可以帮我吗?

在Docker中为每个容器生成唯一的名称/ ID,用于Rancher堆栈

我正在尝试在Rancher中build立一个HA Etcd堆栈,它将使用我根据官方文档创build的discovery URL从另一个Etcd堆栈自我引导。 如果我只想要一个节点,这是有效的,但是如果我想要一个3或5的HA堆栈,例如,节点使用相同的名称在发现端点上注册自己。 因此无论哪个容器首先启动,都可以在端点上注册,但所有的容器都不能。 如何在值为ETCD_NAME -compose.yml中生成唯一的名称? 泊坞窗,compose.yml version: '2' services: etcd-ha: image: private.registry.example.com/etcd/etcd:v2.3.8 environment: ETCD_LISTEN_CLIENT_URLS: http://0.0.0.0:2479,http://0.0.0.0:4001 ETCD_LISTEN_PEER_URLS: http://0.0.0.0:2380 ETCD_NAME: etcd_${UID} // THIS NEEDS TO BE UNIQUE PER NODE ETCD_DISCOVERY: http://discovery.etcd.example.com/v2/keys/_etcd/registry/etcdbootstrap labels: io.rancher.container.pull_image: always 牧场主,compose.yml version: '2' services: etcd-ha: scale: 1 start_on_create: true 为什么我不指定差异服务? 比方说,我指定了3个不同名称的服务,但下个星期我想要5 – 我将不得不改变撰写文件; 我也会被限制在相同的因子下。

CoreOS和Digital Ocean中的Docker0接口

CoreOS中创build的虚拟networking如何? 我正在运行一些以前的代码,但现在我无法连接到我的容器中的ETCD集群。 在我的主机上,我完全错过了docker0接口。 CoreOS不提供docker network命令。 这是CoreOS内的一些东西还是我缺less的设置? 我应该如何去debugging呢?

Docker容器不会以systemctl开头

我刚刚开始检查coreos 我已经尝试设置redis和mysql docker实例,但没有多大成功。 我最初希望所有的东西都可以开箱即用,但似乎并非如此。 所以基于这个关于 coreos网站systemd的文档 ,我决定尝试这个来启动我的docker instace cd /etc/systemd/system sudo systemctl enable redis.service $ sudo systemctl start redis.service 这没有奏效。 我使用docker事件来跟踪它的初始化 docker event & 我不知道我可能错过了什么.. 这是我的云configuration文件 #cloud-config hostname: user1 # include one or more SSH public keys ssh_authorized_keys: – ssh-rsa…. users: – name: user2 passwd: temp123 groups: – sudo – docker ssh-authorized-keys: – ssh-rsa…. coreos: […]

unbuntu群集设置后无法Ping一个Pod

我遵循最近的指令(更新于15年5月7日)在ubuntu **中用etcd和flanneld设置集群。 但是我在networking上遇到了麻烦,似乎处于某种破裂的状态。 **注:我更新了configuration脚本,以便它安装0.16.2。 另外一个kubectl get minions没有返回任何开始,但一个sudo service kube-controller-manager restart他们出现了。 这是我的设置: | ServerName | Public IP | Private IP | —————————————— | KubeMaster | 107.xx32 | 10.xx54 | | KubeNode1 | 104.xx49 | 10.xx55 | | KubeNode2 | 198.xx39 | 10.xx241 | | KubeNode3 | 104.xx52 | 10.xx190 | | MongoDev1 | 162.xx132 | 10.xx59 […]

在启动时pipe理容器依赖关系

我有以下设置: PostgreSQL的 为它飞行 应用 我需要按照以下方式链接它们:Flyway等待DB启动,App等待飞行路线完成迁移。 我想过使用etcd来发布一些密钥,其他容器等待它们。 所以,基本上,每个容器的入口点应该是这样的: #!/bin/bash status=1 while $status != 0; do for kv in $DEPENDENT_KEYS: # curl to etcd, get the key if $value == true then status = 0; else status = 1; fi; done; # container-related startup # post to etcd that container is ready # get back to _container-related […]

Kubernetes 1.2.2:api-server失败:在etcd上找不到已安装的TLS证书

我一直在努力让api-server 1.2.2运行与TLS安全的etcd 。 我正在从1.1.2升级到1.2.2 在1.1.2我使用了–etcd-config标志,并有一个如下所示的文件: { "cluster": { "machines": [ "https://XXX.XXX.XXX.XXX:2379", "https://XXX.XXX.XXX.XXY:2379", "https://XXX.XXX.XXX.XXZ:2379" ] }, "config": { "certFile": "/etc/ssl/etcd/etcd-peer.cert.pem", "keyFile": "/etc/ssl/etcd/private/etcd-peer.key.pem", "caCertFiles": [ "/etc/ssl/etcd/ca-chain.cert.pem" ], "consistency": "STRONG_CONSISTENCY" } } 现在不再支持,我切换到使用标志: –etcd-cafile="/etc/ssl/etcd/ca-chain.cert.pem" –etcd-certfile="/etc/ssl/etcd/etcd-peer.cert.pem" –etcd-keyfile="/etc/ssl/etcd/private/etcd-peer.key.pem" –etcd-servers="https://XXX.XXX.XXX.XXX:2379, https://XXX.XXX.XXX.XXY:2379,https://XXX.XXX.XXX.XXZ:2379" 现在我得到这个错误: F0421 00:54:40.133777 1 server.go:291] Invalid storage version or misconfigured etcd: open "/etc/ssl/etcd/etcd-peer<nodeIP>.cert.pem": no such file or directory 所以,它似乎无法find证书文件。 文件path和名称与以前一样,并且使用hostPath以与hostPath完全相同的方式装载它们,所以我不明白为什么api-server不会find它们。 […]

etcd3 docker坚持发现信息

我想用Docker部署一个3节点的ETC集群。 所以我使用一个dicoveryurl来达到这个目的。 我遇到的问题是,当我删除一个etcd容器,并开始一个新的,那么它不能重新join到集群。 Docker日志说:成员“XXX”以前注册了发现服务令牌( https://discovery.etcd.io/yyyy )但是etcd在给定的数据目录(/ data)中找不到有效的群集configuration。 我正在使用文件夹/数据卷和/ waldir也使用–net =主机,所以它总是使用相同的主机IP。 但为什么新的容器不能重新join集群? 集群信息保存在容器内部的位置? 帮助将不胜感激。 谢谢。

docker上的领事群集自动引导

我正在开发像etcd和consul这样的confpipe理工具。 据我所知etcd有发现机制。 我想知道领事是否有这样的事情? 我正在进行官方的领事docker形象,当我设置广告IP和joinIP的没有问题,但我不想这样做手动。 docker集装箱的IP可能会改变或一些节点可能会崩溃,你需要新的节点来取代它。 像这样的情况我怎么能pipe理? 我的意思是有没有可能join集群,而不知道集群中节点的Ip?