Настройка балансировки нагрузки HTTP с помощью Nginx Ingress Controller
Может ли кто-нибудь написать шаги по настройке балансировки нагрузки HTTP с помощью Nginx Ingress Controller для Google Kubernetes Engine?
Я следовал этому руководству по GKE для базового Ingress. Это получил Forwarding Rule
в Load Balancing
вкладка в конце. Я думаю, если я хочу удалить это Load Balancer
, Мне нужно будет использовать Nginx Ingress Controller?
Я посмотрел этот учебник по Nginx Ingress GKE, но я не знаю, как объединить эти два учебника, чтобы приложение "Hello-app" работало без Load Balancer
,
1 ответ
I. Если вы используете входной контроллер GKE
1)
kubectl run web --image=gcr.io/google-samples/hello-app:1.0 --port=8080
2)
kubectl expose deployment web --target-port=8080 --type=NodePort
3)
cat <<EOF > ./ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nginx
spec:
backend:
serviceName: web
servicePort: 8080
EOF
4)
kubectl apply -f ingress.yaml
5) Подождите 5 минут, пока GKE не применит правила брандмауэра для вашего входа
6) Сверните ваше веб-приложение
curl $(kubectl get ingress nginx | awk 'NR==2{print $3}')
II. Если вы хотите сделать это с помощью nginx ingress controller
1)
kubectl run web --image=gcr.io/google-samples/hello-app:1.0 --port=8080
2)
kubectl expose deployment web --target-port=8080 --type=NodePort
3)
helm install stable/nginx-ingress
4)
cat <<EOF > ./ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
name: nginx-ingress
spec:
backend:
serviceName: web
servicePort: 8080
EOF
5)
kubectl apply -f ingress.yaml
6)
curl $(kubectl get svc |grep nginx-ingress-controller|awk '{print $4}')