当前位置: 首页 > 知识库问答 >
问题:

库伯内特斯入口设置

江雅懿
2023-03-14

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

所以我在第https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer页尝试了谷歌库伯内特斯的例子,但我总是得到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”非常相似。另请注意,如果我创建LoadBalancer服务而不是NodePort,我可以访问网页,但我有一些CORS问题要调用后端。

共有1个答案

华易安
2023-03-14

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

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

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

 类似资料:
  • 我怎样才能使用入口呢?我尝试使用NodePort和--Target etPort=1001,我在servicePort中添加了80在。 kubectl公开部署测试--Target-port=1001--type=NodePort 我得到了错误 找不到后端-404 我使用的是正确的方法还是需要遵循其他方法?

  • 新来的。我想知道是否有人可以帮助我区分我可以用来识别入口控制器和通过YAML和服务识别入口的特征。我有一个预先存在的集群,我认为入口控制器可能是通过helm安装的,但我不确定。有没有办法了解helm在安装nginx ingress控制器时使用的yaml?

  • 是否可以在库伯内特斯中配置入口控制器,仅当传入请求的标头具有特定值时才将HTTP请求路由到服务? 实例 带有以下标头的HTTP请求 应该转发给服务1 带有以下标头的HTTP请求 应该被阻止 如果可能的话,你能详细一点或指向一些文档,因为我找不到这种用例的文档吗

  • 我的公司有一个伪造的CA证书。实例com和一张伪造地图的唱片。实例com连接到我们的负载平衡器的IP 负载平衡器正在将流量转发到我们的Kubernetes群集。 在集群中,我部署了nginx ingress helm图表,在30200处公开了https节点端口 我根据上述证书创建了一个名为test secret的k8s TLS机密。 我部署了一个带有服务“test”的应用程序,并安装了以下入口:

  • 我已经研究Kubernetes几个星期了,并使用kube lego NGINX示例(https://github.com/jetstack/kube-lego)已使用DigitalOcean上的Rancher成功地将服务部署到Kubernetes群集。 我已经部署了示例静态站点、Wordpress、Laravel、Craft CMS等。所有这些都使用自定义命名空间、部署、秘密、具有外部注册表的容器

  • 为了在minikube的k8s上运行php fpm应用程序,我缺少一些kubernetes ingress nginx配置。 k8s配置文件: 先前docker开发环境的docker Nginx映像上使用的Nginx服务器工作配置文件(Nginx位于docker中,是与php容器分离的容器): 在浏览器上访问minikube ip时,出现502错误。 我已经安装了运行以下命令的ingress ng