ProHoster > Blog > Tsamaiso > Khomphutha e se nang seva e nang le OpenWhisk, Karolo ea 4
Khomphutha e se nang seva e nang le OpenWhisk, Karolo ea 4
Sengoliloeng sena se phethela letoto la lintlha tse fetoletsoeng ka OpenWhisk ho tsoa ho sengoli Priti Desai. Kajeno re tla sheba mokhoa oa ho tsamaisa OpenWhisk holim'a Kubernetes ka litaelo tse lokisitsoeng ho sebetsa le mefuta ea morao-rao ea likopo. E tla boela e koahele mokhoa oa ho tsamaisa mesebetsi ea OpenWhisk o sebelisa Knative le TektonCD ho Kubernetes o sebelisa nako ea ho sebetsa ea Nodejs.
Ho kenya OpenWhisk ho Kubernetes
Kamora matsatsi a 'maloa, ke ile ka leka ho tsamaisa OpenWhisk ho Kubernetes ho theha sebaka sa tlhahlobo se bonolo le se potlakileng. 'Me kaha ke le mocha ho Kubernetes, ke lumela hore letsatsi le halofo li ile tsa sebelisoa mosebetsing o atlehileng. IN sena Libaka tsa polokelo li na le litaelo tse hlakileng haholo tsa ho tsamaisa OpenWhisk ho Kubernetes. Mona ke litaelo tsa ho tsamaisa tse etselitsoeng Mac (Hape ke tla etsa tsohle ho Linux hobane ke khetha Linux. - hoo e ka bang. mofetoleli).
Ho kenya mookameli oa sephutheloana asdf, ka mor'a moo re lokisa ka bohona ~/.bash_profile kapa e tšoana le ena:
[Hape, tlola mohato ona ho Linux. - hoo e ka bang. mofetoleli]
Kenya minikube le kubelet:
$ asdf install kubectl 1.9.0
$ asdf global kubectl 1.9.0
$ asdf install minikube 0.25.2
$ asdf global minikube 0.25.2
[liphetolelo tse itseng li kentsoe, empa ke hlahlobile tsohle ho liphetolelo tsa morao-rao tse fumanehang bakeng sa Linux; Ke belaela hore o ka kenya morao-rao ka mokhoa o sireletsehileng. - hoo e ka bang. mofetoleli]
Ho Linux, mohato ona o etsoa ka mokhoa o tjena (ntho e 'ngoe le e' ngoe e kenngoa ~/bin, e thathamisitsoeng ho PATH ea ka, molaetsa oa mofetoleli):
$ brew install kubernetes-helm
$ helm init # init Helm Tiller, не нужно на Helm v3+
$ kubectl get pods -n kube-system # verify that tiller-deploy is in the running state, не нужно на helm v3+
$ kubectl create clusterrolebinding tiller-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default
$ helm install ./openwhisk/helm/ --namespace=openwhisk -f mycluster.yaml
[Ho Linux ka liphetolelo tsa morao-rao (v3.0.1 e ne e fumaneha) e tla fapana hanyane. - hoo e ka bang. mofetoleli]
$ wsk property set --apihost 192.168.99.100:31001
$ wsk property set --auth 23bc46b1-71f6-4ed5-8c54-816aa4f8c502:123zO3xZCLrMN6v2BKK1dXYFpXlPkccOFqm12CdAsMgRU4VrNZ9lyGVCGuMDGIwP
Re hlahloba:
$ wsk -i list
Entities in namespace: default
packages
actions
triggers
rules
Mathata le tharollo ea bona
getsockopt/ Ketso ya ho hokahana: ho hana
$ wsk -i list
error: Unable to obtain the list of entities for namespace 'default': Get http://192.168.99.100:31001/api/v1/namespaces/_/actions?limit=0&skip=0: dial tcp 192.168.99.100:31001: getsockopt: connection refused
Ho hlahloba hore na lijana li teng sebakeng sa mabitso openwhisk boemong Running, hobane ka linako tse ling e thulana le liphoso CreateContainerConfigError.
Invoker e ntse e qala - Init:1/2
Ts'ebetso ea ho jarolla libaka tse fapaneng tsa nako ea ho sebetsa e ka nka nako e telele. Ho potlakisa lintho, o ka bolela lenane le khutsufalitsoeng faeleng mycluster.yaml:
whisk:
runtimes: "runtimes-minimal-travis.json"
Setshelo se nang le lebitso -kenya-pakete- e oela ho Phoso
Eketsa feela nako ea ho felloa ke nako bakeng sa liteko tsa bophelo.
Ho kenya OpenWhisk holim'a Knative
Priti Desai o kentse kopo ka holim'a sehlopha se lerung la IBM, hammoho le minikube e tloaelehileng, a sebelisa Knative Build le Build Templates. Ke tla boela ke kenye holim'a minukube, ho itšetlehile ka hore na ho ile ha hlalosoa ho blog ea rona pejana - ho sebelisa liphetolelo tsa morao-rao tsa software. Kaha Knative Build and BuildTemplates e tlositsoe ka molao, ke tla sebelisa sebaka se khothalelitsoeng ka mokhoa oa Tekton Pipelines. Sengoloa se seng kaofela se ngotsoe kamora ho bala litokomane tsa Tekton Pipelines, empa se thehiloe mehopolong ea Priti. Ho sebetsa, o tla hloka ho fihlella Registry ea Docker - 'na, joalo ka sengoli sa mantlha, ke tla sebelisa DockerHub.
$ sed 's/${DOCKER_USERNAME}/'"$DOCKER_USERNAME"'/' -i taskrun.yaml
Re etsa kopo:
$ kubectl apply -f taskrun.yaml
pipelineresource.tekton.dev/openwhisk-nodejs-runtime-git created
pipelineresource.tekton.dev/openwhisk-nodejs-helloworld-image created
taskrun.tekton.dev/openwhisk-nodejs-helloworld created
Ho hlahloba mosebetsi ho kenyelletsa ho fumana lebitso la pod le ho sheba boemo ba eona. U ka boela ua sheba tlaleho ea ts'ebetso ea mohato ka mong, mohlala:
$ kubectl get taskrun
NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME
openwhisk-nodejs-helloworld True Succeeded 5m15s 44s
$ kubectl get pod openwhisk-nodejs-helloworld-pod-4640d3
NAME READY STATUS RESTARTS AGE
openwhisk-nodejs-helloworld-pod-4640d3 0/6 Completed 0 5m20s
$ kubectl logs openwhisk-nodejs-helloworld-pod-4640d3 -c step-git-source-openwhisk-nodejs-runtime-git-r8vhr
{"level":"info","ts":1576532931.5880227,"logger":"fallback-logger","caller":"logging/config.go:69","msg":"Fetch GitHub commit ID from kodata failed: open /var/run/ko/refs/heads/master: no such file or directory"}
{"level":"info","ts":1576532936.538926,"logger":"fallback-logger","caller":"git/git.go:81","msg":"Successfully cloned https://github.com/apache/openwhisk-runtime-nodejs.git @ master in path /workspace/runtime-git"}
{"level":"warn","ts":1576532936.5395331,"logger":"fallback-logger","caller":"git/git.go:128","msg":"Unexpected error: creating symlink: symlink /tekton/home/.ssh /root/.ssh: file exists"}
{"level":"info","ts":1576532936.8202565,"logger":"fallback-logger","caller":"git/git.go:109","msg":"Successfully initialized and updated submodules in path /workspace/runtime-git"}
Kamora ho bolaoa, re tla ba le setšoantšo ho Registry se ka sebelisoang ho sebelisoa kn utility, e etselitsoeng ho sebetsa le lits'ebeletso tsa Knative, mohlala:
kn service create nodejs-helloworld --image docker.io/${DOCKER_USERNAME}/openwhisk-nodejs-helloworld
Service 'nodejs-helloworld' successfully created in namespace 'default'.
Waiting for service 'nodejs-helloworld' to become ready ... OK
Service URL:
http://nodejs-helloworld.default.example.com
Haeba u sebelisa Gloo, u ka sheba ts'ebetso ea eona ka tsela ena: