LKE LoadBalancer or Ingress for an internal network only?
I need two LKE clusters. One of them for production and second for development environment. The second cluster must be only for an internal network (192.168.128.0/17). If I use LoadBalancer or Ingress, it is implemented by Nodebalancers and has an external IP always. So how to set up LoadBalancer or Ingress for an internal network only?
2 Replies
Hey @mikleand! So, the short answer is yes, you can. However, you will need to employ a workaround at this time. By the end of the year, private VLANs will be available and will make this process a bit simpler. For now, you can follow the below steps.
- Deploy an Ingress controllerand set its service type to NodePort
- Manually deploy a Linode running HAProxy or Nginx
- Make the backends for all Nodes in the cluster point to the
NodePort
of the Ingress controller - Create a Calico network policy to restrict inbound traffic on the Ingress controller to the LoadBalancer
Hope this helps and feel free to followup with any questions!
Is it still the same modus?
I have a website that does not need to have High Availability. So as I see it it does not need a NodeBalancer.
I am trying to:
- Deploy a pod with everything needed to run app
- Set a service as ClusterIP to that app
- Deploy an ingress with a url like this:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: appname-ingress
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- host: 'appname.domain.se'
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: appname-service
port:
number: 80
But it seems that I don't get any traffic to the pod like this?