登录
首页 >  Golang >  Go问答

在k8s上部署带有入口的Rest + gRPC服务器

来源:stackoverflow

时间:2024-03-03 09:42:26 233浏览 收藏

编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天golang学习网就整理分享《在k8s上部署带有入口的Rest + gRPC服务器》,文章讲解的知识点主要包括,如果你对Golang方面的知识点感兴趣,就不要错过golang学习网,在这可以对大家的知识积累有所帮助,助力开发能力的提升。

问题内容

我使用了示例 grpc helloworld 应用程序 https://github.com/grpc/grpc-go/tree/master/examples/helloworld。该示例在本地系统运行顺利。

我想使用 ingress 将其部署到 kubernetes。

下面是我的配置文件。

service.yaml - 作为 nodeport

apiversion: v1
kind: service
metadata:
  name: grpc-scratch
  labels:
    run: grpc-scratch
  annotations:
    service.alpha.kubernetes.io/app-protocols: '{"grpc":"http2"}'
spec:
  type: nodeport
  ports:
  - name: grpc
    port: 50051
    protocol: tcp
    targetport: 50051
  selector:
    run: example-grpc

ingress.yaml

apiversion: extensions/v1beta1
kind: ingress
metadata:
  name: grpc-ingress
  annotations:
    nginx.org/grpc-services: "grpc"
    kubernetes.io/ingress.class: "nginx"
    kubernetes.io/tls-acme: true
spec:
  tls:
    - hosts:
        - xyz.com
      secretname: grpc-secret
  rules:
    - host: xyz.com
      http:
        paths:
          - path: /grpc
            backend:
              servicename: grpc
              serviceport: 50051

我无法使用 url xyz.com/grpc 向服务器发出 grpc 请求。获取错误

{
  "error": "14 unavailable: name resolution failure"
}

如果我向 xyz.com 发出请求,错误为

{
  "error": "14 UNAVAILABLE: Trying to connect an http1.x server"
}

如有任何帮助,我们将不胜感激。


解决方案


入口对象的后端是服务和端口名称的组合

在您的情况下,您有 servicename: grpc 作为后端,而您的服务的实际名称是 name: grpc-scratch

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: grpc-ingress
  annotations:
    nginx.org/grpc-services: "grpc"
    kubernetes.io/ingress.class: "nginx"
    kubernetes.io/tls-acme: true
spec:
  tls:
    - hosts:
        - xyz.com
      secretName: grpc-secret
  rules:
    - host: xyz.com
      http:
        paths:
          - path: /grpc
            backend:
              serviceName: grpc-scratch
              servicePort: grpc

今天关于《在k8s上部署带有入口的Rest + gRPC服务器》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>