无法将基本 OpenWhisk 操作部署到 Kubernetes 运行 Minikube
Cannot deploy basic OpenWhisk action onto Kubernetes running with Minikube
我正在尝试在 Kubernetes 上设置 Apache OpenWhisk 无服务器框架的简单 POC 运行。我在 Minikube 中使用 MacOS。以下是规格:
Kubernetes: v1.20.2
Minikube: v1.17.0
Docker: 20.10.0-rc1, 4.26GB allocated
以下是 Minikube 的设置步骤:
$ minikube start --cpus 2 --memory 4096 --kubernetes-version=v1.20.2
$ minikube ssh -- sudo ip link set docker0 promisc on
$ kubectl create namespace openwhisk
$ kubectl label nodes --all openwhisk-role=invoker
使用 Helm 安装 OpenWhisk:
$ helm install owdev ./helm/openwhisk -n openwhisk --create-namespace -f mycluster.yaml
配置 Whisk CLI:
$ wsk property set --apihost 192.168.49.2:31001
$ wsk property set --auth 23bc46b1-71f6-4ed5-8c54-816aa4f8c502:123zO3xZCLrMN6v2BKK1dXYFpXlPkccOFqm12CdAsMgRU4VrNZ9lyGVCGuMDGIwP
Minikube 的 192.168.49.2
IP 地址已通过输入确认:
$ minikube ip
这是我的 mycluster.yaml
文件:
whisk:
ingress:
type: NodePort
apiHostName: 192.168.49.2
apiHostPort: 31001
nginx:
httpsNodePort: 31001
我检查了我的 OpenWhisk 设置的运行状况:
$ kubectl get pods -n openwhisk
NAME READY STATUS RESTARTS AGE
owdev-alarmprovider-5b86cb64ff-q86nj 1/1 Running 0 137m
owdev-apigateway-bccbbcd67-7q2r8 1/1 Running 0 137m
owdev-controller-0 1/1 Running 13 137m
owdev-couchdb-584676b956-7pxtc 1/1 Running 0 137m
owdev-gen-certs-7227t 0/1 Completed 0 137m
owdev-init-couchdb-g6vhb 0/1 Completed 0 137m
owdev-install-packages-sg2f4 1/1 Running 0 137m
owdev-invoker-0 1/1 Running 1 137m
owdev-kafka-0 1/1 Running 0 137m
owdev-kafkaprovider-5574d4bf5f-vvdb9 1/1 Running 0 137m
owdev-nginx-86749d59cb-mxxrt 1/1 Running 0 137m
owdev-redis-d65649c5b-vd8d4 1/1 Running 0 137m
owdev-wskadmin 1/1 Running 0 137m
owdev-zookeeper-0 1/1 Running 0 137m
wskowdev-invoker-00-13-prewarm-nodejs10 1/1 Running 0 116m
wskowdev-invoker-00-14-prewarm-nodejs10 1/1 Running 0 116m
wskowdev-invoker-00-15-whisksystem-invokerhealthtestaction0 1/1 Running 0 112m
最后,我在 these instructions taken directly from the OpenWhisk documentation 之后创建了一个简单的 hello world 操作。当我尝试测试操作时,出现网络超时:
$ wsk action create helloJS hello.js
error: Unable to create action 'helloJS': Put "https://192.168.49.2:31001/api/v1/namespaces/_/actions/helloJS?overwrite=false": dial tcp 192.168.49.2:31001: i/o timeout
我尝试使用 -d
开关打开调试模式,但无法充分利用我看到的反馈。
我的感觉是这里有一个错误,或者 Mac 上的 Minikube 从未打算在 OpenWhisk 上得到完全支持。
任何人都可以建议我可以尝试使此设置和操作正常运行吗?
我们不久前停止为 Minikube 维护 OpenWhisk。随着 MacOS 上 Docker 桌面内置的成熟 Kubernetes 集群的可用性,以及 Windows 和 kind
(https://kind.sigs.k8s.io) 在我们所有支持 Minikube 的平台上可用工作量超过了它的价值。
等待 pod(以名称 owdev-install-packages- 开头)包完成。
这可能需要一些时间,之后它应该会起作用。
我正在尝试在 Kubernetes 上设置 Apache OpenWhisk 无服务器框架的简单 POC 运行。我在 Minikube 中使用 MacOS。以下是规格:
Kubernetes: v1.20.2
Minikube: v1.17.0
Docker: 20.10.0-rc1, 4.26GB allocated
以下是 Minikube 的设置步骤:
$ minikube start --cpus 2 --memory 4096 --kubernetes-version=v1.20.2
$ minikube ssh -- sudo ip link set docker0 promisc on
$ kubectl create namespace openwhisk
$ kubectl label nodes --all openwhisk-role=invoker
使用 Helm 安装 OpenWhisk:
$ helm install owdev ./helm/openwhisk -n openwhisk --create-namespace -f mycluster.yaml
配置 Whisk CLI:
$ wsk property set --apihost 192.168.49.2:31001
$ wsk property set --auth 23bc46b1-71f6-4ed5-8c54-816aa4f8c502:123zO3xZCLrMN6v2BKK1dXYFpXlPkccOFqm12CdAsMgRU4VrNZ9lyGVCGuMDGIwP
Minikube 的 192.168.49.2
IP 地址已通过输入确认:
$ minikube ip
这是我的 mycluster.yaml
文件:
whisk:
ingress:
type: NodePort
apiHostName: 192.168.49.2
apiHostPort: 31001
nginx:
httpsNodePort: 31001
我检查了我的 OpenWhisk 设置的运行状况:
$ kubectl get pods -n openwhisk
NAME READY STATUS RESTARTS AGE
owdev-alarmprovider-5b86cb64ff-q86nj 1/1 Running 0 137m
owdev-apigateway-bccbbcd67-7q2r8 1/1 Running 0 137m
owdev-controller-0 1/1 Running 13 137m
owdev-couchdb-584676b956-7pxtc 1/1 Running 0 137m
owdev-gen-certs-7227t 0/1 Completed 0 137m
owdev-init-couchdb-g6vhb 0/1 Completed 0 137m
owdev-install-packages-sg2f4 1/1 Running 0 137m
owdev-invoker-0 1/1 Running 1 137m
owdev-kafka-0 1/1 Running 0 137m
owdev-kafkaprovider-5574d4bf5f-vvdb9 1/1 Running 0 137m
owdev-nginx-86749d59cb-mxxrt 1/1 Running 0 137m
owdev-redis-d65649c5b-vd8d4 1/1 Running 0 137m
owdev-wskadmin 1/1 Running 0 137m
owdev-zookeeper-0 1/1 Running 0 137m
wskowdev-invoker-00-13-prewarm-nodejs10 1/1 Running 0 116m
wskowdev-invoker-00-14-prewarm-nodejs10 1/1 Running 0 116m
wskowdev-invoker-00-15-whisksystem-invokerhealthtestaction0 1/1 Running 0 112m
最后,我在 these instructions taken directly from the OpenWhisk documentation 之后创建了一个简单的 hello world 操作。当我尝试测试操作时,出现网络超时:
$ wsk action create helloJS hello.js
error: Unable to create action 'helloJS': Put "https://192.168.49.2:31001/api/v1/namespaces/_/actions/helloJS?overwrite=false": dial tcp 192.168.49.2:31001: i/o timeout
我尝试使用 -d
开关打开调试模式,但无法充分利用我看到的反馈。
我的感觉是这里有一个错误,或者 Mac 上的 Minikube 从未打算在 OpenWhisk 上得到完全支持。
任何人都可以建议我可以尝试使此设置和操作正常运行吗?
我们不久前停止为 Minikube 维护 OpenWhisk。随着 MacOS 上 Docker 桌面内置的成熟 Kubernetes 集群的可用性,以及 Windows 和 kind
(https://kind.sigs.k8s.io) 在我们所有支持 Minikube 的平台上可用工作量超过了它的价值。
等待 pod(以名称 owdev-install-packages- 开头)包完成。 这可能需要一些时间,之后它应该会起作用。