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.
DevTest 10.8.x on Kubernetes(GKE)
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
==============================