Citrix ADC ingress controller

LoadBalancer タイプのサービスのサービスクラス

LoadBalancerタイプのサービスが展開されると、そのようなサービスはすべてCitrix ingress controller によって処理され、Citrix ADCで構成されます。ただし、複数のIngressコントローラーが展開されている場合は、特定のサービスのみをCitrix Ingressコントローラーに関連付ける必要がある場合があります。

Ingress リソースの場合、この機能は Ingress クラス機能を使用して既に利用できます 。Ingress リソースの Ingress クラス機能と同様に、タイプLoadBalancerのサービスにもサービスクラス機能が追加されました。

YAMLファイルのspecセクションにある--service-classes引数を使用して、Citrix ingress controller を複数のサービスクラスに関連付けることができます。Ingress Controller にサービスクラスが指定されていない場合、サービス内にservice.citrix.com/classアノテーションが存在するかどうかに関係なく、そのタイプLoadBalancerのすべてのサービスが受け入れられます。

サービスクラスがCitrix ingress controller に指定されている場合は、service.citrix.com/class注釈に一致するタイプLoadBalancerのサービスのみを受け入れます。この場合、Citrix ingress controller は、service.citrix.com/class注釈に関連付けられていないタイプLoadBalancerサービスを処理しません。

サービスクラスを使用した YAML 設定のサンプル

Ingress Controllerでservice-classesを関連付けるサンプル YAML ファイルのスニペットを次に示します。このスニペットでは、次のサービスクラスが Ingress Controller に関連付けられています。

  • svc-class1
  • svc-class2
spec:
serviceAccountName: cic-k8s-role
containers:
- name: cic-k8s-ingress-controller
  # specify the service classes to be supported by Citrix Ingress Controller in args section.
  # First line should be --service-classes, and every subsequent line should be
  # the name of allowed service class. In the given example two classes named
  # "svc-class1" and "svc-class2" are accepted. This will be case-insensitive.
  args:
    - --service-classes
      svc-class1
      svc-class2
<!--NeedCopy-->

以下は、LoadBalancer タイプのサービス定義 YAML ファイルのスニペットです。このファイルには、サービスクラスの関連付けが示されています。この例では、Apache サービスがサービスクラスsvc-class1に関連付けられています。Citrix ingress controller がsvc-class1を受け入れるように構成されている場合、Citrix ADCでサービスが構成されます。

apiVersion: v1
kind: Service
metadata:
     name: apache
     annotations:
         service.citrix.com/class: 'svc-class1'
     labels:
        name: apache
spec:
   type: LoadBalancer
   selector:
       name: apache
   ports:
   - name: http
     port: 80
     targetPort: http
   selector:
   app: apache
<!--NeedCopy-->
LoadBalancer タイプのサービスのサービスクラス