kubernetes - 在具有固定域和端口的 GKE 中运行可扩展服务

标签 kubernetes google-cloud-platform google-cloud-functions cloudflare

我有一个交付的应用程序,其中一个 URL 是硬编码的“upload.mydomain.io:123123/myRoute”。

此 DNS 指向 NGINX 将流量分配给服务的 VM。
现在我需要在虚拟机前面放置一个高度可扩展的服务,而不能更改硬编码的 URL。到目前为止我已经尝试过:

  • 云功能
  • 应用引擎
  • 云跑
  • 我自己的 Kubernetes 集群。

  • 作为 DNS 分发器,我使用 Cloudflare,我还尝试使用 Page Rules 做一些事情。

    功能 -> 在欧盟没有域名

    云运行 -> 仅端口 80

    App Engine -> 仅端口 8080

    Kubernetes Ingress -> 我可以打开我的域,也可以将端口作为服务端口,但是在 URL 中端口消失了

    这是我的 Kubernetes list :
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      creationTimestamp: null
      labels:
        app: myApp-api
      name: myApp-api
    spec:
      replicas: 3
      strategy:
        type: Recreate
      template:
        metadata:
          creationTimestamp: null
          labels:
            app: myApp-api
        spec:
          containers:
          - name: myApp-api
            env:
            - name: NODE_ENV
              value: production
            image: eu.gcr.io/myApp-123/myApp-api:latest
            imagePullPolicy: Always
            ports:
            - containerPort: 21337
          restartPolicy: Always
    status: {}
    
    
    ---
    
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: myApp-api-service
      name: myApp-api-service
    spec:
      ports:
      - name: myApp-api-port
        port: 21337
        targetPort: 21337
      selector:
        app: myApp-api
      type: LoadBalancer
    status:
      loadBalancer: {}
    
    ---
    
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: myApp-api-ingress
    spec:
      tls:
      - hosts:
        - upload.myDomain.io
        secretName: tls-secret
      rules:
      - host: upload.myDomain.io
        http:
          paths:
          - path: /*
            backend:
              serviceName: myApp-api-service
              servicePort: myApp-api-port
    

    是否有可能通过某种服务以某种方式创建这条路线?

    最佳答案

    您可以使用 Loadbalancer 类型的 Kubernetes 服务来实现相同的目的。

    例如

    apiVersion: v1
    kind: Service
    metadata:
      name: my-service
    spec:
      selector:
        app: MyApp
      ports:
        - protocol: TCP
          port: 123123
          targetPort: 8000
    

    引用:https://cloud.google.com/kubernetes-engine/docs/concepts/service &
    https://kubernetes.io/docs/concepts/services-networking/#loadbalancer

    关于kubernetes - 在具有固定域和端口的 GKE 中运行可扩展服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57741402/

    相关文章:

    azure - 证书管理器 - 我的证书的有效期和续订过程

    google-cloud-platform - 如何增加 Google Cloud Platform 中的后端服务配额?

    kubernetes - istio是否允许相交规则?应用它的策略是什么?

    android - GCM 与发送通知的自定义实现

    firebase - 从 Google Cloud Storage 获取更短的文件 URL(使用 Firebase Cloud Functions)

    node.js - firebase 函数 :hosting gives error: time to go build something extraordinary

    kubernetes - CrashLoopBackOff 时如何自动停止滚动更新?

    docker - 如何在 google kubernetes 引擎上设置环境变量?

    ssh - 无法通过 ssh 进入 Google 引擎,循环连接

    angular - 如何为 Firebase Cloud Functions 使用应用程序环境变量?