Kubernetes Ingress Setup



我试图设置一个 Kubernetes 入口,将外部 http 流量路由到前端 pod(带有路径/(和后端 pod(带有路径/rest/*(,但我总是收到 400 错误而不是主要的 nginx 索引.html。

所以我在第 https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer 页尝试了 Google Kubernetes 示例,但我总是收到 400 错误。知道吗?

以下是前端"cup-fe"(使用角度应用程序运行nginx(的部署描述符:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: cup-fe
  namespace: default
  labels:
    app: cup-fe
spec:
  replicas: 2
  selector:
    matchLabels:
      app: "cup-fe"
  template:
    metadata:
      labels:
        app: "cup-fe"
    spec:
      containers:
      - image: "eu.gcr.io/gpi-cup-242708/cup-fe:latest"
        name: "cup-fe"

接下来是服务节点端口:

apiVersion: v1
kind: Service
metadata:
  name: cup-fe
  namespace: default
spec:
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: cup-fe
  type: NodePort

最后但并非最不重要的一点是,将前端暴露在外部的入口:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: http-ingress
spec:
  rules:
  - host: cup-fe
    http:
      paths:
      - path: /
        backend:
          serviceName: cup-fe
          servicePort: 80
      - path: /rest/*
        backend:
          serviceName: cup-be
          servicePort: 8080

我留下了"cup-be"部署描述符(运行野蝇(,因为它与"cup-fe"非常相似。另请注意,如果我创建负载均衡器服务而不是 NodePort,我可以访问网页,但我有一些 CORS 问题需要调用后端。

我假设您在整个特定服务配置run: cup-fe使用了错误的选择器。由于我在服务配置中将标签替换为app: cup-fe cup-fe因此出现了相关的 Pod 端点,我也收到了成功的响应。

$ kubectl get ep | grep cup-fe|awk '{print $2}'
<IP_address>:80,<IP_address>:80

如果问题仍然存在,请告诉我并在我的答案下方发表评论。

相关内容

  • 没有找到相关文章

最新更新