Februar 2022
Autor:in des Beitrags
Arne
IT-Architekt
Veröffentlicht am
16.02.2022 von Arne
Jetzt Blogbeitrag teilen
Xing LinkedIn Facebook Twitter
Guide

Citrix Ingress Controller für Kubernetes

In diesem Blog-Post zeigen wir, wie der CIC im Kubernetes Cluster deployed werden kann und wie die Bereitstellung einer Sample-Webapp inkl. Ingress-Konfiguration und SSL-Offloading durch den ADC funktioniert.

 

Folgende Inhalte erwarten euch im Beitrag:

  • Was ist der Citrix Ingress Controller (CIC)?
  • CIC Deployment – Step by Step
  • Beispiel: Webapp Deployment
  • Ingress-Konfiguration mit SSL-Offloading
  • Code zum Nachmachen

Was ist der Citrix Ingress Controller?

Das Thema Kubernetes ist aus der modernen Anwendungsbereitstellung seit Jahren nicht mehr weg zu denken. Immer mehr Hersteller bieten deswegen Third-Party-Lösungen an.

Auch Citrix setzt auf Kubernetes auf und bietet u.a. eine Integration des Citrix ADC (ehm. NetScaler) als Ingress Device, um über Kubernetes bereitgestellte Anwendungen außerhalb des Clusters verfügbar zu machen.

 

Hierbei bietet der ADC seine bekannten Vorteile wie z.B. sehr hohe Performance, mächtige Layer 7 Funktionalitäten (HTTP Rewrite, Content Switching, Web Application Firewall (WAF), etc.) sowie erweiterte Monitoring- und Logging-Möglichkeiten.

Die Konfiguration des ADC wird dabei nicht händisch, sondern vollautomatisiert durch den Citrix Ingress Controller (CIC) übernommen. Dieser wird als Container innerhalb des Kubernetes Clusters betrieben und konvertiert die Ingress-Definitionen einer Anwendung in Konfigurationen für den Citrix ADC.

Voraussetzungen

    • Kubernetes Cluster (v1.10+) mit Zugriff auf kubectl 
    • Citrix ADC (11.1-61.7+) VPX / MPX  

Neben self-hosted Kubernetes Clustern werden auch managed Lösungen wie z.B. AKS, EKS und GKE unterstützt. 

Weitere Informationen hierzu können den Developer-Docs entnommen werden.

Citrix Ingress Controller Deployment

Citrix bietet mehrere Deployment-Topologien für verschiedene Einsatzzwecke an. Wir verwenden in diesem Fall die Single-Tier Topologie bei der eine VPX oder MPX Appliance als Ingress-Device für den Northd-South-Traffic verwendet wird. Der für die Konfiguration zuständige CIC wird als Standalone Pod deployed. 

1. ADC System-User-Credentials als Secret anlegen

kubectl create secret generic nslogin --from-literal=username='nsroot' --from-literal=password='<pwd>'

2. CIC-Config als YAML-File speichern und NSIP oder SNIP für Management-Zugriff setzen

 

3. CIC auf Kubernetes Cluster deployen 

kubectl apply -f <cic-config-file.yaml>

4. CIC Pod prüfen 

kubectl get pods --all-namespaces -l app=cic-k8s-ingress-controller

Der Status sollte nach Abschluss des Deployments auf „Running“ stehen. 

5. Sollte der Status nach einigen Minuten weiterhin nicht auf „Running“ stehen, können folgende Commands beim Troubleshooting helfen. 

kubectl describe pods --all-namespaces -l app=cic-k8s-ingress-controller
kubectl logs <cic-pod-name>

Stelle dabei vor allem sicher, dass der CIC sich erfolgreich zum mit ADC verbinden kann. 

Beispiel: Webapp-Deployment

Nachdem wir erfolgreich den CIC als Standalone Pod deployed haben, wollen wir eine erste Webapp in unserem Kubernetes Cluster bereitstellen und diese über den Citrix ADC als Ingress Device nach außen veröffentlichen. 

Als Beispiel nutzten wir die Guestbook-Anwendung von Google. Diese besteht aus einem einfachen Frontend sowie einer Redis Datenbank als Backend mit einem Master und mehreren Slaves. 

Im ersten Schritt werden wir die Anwendung im Cluster bereitstellen und mit einer ersten Ingress-Konfiguration nach außen veröffentlichen. 

 

1. Guestbook-Config als YAML-File speichern

2. Annotation für Frontend-VIP definieren

3. Hostname der Anwendung definieren

Der Hostname sollte im DNS auf die Frontend-IP zeigen. 

4. Die komplette Ingress-Definition 

5. Abschließend kann unsere Beispielanwendung nun deployed werden. 

kubectl apply -f <guestbook-config.yaml>

6. Webapp Pods prüfen

kubectl get pods --all-namespaces -l app=guestbook

7. Ingress prüfen

kubectl get ingress guestbook-ingress
kubectl describe ingress guestbook-ingress
kubectl logs <cic-pod-name>

8. ADC Config prüfen 

Auf dem ADC sollte ein neuer CS VServer mit der definierten Frontend-IP konfiguriert sein.  

Die neu angelegte Servicegroup zeigt auf eine der Node-IPs des Kubernetes Clusters 

Die Konfiguration des Routings zwischen ADC und Kubernetes Cluster Nodes geschieht ebenfalls automatisiert. Dies wird durch das Node-Watch-Feature des CICs gesteuert, dass für jede Node des Clusters statische Routen anlegt. 

9. Aufruf der Anwendung im Browser 

10. Sollte es Anpassungen an der Anwendung oder auch dem Ingress geben, muss lediglich der kubectl apply Command erneut ausgeführt werden. Die Konfiguration wird automatisch angepasst. 

Ingress-Konfiguration mit SSL-Offloading

Um für unsere Anwendung SSL-Offloading zu konfigurieren, benötigt es nur wenige Anpassungen an der Ingress-Definition. Voraussetzung hierfür ist ein bereits auf dem ADC angelegtes Server-Zertifikat.  

1. Annotations konfigurieren 

ingress.citrix.com/preconfigured-certkey: '{"certs": [ {"name": "<server-cert>", "type": "default"} ] }' # predefined server certificate

ingress.citrix.com/insecure-termination: redirect # allow = HTTP allowed, redirect = HTTP 2 HTTPS redirect, disallow = HTTPS only

ingress.citrix.com/frontend-sslprofile: "ns_default_ssl_profile_secure_frontend" # predefined frontend SSL profile

Die letzte Annotation für die Konfiguration des SSL-Profils ist optional. Dies muss ebenfalls bereits auf dem ADC angelegt sein. 

2. TLS in der Ingress-Definition aktivieren 

3. Konfiguration aktivieren 

kubectl apply -f <guestbook-config.yaml>

4.

ADC Config prüfen 

Auf dem ADC sollten nun zwei CS VServer konfiguriert sein. Der VServer für Port 80 führt lediglich einen Redirect HTTPS durch. 

Am SSL-VServer sind das definierte Server-Zertifikat und SSL-Profile gebunden. 

Schlusswort

Damit haben wir den Citrix Ingress Controller im Kubernetes Cluster deployed und unsere erste Webapp in nur wenigen Schritten über einen Citrix ADC als Ingress Device sicher nach außen veröffentlicht. 

Der CIC bietet noch viele weitere Anwendungsfälle und Funktionen, die wir Euch gerne in künftigen Blogbeiträgen zeigen.


Hier gibt’s den Code:

Das könnte dich auch interessieren

Blogbeitrag

Echtes Zero Trust im Citrix-Workspace mit deviceTRUST

Conditional Access prüft beim Login, deviceTRUST während der gesamten Citrix-Session: kontinuierlich und kontextbasiert. Wie du deine Citrix-Umgebung zu einem Zero-Trust-Workspace weiterentwickelst, der Security-Anforderungen und Alltag der Fachbereiche zusammenbringt.
Weiterlesen
Blogbeitrag

Secure Boot 2026: Warum Unternehmen jetzt handeln sollten

2026 laufen wichtige Secure-Boot-Zertifikate ab – erfahren Sie, warum Unternehmen ihre Systeme schon heute prüfen und vorbereiten sollten.
Weiterlesen
Blogbeitrag

KI wirtschaftlich einsetzen: Warum der richtige Workflow wichtiger ist als der Prompt

Mit der verbrauchsabhängigen Abrechnung von Microsoft Copilot Cowork wird Wirtschaftlichkeit im KI-Einsatz zur operativen Frage. Der Artikel zeigt, warum nicht der Prompt, sondern vor allem der passende Workflow über Aufwand, Transparenz und Nutzen entscheidet.
Weiterlesen
Blogbeitrag

US-Urteil zur FTC: Handlungsbedarf für Microsoft-Kunden?

Das Urteil des US Supreme Court zur FTC sorgt für neue Fragen rund um das EU-US Data Privacy Framework. Wir ordnen ein, was das für Microsoft 365, Azure und die nächsten Schritte in der Praxis bedeutet.
Weiterlesen
Blogbeitrag

Die neue Infrastrukturkostenkrise

Hardwarepreise steigen, Virtualisierungslizenzen werden teurer, Energiekosten unberechenbarer. Wer jetzt einfach verlängert, trifft eine Entscheidung, ohne neu gerechnet zu haben. Was sich gerade verändert und warum es sich lohnt, die eigene Infrastruktur neu zu bewerten.
Weiterlesen
Provectus Team
Blogbeitrag

25 Jahre Provectus: Eine Reise, die im Biergarten begann 

Christian Jupe und Josef Lang blicken auf 25 Jahre Provectus zurück: von den ersten Ideen im Biergarten über prägende Kundenprojekte bis zur heutigen Vision als Smart-Work- und Business-Partner. Im Interview sprechen sie über Unternehmenskultur, Werte, Wandel und die Zukunft mit KI.
Weiterlesen
Blogbeitrag

Vom Trainee-Programm ins Kundenprojekt: Unser Rückblick auf acht intensive Monate

Unsere Trainees berichten von den ersten Monaten im Provectus-Traineeprogramm, geben Einblicke in Workshops, Lernphasen und den täglichen Einsatz von KI-Tools und zeigen, wie sie auf ihre Rolle als Junior Professionals vorbereitet werden.
Weiterlesen
Webinar

Moderne Apps brauchen moderne Plattformen: Warum der Betrieb über Ihren Erfolg entscheidet

Für alle, die verstehen wollen, warum Cloud-Projekte nicht an der Migration scheitern, sondern im Betrieb. Unternehmen kämpfen mit steigenden Kosten, fehlender Transparenz und neuen Risiken. Der Grund: Cloud ist kein Infrastrukturthema, sondern ein Betriebsmodell mit klaren Anforderungen.
Weiterlesen
Blogbeitrag

Virtual Workplace Evolution 2026

Wir sind dabei und freuen uns auf einen spannenden Austausch zur Transformation von IT Workplaces. Besuchen Sie unseren Vortrag von Danny Kopper, Principal Consultant & Michael Mahlbacher, Leiter Arbeitsplatz bei MLP Finanzberatung SE zum Thema: Microsoft-Lizenzen optimal nutzen
Weiterlesen
Webinar

DORA-konformer Cloud-Betrieb: So setzen Sie Anforderungen praxisnah um

WEBINAR, 18.06: DORA-konformer Cloud-Betrieb praxisnah erklärt: Erfahren Sie im Webinar, wie Finanzunternehmen regulatorische Anforderungen wirksam, prüfbar und dauerhaft im IT-Betrieb umsetzen.
Weiterlesen
Jetzt Blogbeitrag teilen
Xing LinkedIn Facebook Twitter