Configuring HTTPS virtual services on Kubernetes
search cancel

Configuring HTTPS virtual services on Kubernetes

book

Article ID: 404884

calendar_today

Updated On:

Products

Service Virtualization

Issue/Introduction

Looking to change the "kubernetes ingnix controller(load balancer) port". Trying to run a virtual service on 443, but since ingress controller service is already listening on 443 port, it's not allowing us to do.

Environment

DevTest 10.8.x on Kubernetes(GKE)

Resolution

In order to expose multiple different https services through ingress nginx load balancer, you may create kubernetes Ingress object for your newly created https virtual service.

You may see  Ingress-Nginx Controller - Basic usage - host based routing
https://kubernetes.github.io/ingress-nginx/user-guide/basic-usage/

Kubernetes Ingress
https://kubernetes.io/docs/concepts/services-networking/ingress/

For example, you may see below yaml snippet - for creating an Ingress object for an https virtual service running internally on port 30167 and exposed by https://xx.xx.xx.xx


==============================
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    ingress.kubernetes.io/ssl-passthrough: "true"
    nginx.ingress.kubernetes.io/backend-protocol: HTTPS
    nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
    nginx.ingress.kubernetes.io/secure-backends: "true"
    nginx.ingress.kubernetes.io/ssl-passthrough: "true"
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
  name: xx.xx.xx.xx
  namespace: devtest
spec:
  ingressClassName: nginx
  rules:
  - host: xx.xx.xx.xx
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: virtual-service-environment
            port:
              number: 30167
==============================


On GKE, you may need to create a FrontendConfig k8s object to allow incoming http traffic (redirectToHttps = true) reach the https virtual service.

===============================
apiVersion: networking.gke.io/v1beta1
kind: FrontendConfig
metadata:
  name: ssl-redirect
spec:
  redirectToHttps:
    enabled: true
==============================