Loading... [ ](https://www.bilibili.com/video/BV1hR4y1A7S4/) # 序 前一段时间,我把我的软路由重新弄了一下,以前的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](https://github.com/Sagit-chu/charts)把它下载解压,把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`来解决。 最后修改:2022 年 06 月 02 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 2 如果觉得我的文章对你有用,请随意赞赏
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 可以正常打开设置使用。 这是个什么道理呢?⌇●﹏●⌇
加群问吧,这样我也不知道你怎么设置的