【问题标题】:Ingress nginx and gRPC comunication service error入口 nginx 和 gRPC 通信服务错误
【发布时间】:2022-11-02 15:20:08
【问题描述】:

我已经部署了 Nginx 入口控制器,清单:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: namespace-servicename
  name: servicename
  annotations:
    nginx.ingress.kubernetes.io/backend-protocol: "GRPC"
    nginx.ingress.kubernetes.io/ssl-passthrough: "true"
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
    cert-manager.io/cluster-issuer: "letsencrypt-cf-dns"
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  tls:
    - hosts:
        - roabc.domain.net
      secretName: wildcard-roudh-domain-net
  ingressClassName: public
  rules:
  - host: roabc.domain.net
  - http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: servicename
            port:
              number: 80


kubectl 描述 svc 服务名 -n 命名空间-服务名

Name:              servicename
Namespace:         namespace-servicename
Labels:            app=ro**
                   continent=eu
                   hub-id=eu-**-mad013
Annotations:       <none>
Selector:          app=ro**,continent=eu,hub-id=eu-**-mad013
Type:              ClusterIP
IP Family Policy:  SingleStack
IP Families:       IPv4
IP:                10.152.183.44
IPs:               10.152.183.44
Port:              grpc  80/TCP
TargetPort:        80/TCP
Endpoints:         10.1.252.108:80
Session Affinity:  None
Events:            <none>

但是,不幸的是,grpcurl 无法访问 gRPC 应用程序,抛出错误rpc 错误:代码 = 内部描述 = 无法查询服务描述符”*。服务。.搜索列表”:流由 RST_STREAM 终止,错误代码:PROTOCOL_ERROR

grpcurl -d "@" -H "authorization: Bt** dert**" roabc.domain.net:443 
Error invoking method"***.services.**.SearchList": rpc error: code = Internal desc = failed to query for service descriptor"***.services.**.SearchList": **stream terminated by RST_STREAM with error code: PROTOCOL_ERROR**

运行在 Pod 中的 gRPC 应用程序,不断出现此错误:OPENSSL_internal:WRONG_VERSION_NUMBER

 **ssl_transport_security.cc:1455] Handshake failed with fatal error SSL_ERROR_SSL: error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER.**

【问题讨论】:

    标签: nginx ssl grpc kubernetes-ingress nginx-ingress


    【解决方案1】:

    如果您希望将加密流量转发到您的 POD 并在 gRPC 服务器本身终止 TLS,请添加入口注释

    nginx.ingress.kubernetes.io/backend-protocol: "GRPCS"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-18
      • 2018-04-12
      • 2019-02-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-22
      • 2016-10-04
      • 1970-01-01
      相关资源
      最近更新 更多