1

我是 Kubernetes 的新手,我正在尝试使用 TLS 在 Google Container Engine 上进行 HTTP 负载平衡(使用包含的 GCE 入口控制器)。即使按照谷歌的官方教程,我的错误也是可以重复的。为了便于阅读,我总结了以下过程config.yaml

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根据文档,这意味着它很可能是自举(但它总是这样)。我可以在控制台上看到后端不健康。

在文档中,为避免这一需求:

  • 防火墙规则(在上面完成)
  • 服务必须以 200 响应(但我在nginx本地测试了图像,并通过通用负载均衡器测试了服务,工作正常)

那么这个错误的原因是什么,我该如何进一步调试呢?

4

1 回答 1

1

我一夜之间离开了集群,现在它正在工作。似乎需要相当多的时间来引导,或者在谷歌云方面已经修复了一些东西。

于 2016-06-28T22:07:48.010 回答