Ngrok Ingress Controller for Kubernetes (Доступ к kubernetes кластеру из интернетов)


Делаю:
15.07.2023

Ни за что денег не платил. Все бесплатно, т.е. даром!


Статья:
https://ngrok.com/blog-post/ngrok-k8s


https://dashboard.ngrok.com/api - создать api key


$ helm repo add ngrok https://ngrok.github.io/kubernetes-ingress-controller


$ export NGROK_API_KEY=[YOUR Secret API KEY]
$ export NGROK_AUTHTOKEN=[YOUR Secret Auth Token]


$ helm install ngrok-ingress-controller ngrok/kubernetes-ingress-controller \
   --set credentials.apiKey=$NGROK_API_KEY \
   --set credentials.authtoken=$NGROK_AUTHTOKEN


Пример на основе приложения cats-app


$ git clone https://github.com/webmakaka/cats-app
$ cd cats-app/k8s/


$ kubectl apply -f ./cats-app-deployment.yaml
$ kubectl apply -f ./cats-app-cluster-ip-service.yaml


https://dashboard.ngrok.com/cloud-edge/domains - копируем домен


$ export NGROK_DOMAIN="hugely-amusing-owl.ngrok-free.app"


$ envsubst << 'EOF' | cat | kubectl create -f -
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: cats-app-ingress-service
spec:
  ingressClassName: ngrok
  rules:
    - host: ${NGROK_DOMAIN}
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: minikube-cats-app-cluster-ip-service
                port:
                  number: 8080
EOF


https://dashboard.ngrok.com/cloud-edge/endpoints


Перехожу по URL - приложение открылось