文档参考:https://metallb.io/installation/
使用 Helm chart 仓库通过Helm安装 MetalLB:https://metallb.github.io/metallb
helm repo add metallb https://metallb.github.io/metallb
helm install metallb metallb/metallb
安装时可以指定一个 values 文件。建议使用此文件在 Helm values 中提供配置:
helm install metallb metallb/metallb -f values.yaml
配置好之后,需要配置IP资源池。
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: default-pool
namespace: metallb
spec:
addresses:
- 192.168.11.200-192.168.11.220
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
name: l2
namespace: metallb
spec:
ipAddressPools:
- default-pool
接着可以安装ingress-traefik。
安装好之后会提示如下信息,告诉我们外部IP。
wanna@k8s-master:~$ kubectl get svc traefik -n traefik -o wide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
traefik LoadBalancer 10.43.251.31 192.168.11.200 80:30913/TCP,443:30754/TCP 8h app.kubernetes.io/instance=traefik-traefik,app.kubernetes.io/name=traefik
接着使用就可以给自己想要的服务Service去配置IngressRoute,注意这里的service的port需要填写的是Service的Port。
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: authentik-http
namespace: authentik
spec:
entryPoints:
- web
routes:
- kind: Rule
match: Host(`ak.xxx.com`)
services:
- name: authentik-server # service名称
port: 80 # service的端口号, 注意不是targetPort
评论