Benutzer-Werkzeuge

Webseiten-Werkzeuge


it-wiki:kubernetes:ingress-traefik-loadbalancer

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
it-wiki:kubernetes:ingress-traefik-loadbalancer [2025/02/19 13:17] – angelegt markoit-wiki:kubernetes:ingress-traefik-loadbalancer [2025/05/14 08:42] (aktuell) – [Trouble Shooting] marko
Zeile 217: Zeile 217:
 And yes, this is really NOT A GOOD IDEA… And yes, this is really NOT A GOOD IDEA…
  
 +\\
 +===== Ingress zusammen mit dem cert-manager =====
 +Um ein für Ingress benötigtes TLS-Zertifikat mit dem cert-manager automatisch zu erstellen, muss zunächst ein Issuer oder ClusterIssuer definiert werden. Der cert-manager stellt die Zertifikate basierend auf diesen Issuers aus.
  
 +Beispiel für einen ClusterIssuer mit Let's Encrypt:
  
 +<code bash>
 +apiVersion: cert-manager.io/v1
 +kind: ClusterIssuer
 +metadata:
 +  name: letsencrypt-prod
 +spec:
 +  acme:
 +    server: https://acme-v02.api.letsencrypt.org/directory
 +    email: your-email@example.com
 +    privateKeySecretRef:
 +      name: letsencrypt-prod
 +    solvers:
 +      - http01:
 +          ingress:
 +            class: nginx
 +</code>
 +
 +Sobald der ClusterIssuer vorhanden ist, kann die Ingress-Ressource so konfiguriert werden, dass sie automatisch ein Zertifikat anfordert, indem die entsprechenden Annotationen hinzugefügt werden:
 +
 +<code bash>
 +apiVersion: networking.k8s.io/v1
 +kind: Ingress
 +metadata:
 +  name: example-ingress
 +  annotations:
 +    cert-manager.io/cluster-issuer: "letsencrypt-prod"
 +spec:
 +  ingressClassName: nginx
 +  tls:
 +  - hosts:
 +    - example.com
 +    secretName: example-tls  # cert-manager speichert das Zertifikat in diesem Kubernetes-Secret
 +  rules:
 +  - host: example.com
 +    http:
 +      paths:
 +      - path: /
 +        pathType: Prefix
 +        backend:
 +          service:
 +            name: example-service
 +            port:
 +              number: 80
 +</code>
 +
 +Dank der Annotation `cert-manager.io/cluster-issuer: "letsencrypt-prod"` erkennt der cert-manager automatisch, dass ein TLS-Zertifikat benötigt wird. Er erstellt daraufhin eine `Certificate`-Ressource und kümmert sich um die Ausstellung und Erneuerung des Zertifikats. Das Zertifikat wird im angegebenen Secret (`example-tls`) gespeichert und vom Ingress-Controller für HTTPS verwendet.
 +
 +\\
 ===== Trouble Shooting ===== ===== Trouble Shooting =====
 Um Traefik-Ingresse in ArgoCD nicht dauerhaft als "Progressing" angezeigt zu bekommen, folgende Values im Traefik Helm Chart setzen: Um Traefik-Ingresse in ArgoCD nicht dauerhaft als "Progressing" angezeigt zu bekommen, folgende Values im Traefik Helm Chart setzen:
Zeile 225: Zeile 277:
   - "--providers.kubernetesingress.ingressendpoint.publishedservice=traefik-system/traefik"   - "--providers.kubernetesingress.ingressendpoint.publishedservice=traefik-system/traefik"
 </code> </code>
 +\\
 +
 +===== Annotations =====
 +https://doc.traefik.io/traefik/routing/providers/kubernetes-ingress/
 +==== Service Annotation ====
 +<code yaml>traefik.ingress.kubernetes.io/service.nativelb: "true"</code>
 +
 +<note>Steuert beim Erstellen des Load Balancers, ob die untergeordneten Elemente des Load Balancers direkt die IP-Adressen der Pods sind oder ob das einzige untergeordnete Element die Cluster-IP des Kubernetes-Dienstes ist. Der Kubernetes-Dienst selbst führt den Load Balancer auf die Pods aus. Beachten Sie, dass Traefik standardmäßig die bestehenden Verbindungen zu den Backends aus Performancegründen wiederverwendet. Dies kann dazu führen, dass der Load Balancer der Anfragen zwischen den Replikaten nicht wie erwartet funktioniert, wenn die Option aktiviert ist. Standardmäßig ist NativeLB auf „false“ eingestellt.</note>
it-wiki/kubernetes/ingress-traefik-loadbalancer.1739971063.txt.gz · Zuletzt geändert: von marko