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

Istio和gRPC的YAML配置

邵兴文
2023-03-14

我正在为Istio gRPC开发POC,Istio版本是1.6,但是我看不到任何gRPC流量。

我怀疑我的Istio Gateway或VirtualService遗漏了什么,但我不知道这里出了什么问题?有人能帮我查看yaml文件并纠正我的yaml中缺失或错误的地方吗?

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: syslogserver
  name: syslogserver
  namespace: mynamespace
spec:
  selector:
    matchLabels:
      app: syslogserver
  replicas: 1
  template:
    metadata:
      labels:
        app: syslogserver
    spec:
      containers:
        - name: syslogserver
          image: docker.io/grpc-syslog:latest
          imagePullPolicy: Always
          ports:
            - containerPort: 5555
      imagePullSecrets:
        - name: pull-image-credential
---
apiVersion: v1
kind: Service
metadata:
  name: syslogserver
  namespace: mynamespace
  labels:
    app: syslogserver
spec:
  selector:
    app: syslogserver
  ports:
  - name: grpc
    port: 6666
    protocol: TCP
    targetPort: 5555
---
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: xyz-ingress-gateway
  namespace: istio-system
spec:
  selector:
    istio: ingressgateway
  servers:
    - port:
        number: 7777
        name: http2
        protocol: HTTP2
      hosts:
        - "*"
---
apiVersion: v1
kind: Service
metadata:
  name: xyz-istio-ingressgateway
  namespace: istio-system
  labels:
    app: xyz-istio-ingressgateway
spec:
  selector:
    app: istio-ingressgateway
    istio: ingressgateway
  type: NodePort
  ports:
    - protocol: TCP
      nodePort: 32555
      port: 7777
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: xyz-ingress-gateway-virtualservice
  namespace: istio-system
spec:
  hosts:
    - "*"
  gateways:
    - xyz-ingress-gateway
  #tls:
  http:
    - match:
        - port: 7777
      route:
        - destination:
            host: syslogserver.mynamespace.svc.cluster.local
            port:
              number: 6666
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: xyz-destinationrule
  namespace: istio-system
spec:
  host: syslogserver.mynamespace.svc.cluster.local
  trafficPolicy:
    loadBalancer:
      simple: ROUND_ROBIN

请给予指导,谢谢。

共有1个答案

东弘扬
2023-03-14

在我看来,应该删除服务< code >名称:XYZ-istio-Ingres gateway ,因为这不是使用Istio时的通信方式。

相反,您应该使用 istio 入口网关,并结合网关、虚拟服务和目标规则。

如果您在网关上选择了端口号7777,则必须在istio入口网关上打开此端口,在这个stackoverflow问题中有几种方法可以做到这一点。有默认的istio入口网关值。

配置端口后,您可以使用kubectl get svc istio-ingressgate-n istio-system获取istio入口网关外部IP。

如果设置了外部 IP 值,则您的环境具有可用于入口网关的外部负载均衡器。如果 EXTERNAL-IP 值处于挂起状态,则您的环境不会为入口网关提供外部负载均衡器。在这种情况下,您可以使用服务的节点端口访问网关。

您的其余配置对我来说看起来不错。只是提醒您将sidecar代理注入您的pod。

 类似资料:
  • 金属(版本0.7.3) Kubernetes(版本1.12.2) ISTIO(版本1.0.3) 我会从什么起作用开始。 所有补充服务均已部署,大部分正在工作: null 网关 虚拟服务 我仔细检查了一下,这不是DNS的问题,因为我可以通过busybox或使用K8S仪表板进入入口网关的shell

  • 5.0.0-alpha 数据分片 配置项说明 dataSources: # 省略数据源配置,请参考使用手册 rules: - !SHARDING tables: # 数据分片规则配置 <logic-table-name> (+): # 逻辑表名称 actualDataNodes (?): # 由数据源名 + 表名组成(参考Inline语法规则) databas

  • 简介 YAML 提供通过配置文件的方式与 ShardingSphere-JDBC 交互。配合治理模块一同使用时,持久化在配置中心的配置均为 YAML 格式。 YAML 配置是最常见的配置方式,可以省略编程的复杂度,简化用户配置。 使用方式 创建简单数据源 通过 YamlShardingSphereDataSourceFactory 工厂创建的 ShardingSphereDataSource 实现

  • 我已经看到了其他相关的问题:Spring Boot yaml字符串列表的配置 也有同样的问题。 我应用了解决方案,并四处工作,发现解决方案有点棘手。 有没有办法让列表使用@value? 如果不是现在,将来会有吗? 多谢.

  • 我正在使用这个库(grpc spring boot starter),所以我可以在spring boot应用程序中使用grpc功能。 我想知道如何正确地将其与Istio Jaeger跟踪集成。 我需要知道发生这种情况所需的依赖关系是什么。 我有两(2)个应用程序,一个用作gRPC客户端,一个用作gRPC服务器, 期望gRPC客户端和gRPC服务器之间的跟踪必须反映在Jaeger中。但是这并没有发生

  • 引入 Maven 依赖 <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>shardingsphere-jdbc-core</artifactId> <version>${shardingsphere.version}</version> </dependency> <!-- 使用