我是Kubernetes的新手,我尝试使用TLS(使用包含的GCE Ingress控制器)在Google Container Engine上执行HTTP负载平衡。即使在Google's official tutorial之后,我所拥有的错误也是可重复的。为了提高可读性我总结的过程中config.yaml
:Kubernetes/GCE Ingress控制器出现故障
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
,其中意味着它可能是bootstrapping(但它总是像这样)。我可以在控制台上看到后端不健康。
在文档,为了避免这种人们需要:
- 防火墙规则(其上面完成)
- 服务必须与200响应(但我经由测试本地
nginx
图像和所述服务一般负载平衡器,工作正常)
那么,这个错误的原因是什么,我该如何进一步调试呢?
你可以开始为你的配置创建一个yaml文件吗?那么它更清楚所有内容。 –
@NorbertvanNobelen编辑 – user7384