Контекст
У меня есть кластер k3s (v1.19.3 + k3s3), и я использую "из коробки" traefik ingress controler
kubectl get svc -n kube-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kube-dns ClusterIP 10.43.0.10 <none> 53/UDP,53/TCP,9153/TCP 5d16h
metrics-server ClusterIP 10.43.127.152 <none> 443/TCP 5d16h
traefik-prometheus ClusterIP 10.43.73.131 <none> 9100/TCP 5d16h
traefik LoadBalancer 10.43.121.125 111.11.11.111 80:32492/TCP,443:31586/TCP 5d16h
kubectl -n kube-system describe svc traefik
Name: traefik
Namespace: kube-system
Labels: app=traefik
app.kubernetes.io/managed-by=Helm
chart=traefik-1.81.0
heritage=Helm
release=traefik
Annotations: meta.helm.sh/release-name: traefik
meta.helm.sh/release-namespace: kube-system
Selector: app=traefik,release=traefik
Type: LoadBalancer
IP: 10.43.121.125
LoadBalancer Ingress: 111.11.11.111
Port: http 80/TCP
TargetPort: http/TCP
NodePort: http 32492/TCP
Endpoints: 10.42.0.6:80
Port: https 443/TCP
TargetPort: https/TCP
NodePort: https 31586/TCP
Endpoints: 10.42.0.6:443
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
Проблема
Я не могу найти, как использовать этот входной контроллер с помощью диаграммы управления (скажем, это призрачная диаграмма). Насколько я понимаю, как работают диаграммы Helm и какую цель они выполняют, Ingress
шаблоны позволяют использовать различные контроллеры входящего трафика. Вот диаграмма ingress.yaml
...
kind: Ingress
metadata:
name: {{ $fullName }}
labels:
{{- include "ghost.labels" . | nindent 4 }}
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: {{ $maxSize }}
{{- with .Values.ingress.annotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
...
Исходя из этого, я бы сказал, что мне нужно отредактировать раздел annotations
в values.yaml
, чтобы использовать traefik вместо kubernetes.io/ingress.class: nginx
по умолчанию.
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: traefik # what should I use?
hosts:
- host: some.domain.io
paths:
- /
tls:
- secretName: chart-example-tls
hosts:
- some.domain.io
Однако, что бы я ни пробовал в annotations
, helm install
продолжаю получать
Error: UPGRADE FAILED: failed to create resource: Internal error occurred: failed calling webhook "validate.nginx.ingress.kubernetes.io": Post "https://ingress-nginx-controller-admission.ingress-nginx.svc:443/networking/v1beta1/ingresses?timeout=10s": service "ingress-nginx-controller-admission" not found
как будто helm, несмотря ни на что, искал контроллер входящего трафика Nginx. Возможно ли это ограничение диаграмм (как эта), или я неправильно понимаю, как работают диаграммы Хельма? Как я могу использовать traefik ingress
по умолчанию в развертывании этой диаграммы?