序
其实使用K3S和traefik反向代理实现是比较麻烦的,至少比docker复杂。。。
因为之前我出了个Linux 安装k3s和helm部署mosdns和pihole服务的教程,大家对K3S有所了解,所以有粉丝想要把反向代理全部放在软路由上,避免SCALE关机的情况。
安装K3S和Helm
安装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
生效
安装Traefik
安装helm traefik repo
helm repo add traefik https://helm.traefik.io/traefik
编辑values.yaml文件
可以到https://raw.githubusercontent.com/traefik/traefik-helm-chart/master/traefik/values.yaml
下载默认的values.yaml
wget https://raw.githubusercontent.com/traefik/traefik-helm-chart/master/traefik/values.yaml
根据自己需求写标签,我这里就用v2.6.6
最新版
allowCrossNamespace: true
这个设置为true,不然只能同一个命名空间反代
端口根据自己需求设置,记得把面板的端口暴露打开
tls设置为true
安装traefik
创建命名空间
k3s kubectl create ns traefik
安装
helm install traefik traefik/traefik -f values.yaml -n traefik
访问http://IP:9000/dashboard/#/
查看面板
设置反代
我们的目标是反代局域网,但其实并没有直接的方式,我看了社区的源代码,是创建了一个空的服务。所以我们直接用社区的
但是我们只能用它创建服务,因为社区的traefik是带中间件的,ingress我们需要根据后面的证书再创建
下载社区的文件
https://github.com/truecharts/catalog.git
下载之后把
这个上传到服务器,把ix_values.yaml
重命名为values.yaml
安装
我这里是反代的op,所以命名空间就叫openwrt
k3s kubectl create ns openwrt
helm install openwrt /root/chart/external-service -n openwrt
查看服务
k3s kubectl get svc -n openwrt
这样就对了
接下来是证书,这个我以前写过教程
kubernetes cert-manager免费签cloudflare证书
只需要把对应的名字改对应该就没问题了