apache / openwhisk-deploy-kube

The Apache OpenWhisk Kubernetes Deployment repository supports deploying the Apache OpenWhisk system on Kubernetes and OpenShift clusters.
https://openwhisk.apache.org/
Apache License 2.0
297 stars 231 forks source link

Can not call web action from browser #655

Closed asok1 closed 3 years ago

asok1 commented 3 years ago

How can I call a web action from my browser, when my OpenWhisk deployment is on a company sandbox server?

I have an OpenWhisk deployment setup on a company sandbox server using this guide: Deploying OpenWhisk on kind. The server is running CentOS 7. I created a web action and I am able to call with curl -k https://apiHostName:apiHostPort/api/v1/web/guest/demo/hello?name=myName where apiHostName and apiHostPort are the values defined in mycluster.yaml. However, trying to access the above url from my browser returns ERR_CONNECTION_TIMED_OUT.

[root[DEV]@vx3a27 wskcluster]# kubectl -n openwhisk get svc
NAME               TYPE        CLUSTER-IP      EXTERNAL-IP    PORT(S)                      AGE
owdev-apigateway   ClusterIP   10.96.9.60      A.B.C.D        8080/TCP,9000/TCP            6d1h
owdev-controller   ClusterIP   10.96.104.180   <none>         8080/TCP                     6d1h
owdev-couchdb      ClusterIP   10.96.40.104    <none>         5984/TCP                     6d1h
owdev-kafka        ClusterIP   None            <none>         9092/TCP                     6d1h
owdev-nginx        NodePort    10.96.84.3      A.B.C.D        80:31486/TCP,443:31001/TCP   6d1h
owdev-redis        ClusterIP   10.96.84.177    <none>         6379/TCP                     6d1h
owdev-zookeeper    ClusterIP   None            <none>         2181/TCP,2888/TCP,3888/TCP   6d1h

I have tried setting the external API of both my nginx and apigateway services as seen above, where A.B.C.D is the IP of my sandbox obtained with ifconfig. Running both curl -k and the browser with A.B.C.D yields ERR_CONNECTION_REFUSED.

What else can I try to get this to work?

style95 commented 3 years ago

Are you able to curl against the nginx IP?

You should get something like this:

$ curl 10.107.131.27
{"api_paths":["/api/v1"],"description":"OpenWhisk","limits":{"actions_per_minute":60,"concurrent_actions":100,"max_action_duration":360000,"max_action_logs":1048576,"max_action_memory":1073741824,"min_action_duration":100,"min_action_logs":0,"min_action_memory":536870912,"sequence_length":50,"triggers_per_minute":240},"runtimes":{...},"support":{"github":"https://github.com/apache/openwhisk/issues","slack":"http://slack.openwhisk.org"}}

Since the error is CONNECTION_REFUSED rather than CONNECTION_TIMEDOUT, I suppose your ow deployment is not complete. There might be some failures in some pods. It seems nginx cannot connect to controllers.

asok1 commented 3 years ago

No, I get this:

# curl 10.96.84.3
curl: (7) Failed connect to 10.96.84.3:80; Connection refused

Also, looking into the pods I found an error in the owdev-tests-smoketest pod:

# kubectl -n openwhisk get pods
NAME                                     READY   STATUS      RESTARTS   AGE
owdev-alarmprovider-6d54d457f8-2sc6p     1/1     Running     0          19m
owdev-apigateway-6b6d6cc4ff-rw57j        1/1     Running     0          19m
owdev-controller-0                       1/1     Running     0          19m
owdev-couchdb-54b489b58d-vpmsh           1/1     Running     0          19m
owdev-gen-certs-w6ph2                    0/1     Completed   0          19m
owdev-init-couchdb-9zbn9                 0/1     Completed   0          19m
owdev-install-packages-g6mnz             0/1     Completed   0          19m
owdev-invoker-0                          1/1     Running     0          19m
owdev-kafka-0                            1/1     Running     0          19m
owdev-kafkaprovider-84bfb77776-9p2r4     1/1     Running     0          19m
owdev-nginx-6966cdf9dc-hkq2d             1/1     Running     0          19m
owdev-redis-5bc6bf6b4c-6b5z2             1/1     Running     0          19m
owdev-tests-package-checker              0/1     Completed   0          2m48s
owdev-tests-smoketest                    0/1     Error       0          2m45s
owdev-wskadmin                           1/1     Running     0          19m
owdev-zookeeper-0                        1/1     Running     0          19m
wskowdev-invoker-00-1-prewarm-nodejs10   1/1     Running     0          17m
wskowdev-invoker-00-2-prewarm-nodejs10   1/1     Running     0          17m
wskowdev-invoker-00-4-prewarm-nodejs10   1/1     Running     0          12m
wskowdev-invoker-00-5-prewarm-nodejs10   1/1     Running     0          4m10s

Here's a more comprehensive overview:

# kubectl get all -n openwhisk -o wide
NAME                                         READY   STATUS      RESTARTS   AGE   IP            NODE           NOMINATED NODE   READINESS GATES
pod/owdev-alarmprovider-6d54d457f8-2sc6p     1/1     Running     0          41m   10.244.2.8    kind-worker2   <none>           <none>
pod/owdev-apigateway-6b6d6cc4ff-rw57j        1/1     Running     0          41m   10.244.1.2    kind-worker    <none>           <none>
pod/owdev-controller-0                       1/1     Running     0          41m   10.244.1.3    kind-worker    <none>           <none>
pod/owdev-couchdb-54b489b58d-vpmsh           1/1     Running     0          41m   10.244.1.9    kind-worker    <none>           <none>
pod/owdev-gen-certs-w6ph2                    0/1     Completed   0          41m   10.244.1.6    kind-worker    <none>           <none>
pod/owdev-init-couchdb-9zbn9                 0/1     Completed   0          41m   10.244.2.7    kind-worker2   <none>           <none>
pod/owdev-install-packages-g6mnz             0/1     Completed   0          41m   10.244.2.3    kind-worker2   <none>           <none>
pod/owdev-invoker-0                          1/1     Running     0          41m   10.244.2.4    kind-worker2   <none>           <none>
pod/owdev-kafka-0                            1/1     Running     0          41m   10.244.1.12   kind-worker    <none>           <none>
pod/owdev-kafkaprovider-84bfb77776-9p2r4     1/1     Running     0          41m   10.244.2.2    kind-worker2   <none>           <none>
pod/owdev-nginx-6966cdf9dc-hkq2d             1/1     Running     0          41m   10.244.1.14   kind-worker    <none>           <none>
pod/owdev-redis-5bc6bf6b4c-6b5z2             1/1     Running     0          41m   10.244.1.10   kind-worker    <none>           <none>
pod/owdev-tests-package-checker              0/1     Completed   0          24m   10.244.1.17   kind-worker    <none>           <none>
pod/owdev-tests-smoketest                    0/1     Error       0          24m   10.244.1.18   kind-worker    <none>           <none>
pod/owdev-wskadmin                           1/1     Running     0          41m   10.244.2.5    kind-worker2   <none>           <none>
pod/owdev-zookeeper-0                        1/1     Running     0          41m   10.244.1.13   kind-worker    <none>           <none>
pod/wskowdev-invoker-00-4-prewarm-nodejs10   1/1     Running     0          33m   10.244.2.13   kind-worker2   <none>           <none>
pod/wskowdev-invoker-00-5-prewarm-nodejs10   1/1     Running     0          26m   10.244.2.14   kind-worker2   <none>           <none>

NAME                       TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE   SELECTOR
service/owdev-apigateway   ClusterIP   10.96.66.141    <none>        8080/TCP,9000/TCP            41m   name=owdev-apigateway
service/owdev-controller   ClusterIP   10.96.152.105   <none>        8080/TCP                     41m   name=owdev-controller
service/owdev-couchdb      ClusterIP   10.96.178.189   <none>        5984/TCP                     41m   name=owdev-couchdb
service/owdev-kafka        ClusterIP   None            <none>        9092/TCP                     41m   name=owdev-kafka
service/owdev-nginx        NodePort    10.96.52.139    <none>        80:30556/TCP,443:31001/TCP   41m   name=owdev-nginx
service/owdev-redis        ClusterIP   10.96.12.47     <none>        6379/TCP                     41m   name=owdev-redis
service/owdev-zookeeper    ClusterIP   None            <none>        2181/TCP,2888/TCP,3888/TCP   41m   name=owdev-zookeeper

NAME                                  READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS      IMAGES                          SELECTOR
deployment.apps/owdev-alarmprovider   1/1     1            1           41m   alarmprovider   openwhisk/alarmprovider:2.2.0   name=owdev-alarmprovider
deployment.apps/owdev-apigateway      1/1     1            1           41m   apigateway      openwhisk/apigateway:1.0.0      name=owdev-apigateway
deployment.apps/owdev-couchdb         1/1     1            1           41m   couchdb         apache/couchdb:2.3              name=owdev-couchdb
deployment.apps/owdev-kafkaprovider   1/1     1            1           41m   kafkaprovider   openwhisk/kafkaprovider:2.1.0   name=owdev-kafkaprovider
deployment.apps/owdev-nginx           1/1     1            1           41m   nginx           nginx:1.19                      name=owdev-nginx
deployment.apps/owdev-redis           1/1     1            1           41m   redis           redis:4.0                       name=owdev-redis

NAME                                             DESIRED   CURRENT   READY   AGE   CONTAINERS      IMAGES                          SELECTOR
replicaset.apps/owdev-alarmprovider-6d54d457f8   1         1         1       41m   alarmprovider   openwhisk/alarmprovider:2.2.0   name=owdev-alarmprovider,pod-template-hash=6d54d457f8
replicaset.apps/owdev-apigateway-6b6d6cc4ff      1         1         1       41m   apigateway      openwhisk/apigateway:1.0.0      name=owdev-apigateway,pod-template-hash=6b6d6cc4ff
replicaset.apps/owdev-couchdb-54b489b58d         1         1         1       41m   couchdb         apache/couchdb:2.3              name=owdev-couchdb,pod-template-hash=54b489b58d
replicaset.apps/owdev-kafkaprovider-84bfb77776   1         1         1       41m   kafkaprovider   openwhisk/kafkaprovider:2.1.0   name=owdev-kafkaprovider,pod-template-hash=84bfb77776
replicaset.apps/owdev-nginx-6966cdf9dc           1         1         1       41m   nginx           nginx:1.19                      name=owdev-nginx,pod-template-hash=6966cdf9dc
replicaset.apps/owdev-redis-5bc6bf6b4c           1         1         1       41m   redis           redis:4.0                       name=owdev-redis,pod-template-hash=5bc6bf6b4c

NAME                                READY   AGE   CONTAINERS   IMAGES
statefulset.apps/owdev-controller   1/1     41m   controller   openwhisk/controller:ed3f76e
statefulset.apps/owdev-invoker      1/1     41m   invoker      openwhisk/invoker:ed3f76e
statefulset.apps/owdev-kafka        1/1     41m   kafka        wurstmeister/kafka:2.12-2.3.1
statefulset.apps/owdev-zookeeper    1/1     41m   zookeeper    zookeeper:3.4

NAME                               COMPLETIONS   DURATION   AGE   CONTAINERS         IMAGES                       SELECTOR
job.batch/owdev-gen-certs          1/1           39s        41m   gen-certs          openwhisk/ow-utils:ed3f76e   controller-uid=917246a9-4cbd-4354-9d78-9074e377209c
job.batch/owdev-init-couchdb       1/1           75s        41m   init-couchdb       openwhisk/ow-utils:ed3f76e   controller-uid=071bf45f-0ca6-45af-9a75-2caeb6b5e100
job.batch/owdev-install-packages   1/1           4m24s      41m   install-packages   openwhisk/ow-utils:ed3f76e   controller-uid=b214acfa-4ee1-408c-a3e5-ed5734ca7295

Note that the cluster was reset so the IPs have changed and the external IP was deleted but the functionality is still the same.

style95 commented 3 years ago

I recommend looking into controller or nginx logs as you even cannot connect to it.

dgrove-oss commented 3 years ago

Closing as stale