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