序
前一段时间,我把我的软路由重新弄了一下,以前的DNS服务器是放在我的NAS里面的,现在把它们放在软路由里,虚拟了一个Debian,安装了K3S和Helm。
那么就有人问了,为啥不用docker呢?反而用K3S这个复杂的东西,这就涉及kubernetes的优点了。
首先,是稳定性,K8S(kubernetes的缩写,K3S是K8S的简化版)的稳定性应该没啥好说的,YYDS!
其次,K8S可以滚动升级,升级的时候应用不停机(几乎没有中断)
最后,我觉得最重要的是,K8S可以检测应用容器是否健康,不健康会自动重启,然后还可以版本回退,虽然docker也有健康检测,但是docker检测的方法太少,太局限
其实,我一开始是嫌麻烦用的docker和docker-compose部署的,但是有点强迫症,怕应用崩溃,毕竟DNS服务是挺重要的,过了一天才换成的K3S
安装K3S
安装系统我就不多说了,我用的是esxi虚拟的Debian,应该只要是Linux都兼容K3S的
安装K3S
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - --disable traefik --disable traefik-crd --disable metrics-server
这里我禁用了traefik和指标服务,这两个用不到,如果要用traefik的话,也可以后面自己安装
安装Helm
Helm是一个k8s的包管理器,它可以非常方面的安装K8S应用,安了这个就可以一键部署我写好的应用了!
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
因为K3S的配置文件地址和K8S不一样,helm默认找不到,所以我们需要修改一下环境变量
nano /etc/profile
写入
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
然后按Ctrl + X 按Y保存退出
然后输入source /etc/profile
生效
下载文件
我已经把我写好的配置放到了github把它下载解压,把charts目录上传到你的Linux上
可以看到我写了三个应用,ddns-go,pihole,mosdns
如果你要修改默认的配置文件,就修改value.yaml
mosdns的默认配置是:映射了5353端口,使用内存挂载配置文件,这样查询分流应该是最快。
pihole:访问端口为80,DNS服务端口为53,使用PVC挂载配置文件,需要修改默认的密码。
ddns-go:访问端口为9876,使用主机网络(这样如果你有ipv6也可以获取到),使用PVC挂载配置文件。
安装命令
我就写一个应用的命令,其他都是一样的,我这里假设安装的是pihole
创建pihole的命名空间
k3s kubectl create ns pihole
安装pihole
helm install pihole /mnt/charts/pihole -n pihole
helm install
:是安装命令pihole
:起一个名字/mnt/charts/pihole
pihole所在的文件夹(右击复制路径)
-n pihole
指定命名空间
卸载
helm uninstall pihole -n pihole
卸载只需要写名字和命名空间就行
升级
这里的升级是指你想要修改value.yaml,使其生效
helm upgrade pihole /mnt/charts/pihole -f /mnt/charts/pihole/values.yaml -n pihole
和安装是差不多的,只不过要指定一下你的value.yaml,这里就是-f /mnt/charts/pihole/values.yaml
UDP Receive Buffer Size
使用DoQ时,会出现failed to sufficiently increase receive buffer size (was: 120 kiB, wanted: 2048 kiB, got: 240 kiB)
的错误。
有sysctl的情况下,用
sysctl -w net.core.rmem_max=2500000
没有sysctl,用
echo 2500000 > /proc/sys/net/core/rmem_max
来解决。
6 条评论
安装K3S那条命令打了之后没反应是怎么回事?
geoip不用更新了吗?
.......怎么回事,不是显示评论被屏蔽了吗(/ω\) 改了多版都出来了
。。。
Debian10/11安装后, ros中的DNS Servers填写pihole IP用于DNS解析,重新引导ESXI后pihole 无法正常启用(pihole 服务无法使用,pihole ip 无法打开pihole 进行设置); ros中的DNS Servers填写其他DNS(如:114.114.114.114)重新引导ESXI后pihole 可以正常打开设置使用。 这是个什么道理呢?⌇●﹏●⌇
加群问吧,这样我也不知道你怎么设置的