Я новичок в Kubernetes, и я пытаюсь выполнить балансировку нагрузки HTTP в Google Container Engine с помощью TLS (с помощью входящего в комплект контроллера GCE Ingress Controller). Ошибка, которую я имею, повторяется даже после Google's official tutorial. Для удобства чтения я описываю процедуру, описанную в config.yaml
:Ошибка контроллера Kubernetes/GCE
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx
spec:
replicas: 1
template:
metadata:
labels:
name: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx
labels:
name: nginx
spec:
type: NodePort
ports:
- port: 80
targetPort: 80
selector:
name: nginx
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: basic-ingress
spec:
backend:
serviceName: nginx
servicePort: 80
Тогда:
kubectl create -f config.yaml
export NODE_PORT=$(kubectl get -o jsonpath="{.spec.ports[0].nodePort}" services nginx)
gcloud compute firewall-rules create allow-130-211-0-0-22 --source-ranges 130.211.0.0/22 --allow tcp:$NODE_PORT
curl <ip_of_load_balancer>
(я удалил метки на правила брандмауэра, так что будет применяться для всех).
Но я получаю 502 Server Error
, что according to the docs означает, что это, вероятно, самонастройка (но она всегда остается такой). Я вижу на консоли, что бэкенд нездоровый.
В Документах, чтобы избежать этого нужно:
- правило брандмауэра (которое сделано выше)
- служба должна реагировать с 200 (но я тестировал
nginx
изображение локально и услуги через общая балансировка нагрузки, работает нормально)
В чем причина этой ошибки и как ее можно отладить?
Можете ли вы начать с создания файла yaml для вашей конфигурации? Тогда это более ясно, что там все. –
@NorbertvanNobelen отредактировал – user7384