Trying to run echo server in Minikube with Istio getting connection refused from client socker

292 views Asked by At

I have a simple echo server (protocol TCP) written in CPP. I am able to put the server in docker container and with port mapping it works. So I think my client server are OK. When I upload the server image in Kubernetes and deploy Istio with ingress Gateway listening on port 31400 which I think is the right one when using tcp I get connection refused from client trying to connect to the socket.

apiVersion: apps/v1
kind: Deployment
metadata:
    name: tcp-echo-deployment
    labels:
        app: tcp-echo
        system: example
spec:
   replicas: 1
   selector:
      matchLabels:
              app: tcp-echo
       template:
          metadata:
             labels:
                    app: tcp-echo
                    system: example
          spec:
            containers:
            - name: tcp-echo-container
              image: igordptx/my-tcp-server
              imagePullPolicy: Always
              env:
              - name: TCP_PORT
                value: "2701"
              - name: NODE_NAME
                valueFrom:
                  fieldRef:
                    fieldPath: spec.nodeName
              - name: POD_NAME
                valueFrom:
                  fieldRef:
                    fieldPath: metadata.name
              - name: POD_NAMESPACE
                valueFrom:
                  fieldRef:
                      fieldPath: metadata.namespace
              - name: POD_IP
                  valueFrom:
                   fieldRef:
                      fieldPath: status.podIP
              - name: SERVICE_ACCOUNT
                valueFrom:
                   fieldRef:
                      fieldPath: spec.serviceAccountName
                ports:
                   - name: tcp-echo-port
                     containerPort: 2701

`

apiVersion: v1
kind: Service
metadata:
        name: "tcp-echo-service"
        labels:
                app: tcp-echo
                system: example
spec:
        selector:
                app: "tcp-echo"
        ports:
                - protocol: "TCP"
                  port: 2701
                  targetPort: 2701

I am new at this and I am trying to get a simple echo server to work. Attaching pictures of the YAML files of the Deployment,service,Gateway and virtual service for the routing.

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
        name: echo-tcp-gateway
spec:
        selector:
                istio: ingressgateway
        servers:
        - port:
                number: 31400
                name: tcp-echo
                protocol: TCP
          hosts:
              - "*"


apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
        name: tcp-echo-vs-from-gw
spec:
        hosts:
             - "*"
        gateways:
             - echo-tcp-gateway
        tcp:
             - match:
                        - port: 31400
               route:
                        - destination:
                                 host: tcp-echo-service
                                 port:
                                        number: 2701
0

There are 0 answers