记录一次KeyDB缓慢的定位过程
环境说明
运行环境
这个问题出现在一套搭建在虚拟机上的Kubernetes 1.18集群上。集群有三个节点:
1 2 3 4 5 |
# kubectl get node -o wide NAME STATUS VERSION INTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME 192.168.104.51 Ready v1.18.3 192.168.104.51 CentOS Linux 7 (Core) 3.10.0-862.3.2.el7.x86_64 docker://19.3.9 192.168.104.72 Ready v1.18.3 192.168.104.72 CentOS Linux 7 (Core) 3.10.0-862.3.2.el7.x86_64 docker://19.3.9 192.168.104.108 Ready v1.18.3 192.168.104.108 CentOS Linux 7 (Core) 3.10.0-862.3.2.el7.x86_64 docker://19.3.9 |
KeyDB配置
KeyDB通过StatefulSet管理,一共有三个实例:
1 2 3 4 5 |
# kubectl -n default get pod -o wide -l app.kubernetes.io/name=keydb NAME READY STATUS RESTARTS IP NODE keydb-0 1/1 Running 0 172.29.2.63 192.168.104.108 keydb-1 1/1 Running 0 172.29.1.69 192.168.104.72 keydb-2 1/1 Running 0 172.29.1.121 192.168.104.51 |
这三个实例:
- 由于反亲和设置,会在每个节点上各运行一个实例
- 启用Active - Active(--active-replica)模式的多主(--multi-master)复制 :每个实例都是另外两个的Slave,每个实…
3 years ago
1
通过ExternalDNS集成外部DNS服务
简介
ExternalDNS项目的目的是,将Kubernetes的Service/Ingress暴露的服务(的DNS记录)同步给外部的DNS Provider。
ExternalDNS的设计思想类似于KubeDNS,都是从多种K8S API资源中推断需要生成的DNS记录。不同之处是…
阅读全文
4 years ago
0
Kubernetes上和DNS相关的问题
Conntrack竞争导致的DNS超时
这是一篇译文,原文地址:Racy conntrack and DNS lookup timeouts
最近出现了很多关于K8S中DNS查找超时的BUG报告,某些情况下Pod发起的DNS查找耗时高达5s甚至更久。在这篇文章中我将解释DNS查找延迟的根本原因,讨论缓和此延迟的途径,以及如何修改内核解决此问题。
背景
在K8S中,Pod访问D…
阅读全文
6 years ago
0
类UNIX系统下使用Dnsmasq
简介
Dnsmasq是一个轻量级的DHCP服务器、DNS缓存服务器。它可以提供本地的DNS服务,把不能解析的请求转交给上级DNS处理。
Dnsmasq可以读取/etc/hosts文件中的条目,来作域名解析。
OS X
安装
可以通过Homebrew安装:
1 |
brew install dnsmasq |
创建配置文件:
1 2 |
mkdir -pv $(brew --prefix)/etc/ touch $(brew --prefix)/etc/dnsmasq.conf |
修改网络配置中的DNS配置,将127.0.0.1放到DNS列表的最前面。
服务化
Ubuntu
安装
通常Ubuntu已经自带了此软件…
阅读全文
9 years ago
0
TCP/IP协议栈学习笔记
名词术语
术语 | 解释 |
bogon |
这个单词从bogus衍生而来,字面意思是伪造的 由于ISP路由过滤、或者恶意软件的原因,Bogon地址的IP数据报可能到达目标机器上,目标机… |
12 years ago
0