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


Делаю:
2024.11.11

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


Статья:
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


// https://dashboard.ngrok.com/api-keys
// Я тупанул и вводил Key ID, а оно оказывается != api key (Хоть и копируется)
// Нужно новый api key создать он будет отображаться пока не покинуть страницу
$ export NGROK_API_KEY=[YOUR Secret API KEY]

// https://dashboard.ngrok.com/get-started/your-authtoken
$ 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


Делаю:
2024.11.10


$ cd ~/tmp
$ 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 - приложение открылось