Citrix ADC Ingress Controller

Konfigurieren Sie HTTP-, TCP- oder SSL-Profile auf Citrix ADC

Konfigurationen wie HTTP, TCP oder SSL für eine Citrix ADC Appliance können mit einzelnen Entitäten wie dem HTTP-Profil, TCP-Profiloder SSL-Profil angegeben werden. Das Profil ist eine Sammlung von Einstellungen, die sich auf die einzelnen Protokolle beziehen, zum Beispiel ist das HTTP-Profil eine Sammlung von HTTP-Einstellungen. Es bietet eine einfache Konfiguration und Flexibilität. Anstatt die Einstellungen für jede Entität zu konfigurieren, können Sie sie in einem Profil konfigurieren und das Profil an alle Entitäten binden, für die die Einstellungen gelten.

Mit dem Citrix Ingress Controller können Sie die HTTP-, TCP- oder SSL-bezogene Konfiguration auf dem Ingress Citrix ADC mithilfe von Profilen konfigurieren.

Verstehen der Citrix ADC-Konfiguration in der Kubernetes-Umgebung

In einer Kubernetes-Umgebung verwendet der Ingress Citrix ADC den virtuellen Content Switching (CS) -Server als Front-End für externen Datenverkehr. Das heißt, es ist das Unternehmen, das die Anfragen des Kunden erhält. Nach der Verarbeitung der Anforderung übergibt der virtuelle CS-Server die Anforderungsdaten an eine Lastausgleichseinheit (LB) . Der virtuelle LB-Server und die zugehörige Dienstgruppe verarbeiten die Anforderungsdaten und leiten sie dann an die entsprechende App (Microservice) weiter.

Sie benötigen eine separate front end configuration für die Entitäten, die den Datenverkehr vom Client empfangen (wie Client Plane im Diagramm hervorgehoben) und eine back end configuration für die Entitäten, die den Datenverkehr vom Citrix ADC an die Microservices in Kubernetes weiterleiten (wie Server Plane im Diagramm hervorgehoben).

Citrix ADC-Konfiguration

Der Citrix Ingress Controller bietet individuelle intelligente Anmerkungen für die Front-End- und Back-End-Konfigurationen, die Sie je nach Anforderung verwenden können.

HTTP-Profil

Ein HTTP-Profil ist eine Sammlung von HTTP-Einstellungen. Ein Standard-HTTP-Profil (nshttp_default_profile) ist konfiguriert, um die HTTP-Konfigurationen festzulegen, die standardmäßig global auf alle Dienste und virtuellen Server angewendet werden.

Der Citrix Ingress Controller bietet die folgenden zwei intelligenten Anmerkungen für das HTTP-Profil. Sie können diese Anmerkungen verwenden, um die HTTP-Einstellungen für den Citrix ADC zu definieren. Wenn Sie einen Ingress bereitstellen, der diese Anmerkungen enthält, erstellt der Citrix Ingress Controller ein HTTP-Profil, das vom Standard-HTTP-Profil (nshttp_default_profile) abgeleitet wird, das auf dem Citrix ADC konfiguriert ist. Anschließend werden die Parameter, die Sie in den Anmerkungen angegeben haben, auf das neue HTTP-Profil angewendet und das Profil auf den Citrix ADC angewendet.

Intelligente Annotation Beschreibung Beispiel
ingress.citrix.com/frontend-httpprofile Verwenden Sie diese Anmerkung, um das Front-End-HTTP-Profil (Clientebene) zu erstellen ingress.citrix.com/frontend-httpprofile: '{"dropinvalreqs":"enabled", "websocket" : "enabled"}'
ingress.citrix.com/backend-httpprofile Verwenden Sie diese Anmerkung, um das Back-End-HTTP-Profil (Serverebene) zu erstellen. ingress.citrix.com/backend-httpprofile: '{"app-1": {"dropinvalreqs":"enabled", "websocket" : "enabled"}}'
  Hinweis: Stellen Sie sicher, dass Sie die HTTP-bezogenen globalen Parameter auf dem Citrix ADC manuell aktivieren. Um beispielsweise HTTP2 im Backend (Serverebene) zu verwenden, stellen Sie sicher, dass Sie HTTP2Serverside globale Parameter im Citrix ADC aktivieren können. Weitere Informationen finden Sie unter Konfigurieren von HTTP2.  

TCP-Profil

Ein TCP-Profil ist eine Sammlung von TCP-Einstellungen. Ein Standard-TCP-Profil (nstcp_default_profile) ist konfiguriert, um die TCP-Konfigurationen festzulegen, die standardmäßig global auf alle Dienste und virtuellen Server angewendet werden.

Der Citrix Ingress Controller bietet die folgenden zwei intelligenten Anmerkungen für das TCP-Profil. Sie können diese Anmerkungen verwenden, um die TCP-Einstellungen für den Citrix ADC zu definieren. Wenn Sie einen Ingress bereitstellen, der diese Anmerkungen enthält, erstellt der Citrix Ingress Controller ein TCP-Profil, das vom Standard-TCP-Profil (nstcp_default_profile) abgeleitet wird, das auf dem Citrix ADC konfiguriert ist. Anschließend werden die Parameter, die Sie in den Anmerkungen angegeben haben, auf das neue TCP-Profil angewendet und das Profil auf den Citrix ADC angewendet.

Intelligente Annotation Beschreibung Beispiel
ingress.citrix.com/frontend-tcpprofile Verwenden Sie diese Beschriftung, um das Front-End-TCP-Profil (Clientebene) zu erstellen ingress.citrix.com/frontend-tcpprofile: '{"ws":"enabled", "sack" : "enabled"}'
ingress.citrix.com/backend-tcpprofile Verwenden Sie diese Anmerkung, um das Backend-TCP-Profil (Server Plane) zu erstellen ingress.citrix.com/backend-tcpprofile: '{"citrix-svc":{"ws":"enabled", "sack" : "enabled"}}'

SSL-Profil

Ein SSL-Profil ist eine Sammlung von Einstellungen für SSL-Entitäten. Es bietet eine einfache Konfiguration und Flexibilität. Anstatt die Einstellungen für jede Entität zu konfigurieren, können Sie sie in einem Profil konfigurieren und das Profil an alle Entitäten binden, für die die Einstellungen gelten.

Voraussetzungen

Auf dem Citrix ADC ist das SSL-Profil standardmäßig nicht auf dem Ingress Citrix ADC aktiviert. Stellen Sie sicher, dass Sie das SSL-Profil auf dem Citrix ADC manuell aktivieren. Durch das Aktivieren des SSL-Profils werden alle vorhandenen SSL-bezogenen Einstellungen auf dem Citrix ADC überschrieben. Ausführliche Informationen zu SSL-Profilen finden Sie unter SSL-Profile.

SSL-Profile werden in zwei Kategorien eingeteilt:

  • Front-End-Profile: enthält Parameter, die auf die Front-End-Entity anwendbar sind. Das heißt, sie gelten für das Unternehmen, das Anfragen von einem Kunden erhält.
  • Back-End-Profile: enthält Parameter, die auf die Back-End-Entität anwendbar sind. Das heißt, sie gelten für die Entität, die Clientanfragen an einen Server sendet.

Sobald Sie SSL-Profile auf dem Citrix ADC aktiviert haben, wird ein Standard-Front-End-Profil (ns_default_ssl_profile_frontend) auf den virtuellen SSL-Server angewendet und ein Standard-Back-End-Profil (ns_default_ssl_profile_backend) wird auf den Dienst oder die Dienstgruppe auf dem Citrix ADC angewendet.

Der Citrix Ingress Controller bietet die folgenden zwei intelligenten Anmerkungen für das SSL-Profil. Sie können diese Anmerkungen verwenden, um das Standard-Front-End-Profil (ns_default_ssl_profile_frontend) und das Back-End-Profil (ns_default_ssl_profile_backend) basierend auf Ihren Anforderungen anzupassen:

Intelligente Annotation Beschreibung Beispiel
ingress.citrix.com/frontend-sslprofile Verwenden Sie diese Anmerkung, um das Front-End-SSL-Profil (Clientebene) zu erstellen. Das Front-End-SSL-Profil ist nur erforderlich, wenn Sie TLS auf der Clientebene aktiviert haben. ingress.citrix.com/frontend-sslprofile: '{"hsts":"enabled", "tls12" : "enabled"}'
ingress.citrix.com/backend-sslprofile Verwenden Sie diese Anmerkung, um das Back-End-SSL-Profil (Serverebene) zu erstellen. Das SSL-Backend-Profil ist nur erforderlich, wenn Sie die Annotation ingress.citrix.com/secure-Backend für das Back-End verwenden. ingress.citrix.com/backend-sslprofile: '{"citrix-svc":{"hsts":"enabled", "tls1" : "enabled"}}'

Wichtig: Mit dem SSL-Profil können Sie kein SSL-Zertifikat konfigurieren.

Front-End-Profilkonfiguration mithilfe von Anmerkungen

HTTP-, TCP- und SSL-Front-End-Profile werden an den clientseitigen virtuellen Content Switching-Server oder den virtuellen SSL-Server angehängt. Da es mehrere Inresses geben kann, die dasselbe verwenden frontend-ip und auch denselben virtuellen Content Switching-Server im Front-End verwenden, kann es zu Konflikten kommen, die sich aus der Anmerkung der Front-End-Profile ergeben können, die in mehreren Inresses angegeben sind, die die Front-End-IP-Adresse gemeinsam nutzen.

Im Folgenden finden Sie die Richtlinien für Anmerkungen zu Front-End-Profilen für HTTP, TCP und SSL.

  • Für alle Inresses mit derselben Front-End-IP-Adresse wird empfohlen, dass bei allen Inresses derselbe Wert für das Front-End-Profil angegeben ist.
  • Wenn es mehrere Ingresses gibt, die die Front-End-IP-Adresse gemeinsam nutzen, kann man auch einen separaten Eingang für jede Front-End-IP-Adresse mit leeren Regeln (als Front-End-Ingress bezeichnet) erstellen, in denen die Front-End-IP-Anmerkung angegeben werden kann, wie im folgenden Beispiel gezeigt. Sie müssen die Front-End-Profilanmerkung nicht in jeder Eingangsdefinition angeben.

    • Um einen Front-End-Ingress für einen virtuellen Server vom Typ HTTP zu erstellen, sehen Sie sich das folgende Beispiel an:

       #Sample ingress manifest for the front-end configuration for an HTTP virtual server
       #The values for the parameters are for demonstration purpose only.
      
              
       apiVersion: networking.k8s.io/v1
       kind: Ingress
       metadata:
         name: frontend-ingress
         annotations:
         # /* The CS virtual server is derived from the combination of
       insecure-port/secure-port, frontend-ip, and
       secure-service-type/insecure-service-type annotations. */
           ingress.citrix.com/insecure-port: "80"
           ingress.citrix.com/frontend-ip: "x.x.x.x"
           ingress.citrix.com/frontend-httpprofile:'{"dropinvalreqs":"enabled", "markconnreqInval" : "enabled"}'
           ingress.citrix.com/frontend-tcpprofile: '{"ws":"enabled", "sack" :
       "enabled"}'
       spec:
         rules:
          # Empty rule
         - host:
      
    • To create a front-end ingress for SSL type service, see the following example:

       #Sample ingress manifest for the front-end configuration for an SSL virtual server
       #The values for the parameters are for demonstration purpose only.
              
              
       apiVersion: networking.k8s.io/v1
       kind: Ingress
       metadata:
         name: frontend-ingress
         annotations:
         #The CS virtual server is derived from the combination of
         #insecure-port/secure-port, frontend-ip, and
         #secure-service-type/insecure-service-type annotations.
           ingress.citrix.com/insecure-port: "80"
           ingress.citrix.com/secure-port: "443" 
           ingress.citrix.com/frontend-ip: "x.x.x.x"
           ingress.citrix.com/frontend-sslprofile:
       '{"tls13":"enabled", "hsts" : "enabled"}'
           ingress.citrix.com/frontend-tcpprofile: '{"ws":"enabled", "sack" :
       "enabled"}'
       spec:
         rules:
         - host:
           #Presense of tls is considered as a secure service
         tls:
         - hosts:
      
  • Wenn es unterschiedliche Werte für dieselben Front-End-Profilanmerkungen in mehreren Inresses gibt, wird die folgende Reihenfolge verwendet, um die Profile an den virtuellen Server zu binden.

    • Wenn eine Eingangsdefinition eine Front-End-Annotation mit vorkonfigurierten Profilen enthält, ist diese an den virtuellen Server gebunden.
    • Führen Sie alle (Schlüssel, Werte) aus verschiedenen Inresses derselben Front-End-IP-Adresse zusammen und verwenden Sie das Ergebnis (Schlüssel, Wert) für die Smart-Annotation des Front-End-Profils.
    • Wenn es einen Konflikt für denselben Schlüssel aufgrund unterschiedlicher Werte aus verschiedenen Inresses gibt, wird ein Wert zufällig ausgewählt und andere Werte werden ignoriert. Sie müssen vermeiden, widersprüchliche Werte zu haben.
  • Wenn in keinem der Inresses, die die Front-End-IP-Adresse gemeinsam nutzen, eine Anmerkung für Front-End-Profile angegeben ist, werden die globalen Werte aus der ConfigMap FRONTEND_HTTP_PROFILEFRONTEND_TCP_PROFILE, das heißt oder FRONTEND_SSL_PROFILE wird für die HTTP-, TCP- und SSL-Frontend-Profile verwendet.

Globale Front-End-Profilkonfiguration mit ConfigMap-Variablen

Die ConfigMap-Variable wird für das Front-End-Profil verwendet, wenn sie nicht durch die Smart-Annotation von Front-End-Profilen in einem oder mehreren Inresses überschrieben wird, die eine Front-End-IP-Adresse gemeinsam nutzen. Wenn Sie eine Funktion mit einem Front-End-Profil für alle Inresses aktivieren oder deaktivieren müssen, können Sie die Variablen FRONTEND_HTTP_PROFILEbzw. FRONTEND_SSL_PROFILE für HTTP-, TCP- und SSL-Profile verwenden. FRONTEND_TCP_PROFILE Wenn Sie beispielsweise TLS 1.3 für alle SSL-Ingresses aktivieren möchten, können Sie mit FRONTEND_SSL_PROFILE diesen Wert festlegen, anstatt die intelligente Annotation in jeder Eingangsdefinition zu verwenden. In der ConfigMap-Dokumentation erfahren Sie, wie Sie ConfigMap mit dem Citrix Ingress Controller verwenden.

Konfiguration mit FRONTEND_HTTP_PROFILE

Die FRONTEND_HTTP_PROFILE Variable wird zum Festlegen der HTTP-Optionen für den virtuellen Front-End-Server (Clientebene) verwendet, sofern sie nicht durch die ingress.citrix.com/frontend-httpprofile Smart-Annotation in der Eingangsdefinition überschrieben wird.

Verwenden Sie ein vorhandenes Profil auf Citrix ADC oder verwenden Sie ein integriertes HTTP-Profil.

apiVersion: v1
kind: ConfigMap
metadata:
  name: cic-configmap
  labels:
    app: citrix-ingress-controller
data:
  FRONTEND_HTTP_PROFILE: |
    preconfigured: my_http_profile
<!--NeedCopy-->

In diesem Beispiel my_http_profile ist ein bereits vorhandenes HTTP-Profil in Citrix ADC.

Alternativ können Sie die Profilparameter wie folgt festlegen. In der NITRO-Dokumentation des HTTP-Profils finden Sie alle möglichen Schlüsselwerte.

apiVersion: v1
kind: ConfigMap
metadata:
  name: cic-configmap
  labels:
    app: citrix-ingress-controller
data:
  FRONTEND_HTTP_PROFILE: |
    config:
      dropinvalreqs: 'ENABLED'
      websocket: 'ENABLED'
<!--NeedCopy-->

Konfiguration mit FRONTEND_TCP_PROFILE

Die FRONTEND_TCP_PROFILE Variable wird zum Festlegen der TCP-Optionen für den virtuellen Front-End-Server (clientseitig) verwendet, sofern sie nicht durch die ingress.citrix.com/frontend-tcpprofile Smart-Annotation in der Eingangsdefinition überschrieben wird.

So verwenden Sie ein vorhandenes Profil auf Citrix ADC oder verwenden Sie ein integriertes TCP-Profil:

apiVersion: v1
kind: ConfigMap
metadata:
  name: cic-configmap
  labels:
    app: citrix-ingress-controller
data:
  FRONTEND_TCP_PROFILE: |
    preconfigured: my_tcp_profile
<!--NeedCopy-->

In diesem Beispiel my_tcp_profile ist ein bereits vorhandenes TCP-Profil in Citrix ADC.

Alternativ können Sie die Profilparameter wie folgt festlegen. In der Dokumentation des Citrix ADC TCP-Profils NITRO finden Sie alle möglichen Schlüsselwerte.

apiVersion: v1
kind: ConfigMap
metadata:
  name: cic-configmap
  labels:
    app: citrix-ingress-controller
data:
  FRONTEND_TCP_PROFILE: |
    config:
      sack: 'ENABLED'
      nagle: 'ENABLED'

<!--NeedCopy-->

Konfiguration mit FRONTEND_SSL_PROFILE

Die FRONTEND_SSL_PROFILE Variable wird zum Festlegen der SSL-Optionen für den virtuellen Front-End-Server (clientseitig) verwendet, sofern sie nicht durch die ingress.citrix.com/frontend-sslprofile Smart-Annotation in der Eingangsdefinition überschrieben wird.

Hinweis: Damit das SSL-Profil ordnungsgemäß funktioniert, müssen Sie das Standardprofil in Citrix ADC mit dem set ssl parameter -defaultProfile ENABLED Befehl aktivieren. Stellen Sie sicher, dass der Citrix Ingress Controller nach dem Aktivieren des Standardprofils neu gestartet wird. Das Standardprofil wird automatisch aktiviert, wenn Citrix ADC CPX als Eingangsgerät verwendet wird. Weitere Informationen zum SSL-Standardprofil finden Sie in der Dokumentation zum SSL-Profil.

Um ein vorhandenes Profil auf Citrix ADC zu verwenden oder ein integriertes SSL-Profil zu verwenden,

apiVersion: v1
kind: ConfigMap
metadata:
  name: cic-configmap
  labels:
    app: citrix-ingress-controller
data:
  FRONTEND_SSL_PROFILE: |
    preconfigured: my_ssl_profile
<!--NeedCopy-->

In diesem Beispiel my_ssl_profile ist das bereits vorhandene SSL-Profil in Citrix ADC.

Hinweis:

Das Standard-Front-End-Profil (ns_default_ssl_profile_frontend) wird mit der FRONTEND_SSL_PROFILE.preconfigured Variablen nicht unterstützt.

Alternativ können Sie die Profilparameter wie im folgenden Beispiel gezeigt einstellen. Informationen zu allen möglichen Schlüsselwerten finden Sie in der NITRO-Dokumentation des SSL-Profils .

apiVersion: v1
kind: ConfigMap
metadata:
  name: cic-configmap
  labels:
    app: citrix-ingress-controller
data:
  FRONTEND_SSL_PROFILE: |
    config:
      tls13: 'ENABLED'
      hsts: 'ENABLED'
<!--NeedCopy-->

Das folgende Beispiel zeigt das Binden von SSL-Verschlüsselungsgruppen an das SSL-Profil. Die Reihenfolge ist wie in der Liste angegeben, wobei die höhere Priorität dem ersten in der Liste zur Verfügung gestellt wird und so weiter. Sie können alle in Citrix ADC verfügbaren SSL-Verschlüsselungen oder von Benutzern erstellte Verschlüsselungsgruppen in diesem Feld verwenden. Informationen zur Liste der im Citrix ADC verfügbaren Verschlüsselungen finden Sie unter Verschlüsselungen in Citrix ADC.

apiVersion: v1
kind: ConfigMap
metadata:
  name: cic-configmap
  labels:
    app: citrix-ingress-controller
data:
  FRONTEND_SSL_PROFILE: |
    config:
      tls13: 'ENABLED'
      ciphers:
      - TLS1.3-AES256-GCM-SHA384
      - TLS1.3-CHACHA20-POLY1305-SHA256
<!--NeedCopy-->

Back-End-Konfiguration

Jede spec:backend Eingangsdefinition, die Dienstdetails spec:rules:host, Einträge usw. enthält, wird als Back-End-Konfiguration betrachtet.

Beispiel für ein Backend-Ingress-Manifest ohne TLS-Konfiguration


#The values for the parameters are for demonstration purpose only.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
  # /* The CS virtual server is derived from the combination of insecure-port/secure-port, frontend-ip, and secure-service-type/insecure-service-type annotations. */
    ingress.citrix.com/backend-httpprofile: '{"apache":{"markhttp09inval": "disabled"}}'
    ingress.citrix.com/backend-tcpprofile: '{"apache":{"sack":"enabled"}}'
    ingress.citrix.com/frontend-ip: 'VIP_IP'
    ingress.citrix.com/insecure-port: "80"
  name: apache-ingress
spec:
  rules:
  - host: www.apachetest.com
    http:
      paths:
      - backend:
          service:
            name: apache
            port:
              number: 80
        path: /
        pathType: Prefix
<!--NeedCopy-->

Beispiel für ein Backend-Ingress-Manifest mit TLS-Konfiguration


#The values for the parameters are for demonstration purpose only.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
  # /* The CS virtual server is derived from the combination of insecure-port/secure-port, frontend-ip, and secure-service-type/insecure-service-type annotations. */
    ingress.citrix.com/backend-httpprofile: '{"hotdrink":{"markhttp09inval": "disabled"}}'
    ingress.citrix.com/backend-sslprofile: '{"hotdrink":{"snienable": "enabled"}}'
    ingress.citrix.com/backend-tcpprofile: '{"hotdrink":{"sack":"enabled"}}'
    ingress.citrix.com/frontend-ip: 'VIP_IP'
    ingress.citrix.com/secure-backend: '{"hotdrink":"true"}'
    ingress.citrix.com/secure-port: "443"
  name: hotdrink-ingress
spec:
  rules:
  - host: hotdrinks.beverages.com
    http:
      paths:
      - backend:
          service:
            name: hotdrink
            port:
              number: 443
        path: /
        pathType: Prefix
  tls:
  - secretName: hotdrink.secret
<!--NeedCopy-->

Verwenden integrierter oder vorhandener benutzerdefinierter Profile auf dem Ingress Citrix ADC

Sie können die einzelnen Smart Annotations verwenden, um die integrierten Profile oder vorhandenen benutzerdefinierten Profile auf dem Ingress Citrix ADC für die Front-End- und Back-End-Konfigurationen basierend auf Ihren Anforderungen zu konfigurieren. Weitere Informationen zu integrierten Profilen finden Sie unter Integrierte TCP-Profile und integrierte HTTP-Profile.

Für die Front-End-Konfiguration können Sie den Namen der integrierten oder vorhandenen benutzerdefinierten Profile im Ingress Citrix ADC angeben. Im Folgenden finden Sie ein Beispiel für eine Ingress-Anmerkung:

ingress.citrix.com/frontend-httpprofile: "http_preconf_profile1"

Wobei ‘http_preconf_profile1’ das Profil ist, das auf dem Ingress Citrix ADC vorhanden ist.

Für die Back-End-Konfiguration müssen Sie den Namen des integrierten oder vorhandenen Profils auf dem Ingress Citrix ADC und den Namen des Back-End-Dienstes angeben. Im Folgenden finden Sie ein Beispiel für eine Ingress-Anmerkung:

ingress.citrix.com/backend-httpprofile: '{"citrix-svc": "http_preconf_profile1"}'

Wobei ‘http_preconf_profile1’ das Profil ist, das auf dem Ingress Citrix ADC vorhanden ist und citrix-svc der Name des Back-End-Dienstes.

Beispiel eines HTTP-Profils

ingress.citrix.com/frontend-httpprofile: "http_preconf_profile"
ingress.citrix.com/backend-httpprofile: '{"citrix-svc": "http_preconf_profile"}'

Beispiel für ein TCP-Profil

ingress.citrix.com/frontend-tcpprofile: "tcp_preconf_profile"
ingress.citrix.com/backend-tcpprofile: '{"citrix-svc":"tcp_preconf_profile"}'

Beispiel eines SSL-Profils

ingress.citrix.com/frontend-sslprofile: "ssl_preconf_profile"
ingress.citrix.com/backend-sslprofile: '{"citrix-svc":"ssl_preconf_profile"}'

Beispiel für die Anwendung von HTTP-, SSL- und TCP-Profilen

Dieses Beispiel zeigt, wie HTTP-, SSL- oder TCP-Profile angewendet werden.

Um SSL-, TCP- und HTTP-Profile zu erstellen und sie an die definierte Ingress-Ressource zu binden, führen Sie die folgenden Schritte aus:

  1. Definieren Sie die Front-End-Ingress-Ressource mit den erforderlichen Profilen. In dieser Ingress-Ressource sind Back-End und TLS nicht definiert.

    Ein Beispiel für YAML (ingress1.yaml) wird wie folgt bereitgestellt:

      apiVersion: networking.k8s.io/v1
      kind: Ingress
      metadata:
        name: ingress-vpx1
        annotations:
          kubernetes.io/ingress.class: "vpx"
          ingress.citrix.com/insecure-termination: "allow"
          ingress.citrix.com/frontend-ip: "10.221.36.190"
          ingress.citrix.com/frontend-tcpprofile: '{"ws":"disabled", "sack" : "disabled"}'
          ingress.citrix.com/frontend-httpprofile: '{"dropinvalreqs":"enabled", "markconnreqInval" : "enabled"}'
          ingress.citrix.com/frontend-sslprofile: '{"hsts":"enabled", "tls13" : "enabled"}'
      spec:
        tls:
        - hosts:
        rules:
        - host:
      <!--NeedCopy-->
    
  2. Stellen Sie die Front-End-Ingress-Ressource bereit.

    kubectl create -f ingress1.yaml

  3. Definieren Sie die sekundäre Eingangsressource mit derselben Front-End-IP-Adresse und demselben TLS und dem definierten Back-End, das die Lastausgleichsressourcendefinition erstellt.

    Ein Beispiel für eine YAML (ingress2.yaml) wird wie folgt bereitgestellt:

      apiVersion: networking.k8s.io/v1
      kind: Ingress
      metadata:
        name: ingress-vpx2
        annotations:
        kubernetes.io/ingress.class: "vpx"
        ingress.citrix.com/insecure-termination: "allow"
        ingress.citrix.com/frontend-ip: "10.221.36.190"
      spec:
        tls:
        - secretName: <hotdrink-secret>
        rules:
        - host:  hotdrink.beverages.com
          http:
            paths:
            - path:
              backend:
                serviceName: frontend-hotdrinks
                servicePort: 80
      <!--NeedCopy-->
    
  4. Stellen Sie die Back-End-Ingress-Ressource bereit.

     kubectl create -f ingress2.yaml
    
  5. Sobald die YAMLs angewendet wurden, werden die entsprechenden Entitäten, Profile und Eingangsressourcen erstellt und an die Eingangsressource gebunden.

    # show cs vserver <k8s150-10.221.36.190_443_ssl>
        
      k8s150-10.221.36.190_443_ssl (10.221.36.190:443) - SSL Type: CONTENT 
      State: UP
      Last state change was at Thu Apr 22 20:14:44 2021
      Time since last state change: 0 days, 00:10:56.850
      Client Idle Timeout: 180 sec
      Down state flush: ENABLED
      Disable Primary Vserver On Down : DISABLED
      Comment: uid=QEYQI2LDW5WR4A6P3NSZ37XICKOJKV4HPEM2H4PSK4HWA3JQWCLQ====
      TCP profile name: k8s150-10.221.36.190_443_ssl
      HTTP profile name: k8s150-10.221.36.190_443_ssl
      Appflow logging: ENABLED
      State Update: DISABLED
      Default:   Content Precedence: RULE
      Vserver IP and Port insertion: OFF 
      L2Conn: OFF Case Sensitivity: ON
      Authentication: OFF
      401 Based Authentication: OFF
      Push: DISABLED Push VServer: 
      Push Label Rule: none
      Persistence: NONE
      Listen Policy: NONE
      IcmpResponse: PASSIVE
      RHIstate:  PASSIVE
      Traffic Domain: 0
    
      1)  Content-Switching Policy: k8s150-ingress-vpx1_tier-2-adc_443_k8s150-frontend-hotdrinks_tier-2-adc_80_svc    Priority: 200000004   Hits: 0
      Done
    

Beispiel: Hinzufügen eines SNI-Zertifikats zu einem virtuellen SSL-Server

Dieses Beispiel zeigt, wie ein einzelnes SNI-Zertifikat hinzugefügt wird.

Hinweis:

Damit das SSL-Profil ordnungsgemäß funktioniert, müssen Sie das Standardprofil in Citrix ADC mit dem Befehl set ssl parameter -defaultProfile ENABLED aktivieren. Stellen Sie sicher, dass der Citrix Ingress Controller nach dem Aktivieren des Standardprofils neu gestartet wird. Weitere Informationen zum SSL-Standardprofil finden Sie in der Dokumentation.

  1. Definieren Sie die Front-End-Ingress-Ressource mit den erforderlichen Profilen. In dieser Ingress-Ressource sind Back-End und TLS nicht definiert.

    Ein Beispiel für eine YAML (ingress1.yaml) wird wie folgt bereitgestellt:

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: ingress-vpx1
      annotations:
       kubernetes.io/ingress.class: "vpx"
       ingress.citrix.com/insecure-termination: "allow"
       ingress.citrix.com/frontend-ip: "10.221.36.190"
       ingress.citrix.com/frontend-tcpprofile: '{"ws":"disabled", "sack" : "disabled"}'
       ingress.citrix.com/frontend-httpprofile: '{"dropinvalreqs":"enabled", "markconnreqInval" : "enabled"}'
       ingress.citrix.com/frontend-sslprofile: '{"snienable": "enabled", "hsts":"enabled", "tls13" : "enabled"}'
    spec:
      tls:
      - hosts:
      rules:
      - host:
    
    <!--NeedCopy-->
    
  2. Stellen Sie die Front-End-Ingress-Ressource bereit.

    kubectl create -f ingress1.yaml
    
  3. Definieren Sie die sekundäre Eingangsressource mit derselben Front-End-IP-Adresse, die sowohl Back-End- als auch SNI-Zertifikate definiert. Wenn Hosts angegeben werden, wird der als geheimer Name angegebene Certkey als SNI-Zertifikat hinzugefügt.

    Ein Beispiel für eine YAML (ingress2.yaml) wird wie folgt bereitgestellt:

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: ingress-vpx2  
      annotations:
       kubernetes.io/ingress.class: "vpx"
       ingress.citrix.com/insecure-termination: "allow"
       ingress.citrix.com/frontend-ip: "10.221.36.190"
    spec:
      tls:
      - hosts:
          - hotdrink.beverages.com
        secretName: hotdrink-secret
      rules:
      - host: hotdrink.beverages.com
        http:
          paths:
          - path: /
            backend:
              serviceName: web
              servicePort: 80
    <!--NeedCopy-->
    
  4. Stellen Sie die sekundäre Eingangsressource bereit.

     kubectl create -f ingress2.yaml
    

    Wenn mehrere SNI-Zertifikate an den Front-End-VIP gebunden werden müssen, finden Sie im Folgenden eine YAML-Beispieldatei.

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: ingress-vpx-frontend
      annotations:
      kubernetes.io/ingress.class: "vpx"
      ingress.citrix.com/insecure-termination: "allow"
      ingress.citrix.com/frontend-ip: "10.221.36.190"
    spec:
      tls:
      - hosts:
          - hotdrink.beverages.com
        secretName: hotdrink-secret
      - hosts:
          - frontend.agiledevelopers.com
        secretName: <frontend-secret>
      rules:
      - host: hotdrink.beverages.com
        http:
          paths:
          - path: /
            backend:
              serviceName: web
              servicePort: 80
      - host: frontend.agiledevelopers.com
        http:
          paths:
          - path: /
            backend:
              serviceName: frontend-developers
              servicePort: 80
    

Beispiel: SSL-Verschlüsselungsgruppe binden

Dieses Beispiel zeigt, wie eine SSL-Verschlüsselungsgruppe gebunden wird.

Hinweis:

Damit das SSL-Profil ordnungsgemäß funktioniert, müssen Sie das Standardprofil in Citrix ADC mit dem Befehl set ssl parameter -defaultProfile ENABLED aktivieren. Stellen Sie sicher, dass der Citrix Ingress Controller nach dem Aktivieren des Standardprofils neu gestartet wird.

Legen Sie das Standard-SSL-Profil auf Citrix ADC mithilfe des Befehls fest, set ssl parameter -defaultProfile ENABLED bevor Sie den Citrix Ingress Controller bereitstellen. Wenn Sie den Citrix Ingress Controller bereits bereitgestellt haben, stellen Sie ihn erneut bereit. Weitere Informationen zum SSL-Standardprofil finden Sie in der Dokumentation.

Informationen zu unterstützten Verschlüsselungen auf den Citrix ADC Appliances finden Sie unter Verschlüsselungen, die auf den Citrix ADC Appliances verfügbar sind.

Informationen zum Sichern der Verschlüsselung finden Sie unter Sichern der Verschlüsselung.

Ein Beispiel für eine YAML (cat frontend_ingress.yaml) wird wie folgt bereitgestellt:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-vpx
  annotations:
   kubernetes.io/ingress.class: "citrix"
   ingress.citrix.com/insecure-termination: "allow"
   ingress.citrix.com/frontend-ip: "10.221.36.190"
   ingress.citrix.com/frontend-tcpprofile: '{"ws":"disabled", "sack" : "disabled"}'
   ingress.citrix.com/frontend-httpprofile: '{"dropinvalreqs":"enabled", "markconnreqInval" : "enabled"}'
   ingress.citrix.com/frontend-sslprofile: '{"snienable": "enabled", "hsts":"enabled", "tls13" : "enabled", "ciphers" : [{"ciphername": "test", "cipherpriority" :"1"}]}'
spec:
  tls:
  - hosts:
  rules:
   - host:
<!--NeedCopy-->