简体   繁体   中英

react app not accessibile through kubernetes

app-service.yaml

kind: Service
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.16.0 (0c01309)
  creationTimestamp: null
  labels:
    io.kompose.service: app
  name: app
spec:
  type: NodePort
  ports:
  - name: "5000"
    port: 5000
    targetPort: 5000
    nodePort: 31000
  selector:
    io.kompose.service: app
status:
  loadBalancer: {}

app-deployment.yaml

kind: Deployment
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.16.0 (0c01309)
  creationTimestamp: null
  labels:
    io.kompose.service: app
  name: app
spec:
  replicas: 1
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        io.kompose.service: app
    spec:
      containers:
      - image: jithinchowdary/todo_app:latest
        name: app
        ports:
        - containerPort: 5000
        resources: {}
      restartPolicy: Always
  selector:
    matchLabels:
      io.kompose.service: app
status: {}

mongodb-service.yaml

kind: Service
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.16.0 (0c01309)
  creationTimestamp: null
  labels:
    io.kompose.service: mongodb
  name: mongodb
spec:
  ports:
  - name: "27017"
    port: 27017
    targetPort: 27017
  selector:
    io.kompose.service: mongodb
status:
  loadBalancer: {}

mongodb-deployment.yaml

kind: Deployment
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.16.0 (0c01309)
  creationTimestamp: null
  labels:
    io.kompose.service: mongodb
  name: mongodb
spec:
  replicas: 1
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        io.kompose.service: mongodb
    spec:
      containers:
      - image: mongo
        name: mongodb
        ports:
        - containerPort: 27017
        resources: {}
      restartPolicy: Always
  selector:
      matchLabels:
        io.kompose.service: mongodb
status: {}

used kompose convert to generate the files, docker images are successfully built, server is running properly on port 5000, have entered react app pot and tried to start server got the error of port already in use, which means server is running, still not able to acess the app not able access on port 31000, express server deployed on 5000, mongo 27017

NAME                          READY   STATUS    RESTARTS   AGE
pod/app-5944bf6886-jz79l      1/1     Running   0          80m
pod/mongodb-847948b5f-2clvp   1/1     Running   0          79m

NAME                 TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
service/app          NodePort    10.106.129.159   <none>        5000:31000/TCP   80m
service/kubernetes   ClusterIP   10.96.0.1        <none>        443/TCP          83m
service/mongodb      ClusterIP   10.107.146.128   <none>        27017/TCP        79m

NAME                      READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/app       1/1     1            1           80m
deployment.apps/mongodb   1/1     1            1           79m

NAME                                DESIRED   CURRENT   READY   AGE
replicaset.apps/app-5944bf6886      1         1         1       80m
replicaset.apps/mongodb-847948b5f   1         1         1       79m

curl 10.106.129.159:5000
ccurl: (7) Failed to connect to 10.106.129.159 port 5000: Operation timed out```

The NodePort here is the port on the host(vm), try <your_host_ip>:31000 NodePort => https://kubernetes.io/docs/concepts/services-networking/service/#nodeport you can also try :5000 to access your service.

If you are using minikube/minishift, the vm ip is the host ip. If you are running it on a multi node cluster,

  1. oc get pods -o wide to get the node
  2. then oc get node <node> to get the ip

FYI. 1. If you want to expose your api, NodePort is not a good option. 2. don't use "5000" as a service name

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM