原生的 etcd-keeper 需要 etcd 开 auth 模式,但是 k8s 的 etcd 如果开启了 auth 是有可能有问题的(亲测有问题),为了观察 etcd 的 kv 所以小改了一下这个项目...,增加了一个 -k8sMode true 的参数,可以允许 etcd-keeper 通过 tls 的模式连接 k8s 的 etcd 集群。...github.com/runzhliu/k8s-etcdkeeper Refer: “etcdctl auth enable” command breaks Kubernetes cluster 从安全的角度谈谈etcd
image.png 我们可以简单看一下 etcd 和 Zookeeper 在定义上有什么不同: etcd is a distributed reliable key-value store for the...etcd 的使用其实非常简单,它对外提供了 gRPC 接口,我们可以通过 Protobuf 和 gRPC 直接对 etcd 中存储的数据进行管理,也可以使用官方提供的 etcdctl 操作存储的数据。...的使用方法,这一小节将逐步介绍几大核心模块的实现原理,包括 etcd 使用 Raft 协议同步各个节点数据的过程以及 etcd 底层存储数据使用的结构。...Raft 在每一个分布式系统中,etcd 往往都扮演了非常重要的地位,由于很多服务配置发现以及配置的信息都存储在 etcd 中,所以整个集群可用性的上限往往就是 etcd 的可用性,而使用 3 ~ 5...个 etcd 节点构成高可用的集群往往都是常规操作。
实战环境的版本信息如下,请确保以下软件都已运行正常: 操作系统 :CentOS Linux release 7.6.1810 Kubernetes:1.13 Go版本:1.12 实际操作的机器可以用kubectl操作k8s...,并且已经安装了Go 1.12版本; 准备工作 下载etcd,地址是:https://github.com/etcd-io/etcd/releases ,选3.3.10版本,如下图: ?...解压后找到etcdctl文件,将其放入$GOPATH\bin目录,记得执行chown命令给予可执行权限; 现在准备工作已经完成,接下来试试etcdctl工具查看etcd数据; 查看etcd数据的实际操作...kubernetes/pki/etcd/healthcheck-client.crt \ --key=/etc/kubernetes/pki/etcd/healthcheck-client.key 查看所有.../registry/configmaps/kube-system/kube-flannel-cfg /registry/configmaps/kube-system/kube-flannel-cfg k8s
k8s实践系列的相关文件都在github:https://github.com/huangguisu/k8s.git etcd分布式键值存储系统,用于保持集群状态,比如Pod、Service等对象信息...因此我们在k8s集群安装之前,先把搭建好etcd集群。...:ETCD支持HTTPS访问,ZK在这方面缺失; 二、安装 1.etcd下载: etcd下载地址:https://github.com/coreos/etcd/releases 下载完成后用 tar.../etcd --config-file= /mnt/app//etcd/conf/etcd.json 3.查看集群成员信息: $ ....recursive=true 六、supervisor启动 ---- 涉及到k8s的所有服务,我都直接使用supervisor来启动: mkdir mkdir /mnt/logs/etcd vi
本文基于 kubernetes 集群介绍 etcd 相关命令,先通过以下命令获取相关信息作为变量: # 获取当前 Master 节点主机名称 host=$(hostname) # 获取 etcd 节点...pod 名称 etcd=$(kubectl get pod -n kube-system | grep 'Running' | grep etcd | head -n 1 | awk '{print...$1}') # 获取 etcd 目录 cert_dir="/etc/kubernetes/pki/etcd" # 以上信息也可以从 /etc/kubernetes/manifests/etcd.yaml.../data/etcd/restore,保存后 etcd 自动重启 2、方式二 cd /etc/kubernetes/manifests # 停止服务 mv etcd.yaml etcd.yaml-b...kube-apiserver.yaml-b # 清除 etcd 数据 mv /data/etcd/member /tmp # 启动服务 mv etcd.yaml-b etcd.yaml &&
etcd内置了metrics接口供收集数据,在etcd集群任意一台节点上可通过ip:2379/metrics检查是否能正常收集数据。...curl -L http://localhost:2379/metrics 2、修改prometheus配置 修改prometheus的配置,增加对etcd的监控配置,配置中指定etcd集群的ip:port...,并指定后端协议类型和配置跳过CA验证 vim prometheus-configmap.yaml - job_name: "etcd" scheme: https tls_config...: ['172.16.1.100:2379','172.16.1.101:2379','172.16.1.110:2379'] 3、检查是否生效 打开prometheus界面,查看target中是否有etcd...至此,prometheus监控etcd完成。
在 K8s 中,kube-apiserver 使用 etcd 对 REST object 资源进行持久化存储,本文介绍如何配置生成自签 https 证书,搭建 etcd 集群给 apiserver 使用...配置 etcd 请求 csr 5. 生成 etcd 证书 6....创建 etcd cluster yaml 文件:https://github.com/k8s-club/etcd-operator 7....查看 etcd 集群状态 9. 验证 etcd 读写 10. 配置 apiserver 请求 csr 11. 生成 apiserver 证书 12....经过验证,是可以直接使用 etcd 证书的,但生产上不建议这样使用。
安装的下载地址为https://github.com/etcd-io/etcd/releases/tag/v3.2.12,找到其中的 etcd-v3.2.12-linux-amd64.tar.gz 在三台机依次解压...etcd vim etcd 内容如下 #[Member] ETCD_NAME="etcd01" ETCD_DATA_DIR="/var/lib/etcd/default.etcd" ETCD_LISTEN_PFER_URLS...ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster" ETCD_INITIAL_CLUSTER_STATE="new" 以上的IP地址根据你自己的IP地址来定。...不同的服务器需要修改 ETCD_NAME,ETCD_LISTEN_PFER_URLS,ETCD_LISTEN_CLIENT_URLS,ETCD_INITIAL_ADVERTISE_PEER_URLS,ETCD_ADVERTISE_CLIENT_URLS...00:00:00 /opt/kubernetes/bin/etcd --name=etcd01 --data-dir=/var/lib/etcd/default.etcd --listen-peer-urls
你好,我是 aoho,今天我和你分享的主题是 etcd Lease:etcd 如何实现租约?...上一篇文章我们介绍了 etcd Watch 实现的机制,今天我们继续分析 etcd 的另一个重要特性:Lease 租约。...它类似 TTL(Time To Live),用于 etcd 客户端与服务端之间进行活性检测。在到达 TTL 时间之前,etcd 服务端不会删除相关租约上绑定的键值对;超过 TTL 时间,则会删除。...Lease 也是 etcd v2 与 v3 版本之间的重要变化之一。etcd v2 版本并没有 Lease 概念,TTL 直接绑定在 key 上面。...etcd Server 会定期从 channel 读取过期的 LeaseID,之后发起 revoke 请求。 那么集群中的其他 etcd 节点是如何删除过期节点的呢?
「K8S 生态周报」内容主要包含我所接触到的 K8S 生态相关的每周值得推荐的一些信息。欢迎订阅知乎专栏「k8s生态」。...4 etcd v3.4.0 正式发布 etcd v3.4.0 已于近日发布,这个版本中包含了大量的更新。...使用 gRPC balancer API 重写了 client v3 的负载均衡实现:当然在这个过程中,将 gRPC 依赖升级到了 v1.23.0 ,同时也修正了一个 Kubernetes 中遇到的 etcd...的问题,详细内容请参考 k/k#72102 ETCDCTL_API=3 etcdctl 和 etcd --enable-v2=false 成为了默认配置; 添加了大量 Metrics 信息; 还有一个重大变化是现在要求...更多关于此版本的信息,请参考 Release Note 5 上游开发进展 kubeadm 默认使用的 CoreDNS 版本已经更新成了 v1.6.2 ,如果你一直都有看我发布的K8S 生态周报的话
在上一篇文章中,我们介绍了K8S集群的整体架构和各角色节点上的组成组件及其作用,在这篇文章中,我们来实际搭建一个K8S集群。...但是,使用这个方式部署的K8S,会将除了kubelet组件之外的其他组件都变成容器化,托管到K8S中。...在之前的文章中,我们只介绍了K8S相关的组件,在生产环境中,仅有K8S还是不够的,还需要有别的必要的软件,比如还需要有私有镜像仓库,用来存储我们的镜像文件。...3、部署ETCD服务 在 10.4.7.12、10.4.7.21、10.4.7.22 上部署ETCD集群,用于K8S存储数据,部署在三台服务器上可以保证高可用,需要注意的是,ETCD服务需要部署奇数个节点...至此,我们的ETCD集群就搭建完毕,接下来,我们将开始正式搭建K8S相关组件, 其他服务的安装,请见下回分解。
K8s 采用的是一种中心化的架构,所有组件都与 APIServer 交互,而 APIServer 则需要将集群元数据持久化到元信息存储系统中。...etcd 并不是一个专门为 K8s 设计的元信息存储系统,其提供的能力是 K8s 所需的能力的超集。...新的元数据存储 过去面对生产环境中 etcd 的性能问题,只能通过按 Resource 拆分存储、etcd 参数调优等手段来进行一定的缓解。...但是面对 K8s 更大范围的应用之后带来的挑战,我们迫切的需要一个更高性能的元数据存储系统作为 etcd 的替代方案,从而能对上层业务有更有力的支撑。...在调研了 K8s 集群的需求以及相关开源项目之后,我们借鉴了 k3s 的开源项目 kine 的思想,设计并实现了基于分布式 KV 存储引擎的高性能 K8s 元数据存储项目—— KubeBrain 。
最近搭建K8S集群遇到ETCD的报错,报错信息如下,一定要关闭防火墙、iptables和SELINUX,两个都要关闭!!...Mar 26 20:39:24 k8s-m1 etcd[6437]: health check for peer 3de62d4888b330ab could not connect: dial tcp...192.168.26.137:2380: connect: no route to host (prober "ROUND_TRIPPER_SNAPSHOT") Mar 26 20:39:24 k8s-m1 etcd...dial tcp 192.168.26.136:2380: i/o timeout (prober "ROUND_TRIPPER_SNAPSHOT") Mar 26 20:39:24 k8s-m1 etcd...dial tcp 192.168.26.136:2380: i/o timeout (prober "ROUND_TRIPPER_RAFT_MESSAGE") Mar 26 20:39:24 k8s-m1 etcd
etcd/etcd.conf 修改内容如下: # [member] ETCD_NAME=master1 #本机的主机名 ETCD_DATA_DIR="/var/lib/etcd/default.etcd..." #etcd的数据存储路径 #ETCD_WAL_DIR="" #ETCD_SNAPSHOT_COUNT="10000" #ETCD_HEARTBEAT_INTERVAL="100" #ETCD_ELECTION_TIMEOUT.../0.0.0.0:2379,http://0.0.0.0:4001" #监听etcd客户端的地址 #ETCD_MAX_SNAPSHOTS="5" #ETCD_MAX_WALS="5" #ETCD_CORS...启动etcd集群 并设置开机启动 systemctl start etcd && systemctl enable etcd python调etcd的接口 安装etcd3的模块 pip install ...etcd3 import etcd3 #往etcd中存数据 client = etcd3.client(host='192.168.133.140') #连接etcd r = client.put
目录 (1).下载 (2).etcd配置文件与启动 1.etcd启动参数说明 2.启动脚本模版 3.启动etcd集群 (3).验证etcd集群 (4).参考资料 一共3台机器。...每台机器部署一个etcd实例:etcd-master1、etcd-master2、etcd-master3。 统一在用户app下操作,这是良好习惯。...(1).下载 下载页面: https://github.com/etcd-io/etcd/releases 选择最新稳定版:3.5.0 wget https://github.com/etcd-io/etcd.../app/3rd ln -s /app/3rd/etcd-v3.5.0/etcd /usr/local/bin/etcd ln -s /app/3rd/etcd-v3.5.0/etcdctl /usr...=http://etcd-master0-ip:2380,etcd-master1=http://etcd-master1-ip:2380,etcd-master2=http://etcd-master2
,在java的技术栈中利用的最多,而在go语言中更多的是使用etcd或者consul,这俩对比,etcd的文档又比consul更齐全。...etcd就能充当一个服务字典的角色,服务上线去往etcd进行注册,etcd与服务之间维持一个心跳,保证服务是否可用。...这类应用场景的使用方式通常是:通过程序写入共享配置信息,其他分布式应用启动的时候主动从etcd获取一次配置信息,同时,应用程序在etcd节点上注册一个Watcher并等待,相当于一个订阅者,只要etcd...; 数据持久化:etcd默认数据一更新就进行持久化; 安全:etcd支持SSL客户端安全认证。...3.etcd架构 etcd分为四个部分: HTTP Server:用于处理用户发送的API请求以及其他etcd节点的同步与心跳请求; Store:用于处理etcd所支持的各类功能的事务,包括 数据索引
虽然可以正常使用,但是就出现了单点故障,今天在修复时出现了etcd健康检查自检没通过。...health check failed. ---- 这时就需要进入容器内部进行手动删除这个etcd了,首先获取集群中的etcd pod列表看一下,并进入内部给一个sh窗口。...-n kube-system | grep etcd [root@master-01 ~]# kubectl exec -it etcd-master-03 sh -n kube-system.../ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key' ## 查看...etcd 集群成员列表 $ etcdctl member list ## 删除 etcd 集群成员 master-02 $ etcdctl member remove ## 再次查看 etcd 集群成员列表
k8s-etcd3:/usr/local/bin# systemctl stop etcd 再到etcd1查看,leader不再是etcd3,会自动重新选举一个新的leader root@k8s-etcd1...deploymentname-Replicasetname-podname 2.service:ipvsadm -Ln 可以查看service的服务映射类型:分为集群内的service和集群外的访问k8s...集群内的service:使用ClusterIP 访问K8S集群外的service: 使用nodePort ,这样可以通过宿主机去访问 2.service:ipvsadm -Ln 可以查看service的服务映射类型...:分为集群内的service和集群外的访问k8s集群内的 service:使用ClusterIP 访问K8S集群外的service: 使用nodePort ,这样可以通过宿主机去访问 ClusterIP...targetPort: 80 protocol: TCP type: ClusterIP 执行创建service: kubectl apply -f service.yaml 查看: 在k8s
etc debug
另外etcd集群的安装方式主要有3种,静态的集群安装(就是预先知道有集群中多少台etcd,在每一台etcd里都配置指向其它的etcd来形成集群)。基于已经存在的etcd利用服务发现机制安装。...创建etcd配置目录 mkdir -p /etc/etcd mkdir -p /opt/sw/etcd/data mkdir -p /var/lib/etcd chown -R etcd:etcd /...etc/etcd chown -R etcd:etcd /opt/sw/etcd chown -R etcd:etcd /var/lib/etcd ?...创建etcd配置文件 这里面会开启etcd的双向ssl认证,不管是etcd集群内部通信还是etcd client和etcd集群通信。.../etcd/etcd.conf chown -R etcd:etcd /etc/etcd cat > /etc/etcd/etcd.conf << EOF #[Member] ETCD_DATA_DIR
领取专属 10元无门槛券
手把手带您无忧上云