8.1.4 Installing the Traefik Controller

Follow these steps to set up Traefik as a load balancer for Oracle Access Management domain in a Kubernetes cluster:

Configuring an Ingress Controller with SSL

Use Helm to install Traefik.

  1. Create a $WORKDIR/kubernetes/helm/traefik-ingress-values-override.yaml that contains the following:

    Note:

    The configuration below deploys an ingress using LoadBalancer. If you prefer to use NodePort, change the configuration accordingly.

    For more details about Traefik configuration see: Traefik Ingress Controller.

    ingressRoute:
      dashboard:
        enabled: true 
    providers:
      kubernetesCRD:
        enabled: true 
      kubernetesIngress:
        enabled: true
    ports:
      traefik:
        port: 9000
        exposedPort: 9000
        protocol: TCP
      web:
        port: 8000
        exposedPort: 30080
        nodePort: 30080
        protocol: TCP  
      websecure:
        port: 8443
        exposedPort: 30443
        nodePort: 30443
        protocol: TCP 
    service:
      spec:
        type: LoadBalancer
  2. To install and configure Traefik ingress issue the following command:
    $ helm install traefik --namespace <namespace> \
    --values traefik-ingress-values-override.yaml \
    traefik/traefik
    Where:
    • traefik is your deployment name
    • traefik/traefik is the chart reference

For example:

$ helm install --namespace traefik \
--values traefik-ingress-values-override.yaml \
traefik traefik/traefik

Configure an Ingress Controller Without SSL

Use Helm to install Traefik.

  1. Create a $WORKDIR/kubernetes/kubernetes/charts/traefik/traefik-ingress-values-override.yaml that contains the following:
    ingressRoute:
      dashboard:
        enabled: true
    providers:
      kubernetesCRD:
        enabled: true
      kubernetesIngress:
        enabled: true
    ports:
      traefik:
        port: 9000
        exposedPort: 9000
        protocol: TCP
      web:
        port: 8000
        exposedPort: 30305
        nodePort: 30305
        protocol: TCP
      websecure:
        expose:
          default: false
    service:
      spec:
        type: LoadBalancer
  2. To install and configure Traefik ingress, run the following command:
    helm install traefik --namespace <namespace> \
    --values traefik-ingress-values-override.yaml \
    traefik/traefik
    Where:
    • `<namespace>` is your namespace, for example `traefik`.
    • `ports.web.exposedPort` is the HTTP port that you want the controller to listen on, for example `30305`.
    • 'service.spec.type` is the controller type. If using NodePort set to `NodePort`.
    • traefik is your deployment name
    • traefik/traefik is the chart reference

For example:

$ helm install --namespace traefik \
--values traefik-ingress-values-override.yaml \
traefik traefik/traefik