新手有个问题: go 写的 grpc 服务, 部署到 k8s-ingress, 客户端调用报错 DNS resolution failed for service

2022-01-19 10:25:47 +08:00
 JoeBreeze

服务端

deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: go-grpc-server-demo
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: go-grpc-server-demo
  template:
    metadata:
      labels:
        app: go-grpc-server-demo
    spec:
      containers:
        - name: go-grpc-server-demo
          image: <reponame>/go-grpc-server-demo
          imagePullPolicy: Always
      imagePullSecrets:
        - name: image-pull-secret-default

ingress.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: go-grpc-server-demo
  namespace: default
  annotations:
    nginx.ingress.kubernetes.io/backend-protocol: "GRPC"
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
  ingressClassName: nginx
  tls:
    - hosts:
        - "grpc-demo.domain.com"
      secretName: tls-domain-com
  rules:
    - host: grpc-demo.domain.com
      http:
        paths:
          - path: /
            backend:
              serviceName: traefik
              servicePort: 80

service.yaml

apiVersion: v1
kind: Service
metadata:
  name: go-grpc-server-demo
  namespace: default
  labels:
    service: go-grpc-server-demo
spec:
  ports:
    - port: __PORT__
      protocol: TCP
      targetPort: __PORT__
  selector:
    app: go-grpc-server-demo
  type: ClusterIP

server.go

https://github.com/grpc/grpc-go/blob/91e0aeb192456225adf27966d04ada4cf8599915/examples/features/reflection/server/main.go

1584 次点击
所在节点    Kubernetes
2 条回复
zwpaper
2022-01-19 11:30:40 +08:00
首先得确认,你客户端是在集群里还是集群外,看你部署了 Ingress ,猜测是在集群外,那 Ingress 本来也不帮你解决 DNS 的问题,你得自己加 Host 或者配置 DNS 解析
JoeBreeze
2022-01-19 11:33:33 +08:00
@zwpaper #1 是的是的! 已经解决留了.. 配置了一下 DNS, 我傻了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/829149

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX