How to configure nginx-ingress to route traffic to outside the cluster?

Introduction

Hallo , kali ini saya kembali dengan sebuah artikel yang masih bersangkutan dengan Kubernetes, artikel ini saya buat dari study case yang pernah saya alami yang dimana How to configure nginx-ingress to route traffic to outside the cluster? atau gimana jika kita punya aplikasi di luar cluster kubernetes ingin kita lewatkan network atau lewat Load Balancer kubernetes menggunakan nginx-ingress.

Baca juga :

Dibawah ini adalah flow untuk routinganya:

Berikut langkah – langkah, How to configure nginx-ingress to route traffic to outside the cluster?

Step 1 – Create manifests endpoint

Endpoint digunakan untuk me routing ip tujuan yang diluar cluster, dan hal ini harus digaris bawahi adalah hal ini bisa kita lakukan jika 1 VPC atau sudah bisa ping dari cluster ke IP app tujuan.

kind: Endpoints
apiVersion: v1
metadata:
  name: app-outside-service
  namespace: namespace
subsets:
 - addresses:
     - ip: 192.168.0.2
   ports:
     - port: 80

Dan endpoint beserta port akan muncul k get endpoints -n namespace

Step 2 – Create manifests Service

Selanjutnya, adalah network untuk servicenya, supaya bisa kita translasasikan ke domain nantinya, dan manifests service ini kita ambil dari port & target port dari endpoints, dan juga type nya adalah Cluster IP .

kind: Service
apiVersion: v1
metadata:
  name: app-outside-service
  namespace: namespace
spec:
 type: ClusterIP
 ports:
 - port: 80
   targetPort: 80

Kemudian check servicenya kubectl get servicce -n namespace

Step 3 – Create manifests netowrk nginx-ingress

Dan yang terakhir karena tujuan kita ingin mengakses app tadi, tapi lewat LB nya cluster kubernetes makan kita butuh ingress ini, jika sudah ditambahkan, tinggal di akses urlnya tech.igunawan.com/app-outside-service.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/enable-cors: "true"
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/force-ssl-redirect: 'true'
    nginx.ingress.kubernetes.io/ssl-redirect: 'true'
  name: app-outside-service
  namespace: namespace
spec:
  tls:
    - hosts:
      - tech.igunawan.com
      secretName: secret

  rules:
  - host: tech.igunawan.com
    http:
        paths:
        - path: /app-outside-service
          pathType: Prefix
          backend:
            service:
              name: app-outside-service
              port: 
                number: 80

        

Terima kasih , selamat mencoba.

Leave a Reply

Your email address will not be published. Required fields are marked *