标签: etcd

无法发现泊坞容器

我正在按照本教程进行服务发现http://jasonwilder.com/blog/2014/07/15/docker-service-discovery

简述:

我创建了一个运行在xyzd:4001的etcd主机

docker run -d --name etcd -p 4001:4001 -p 7001:7001 coreos/etcd
Run Code Online (Sandbox Code Playgroud)

在backend_serverip:8000和docker-register创建了一个运行容器的后端服务器

$ docker run -d -p 8000:8000 --name whoami -t jwilder/whoami
$ docker run --name docker-register -d -e HOST_IP=$(hostname --all-ip-addresses | awk '{print $1}') -e ETCD_HOST=x.y.z.d:4001 -v /var/run/docker.sock:/var/run/docker.sock -t jwilder/docker-register
Run Code Online (Sandbox Code Playgroud)

在backend2_serverip:8000和docker-register创建了另一个运行容器的后端服务器

 $ docker run -d -p 8000:8000 --name whoami -t jwilder/whoami
 $ docker run --name docker-register -d -e HOST_IP=$(hostname --all-ip-addresses | awk '{print $1}') -e ETCD_HOST=x.y.z.d:4001 -v /var/run/docker.sock:/var/run/docker.sock -t jwilder/docker-register
Run Code Online (Sandbox Code Playgroud)

创建了一个运行docker-discover和ubuntu映像的客户端

$ docker run -d --net …
Run Code Online (Sandbox Code Playgroud)

registry service-discovery docker etcd

8
推荐指数
1
解决办法
346
查看次数

法兰绒和码头工人没有开始

我正在尝试使用http://severalnines.com/blog/installing-kubernetes-cluster-minions-centos7-manage-pods-services上的指南在2个节点(centos 7.1)上设置kubernetes集群.但是,当我尝试像这样开始使用minion上的服务时:

for SERVICES in kube-proxy kubelet docker flanneld; do
    systemctl restart $SERVICES
    systemctl enable $SERVICES
    systemctl status $SERVICES 
done
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

-- Logs begin at Wed 2015-12-23 13:00:41 UTC, end at Wed 2015-12-23 16:03:54 UTC. --
Dec 23 16:03:47 sc-test2 systemd[1]: docker-storage-setup.service: main process exited, code=exited, status=1/FAILURE
Dec 23 16:03:47 sc-test2 systemd[1]: Failed to start Docker Storage Setup.
-- Subject: Unit docker-storage-setup.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit docker-storage-setup.service has failed.
-- 
-- …
Run Code Online (Sandbox Code Playgroud)

docker etcd kubernetes flannel

8
推荐指数
1
解决办法
1万
查看次数

minikube:无法连接本地部署的nginx服务

我在我的ubuntu 16.04机器上安装了minikube并启动了一个集群,并附带一条消息

"Kubernetes is available at https://192.168.99.100:443"

接下来,我使用以下命令部署了nginx服务

> kubectl.sh run my-nginx --image=nginx --replicas=2 --port=80 --expose

> kubectl.sh get  pods -o wide
NAME                        READY     STATUS    RESTARTS   AGE       NODE
my-nginx-2494149703-8jnh4   1/1       Running   0          13m       127.0.0.1
my-nginx-2494149703-q09be   1/1       Running   0          13m       127.0.0.1

> kubectl.sh get  services -o wide
NAME         CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE       SELECTOR
kubernetes   10.0.0.1     <none>        443/TCP   14m       <none>
my-nginx     10.0.0.83    <none>        80/TCP    13m       run=my-nginx

> kubectl.sh get  nodes -o wide
NAME        STATUS    AGE
127.0.0.1   Ready     16m
Run Code Online (Sandbox Code Playgroud)

问题:

1)节点127.0.0.1是我的本地开发机器吗?这让我最困惑.

2)以下理解是否正确:集群(节点,kubernetes API服务器)具有10.0.0.x中的内部IP地址,其对应的外部IP地址为192.168.99.x. …

docker etcd kubernetes flannel

8
推荐指数
1
解决办法
1万
查看次数

尝试通过前缀删除所有键并重新放入时,在txn请求中给出重复键

尝试coreos/jetcd用于etcd从Java代码更新haproxy设置.

我想要实现的是:

  1. 删除单个主机的所有端点
  2. 为给定的主机添加更新的数据

我想通过前缀删除所有键,并将实际数据作为原子操作放入etcd中.

这就是我尝试使用etcd交易的原因.我的代码是:

Op.DeleteOp deleteOp = Op.delete(
        fromString(prefix),
        DeleteOption.newBuilder().withPrefix(fromString(prefix)).build()
);
Txn tx = kvClient.txn().Else(deleteOp);
newKvs.forEach((k,v) -> {
    tx.Else(Op.put(fromString(k), fromString(v), DEFAULT));
});
try {
    tx.commit().get();
} catch (InterruptedException | ExecutionException e) {
    log.error("ETCD transaction failed", e);
    throw new RuntimeException(e);
}
Run Code Online (Sandbox Code Playgroud)

使用ETCD v3 API(etcd v3.2.9).KVstore最初是空的,我想添加3条记录. prefix价值是:

/proxy-service/hosts/example.com
Run Code Online (Sandbox Code Playgroud)

并且kvs是一张地图:

"/proxy-service/hosts/example.com/FTP/0" -> "localhost:10021"
"/proxy-service/hosts/example.com/HTTPS/0" -> "localhost:10443"
"/proxy-service/hosts/example.com/HTTP/0" -> "localhost:10080"
Run Code Online (Sandbox Code Playgroud)

异常发生在commit().get()以下根本原因:

Caused by: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: etcdserver: duplicate key given in txn request
    at …
Run Code Online (Sandbox Code Playgroud)

etcd etcd3

8
推荐指数
1
解决办法
373
查看次数

如何访问etcd中的kubernetes密钥

如何从etcd获取Kubernetes相关密钥?试图列出etcd中的键,但无法看到相关的键.还在哪里安装了etcdctl?

$ etcdctl
bash: etcdctl: command not found..

$ sudo netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:2379          0.0.0.0:*               LISTEN      386/etcd            
tcp        0      0 127.0.0.1:2380          0.0.0.0:*               LISTEN      386/etcd            

$ curl -s http://localhost:2379/v2/keys | python -m json.tool
{
    "action": "get",
    "node": {
        "dir": true
    }
}
Run Code Online (Sandbox Code Playgroud)

背景

通过使用kubeadm在CentOS 7上创建群集来安装Kubernetes 1.8.5 .当我查看etcd入门时,v2/keys看起来是终点.

etcd kubernetes

8
推荐指数
2
解决办法
1万
查看次数

ConfigMap 数据存储在哪里?

我使用 kubectl 创建了 ConfigMap,我也可以使用以下命令查看它:

kubectl get cm
Run Code Online (Sandbox Code Playgroud)

我只是好奇 kubernetes 在集群中存储这些数据/信息的位置?它是否存储在等中?如果它存储在 etcd 中,我如何查看它?

它是否存储在任何文件/文件夹位置或其他任何地方?

我的意思是 kubernetes 在内部存储它的位置?

etcd kubernetes configmap

7
推荐指数
1
解决办法
3316
查看次数

Kubernetes 对象大小限制

我正在处理 CRD 并创建自定义资源。我需要在自定义资源中保留有关我的应用程序的大量信息。根据官方文档,etcd 最多可处理 1.5MB 的请求。我遇到了类似的错误

“错误”:“请求实体太大:限制为 3145728”

我相信错误中指定的限制是 3MB。对此有何想法?这个问题有什么出路吗?

etcd kubernetes google-kubernetes-engine

7
推荐指数
1
解决办法
5052
查看次数

Redis 与 etcdv3 的性能差异

我正在浏览 Redis 和 Etcd 的基准文档页面。从基准数据来看,Etcd 与 Redis 一样高效。

https://redis.io/topics/benchmarks

https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/performance.md#benchmarks

示例 - 通过 100 个并行客户端设置 100k 个密钥,有效负载 - 256 字节

- on redis : 70K QPS 
- on Etcd : 50k QPS
Run Code Online (Sandbox Code Playgroud)

但我不明白为什么 Etcd 和 Redis 一样高效,还是我的理解有问题?

Etcd 的原因应该是比 Redis 慢很多:

  • Etcd 可能使用 SSD,但 Redis 仍然是内存数据库,因此应该具有更高的性能。
  • Etcd 使用共识(Raft)提供强一致性,并且应该比 Redis 慢。因为Redis不保证一致性。

distributed-system distributed-caching redis etcd

7
推荐指数
0
解决办法
5084
查看次数

尽管 ETCD 使用的是 CP 算法 Raft,但它如何成为一个高可用系统?

这是来自Kubernetes 文档

一致高度可用的键值存储用作 Kubernetes 所有集群数据的后备存储。

Kubernetes 内部是否有单独的机制来使 ETCD 更可用?或者 ETCD 是否使用 Raft 的修改版本来实现这种超能力?

distributed-system cap-theorem raft etcd kubernetes

7
推荐指数
1
解决办法
1566
查看次数

Minikube:远程错误 tls:证书错误

我正在学习 Kubernetes 教程,但无法运行第一个命令 ( minikube start --vm-driver=hyperkit)。我在 macOs Monterey 上使用 MacBook Pro Intel。由于 TLS 错误,我无法使其工作。

\n
$ minikube start --vm-driver=hyperkit\n  minikube v1.25.2 on Darwin 12.2.1\n  Kubernetes 1.23.3 is now available. If you would like to upgrade, specify: --kubernetes-version=v1.23.3\n\xe2\x9c\xa8  Using the hyperkit driver based on existing profile\n  Starting control plane node minikube in cluster minikube\n  Restarting existing hyperkit VM for "minikube" ...\n  Preparing Kubernetes v1.20.2 on Docker 20.10.3 ...\n\xe2\x9d\x8c  Problems detected in etcd [592b8a58065e]:\n    2022-03-19 22:12:03.193985 I | embed: rejected …
Run Code Online (Sandbox Code Playgroud)

macos etcd kubernetes kubectl minikube

7
推荐指数
1
解决办法
4353
查看次数