Kare e kore kua noho a Kubernetes te turanga tino nui mo te tuku ipu. Ka whakaratohia e ia te kaha ki te whakahaere tata ki nga mea katoa ma te whakamahi i ona API me nga kaiwhakahaere ritenga e whakawhānui ana i ona API me nga rauemi ritenga.
Heoi, me whakarite tonu te kaiwhakamahi ki te whakatau me pehea te whakatakoto, te whirihora, te whakahaere me te tauine tono. Ko nga take o te whakatikatika i te tono, te whakamarumaru, me te rere o nga waka kei runga tonu i te whakaaro o te kaiwhakamahi. Ka wehe tenei i nga Kubernetes mai i nga papaa tikanga hei ratonga (PaaS), penei i a Cloud Foundry me Heroku.
He atanga kaiwhakamahi ngawari nga papaaho, a, e whai ana ki nga kaiwhakawhanake tono e tino whai waahi ana ki te whakatuu tono takitahi. Ko te ararere, te horahanga, me nga inenga e whakahaere marama ana ki te kaiwhakamahi e te punaha PaaS.
Ko te rerenga mahi puna-ki-kaipuke e whakahaerea ana e te PaaS ma te hanga i te ahua o te ipu, te tuku, te whakarite huarahi hou me te roheroto DNS mo nga waka taumai. Ka whakarewahia tenei katoa i runga i te whakahau git push
.
Ko nga Kubernetes (ko te hiahia) ka whakarato noa i nga poraka hanga matua mo aua papaahi, ka waiho noa te hapori ki te mahi i nga mahi. Pehea
Ko Kubernetes he papa mo te hanga papa. Ko te waahi pai mo te tiimata, engari kaore i te whakaoti.
Ko te mutunga, ka kite matou i te tini o nga Kubernetes e hanga ana, me nga kamupene manaaki e ngana ana ki te hanga PaaS mo nga Kubernetes, penei i a OpenShift me Rancher. I roto i te tipu o te maakete Kube-PaaS, Knative, i whakaturia i te marama o Hurae 2018 e Google me Pivotal, kei te uru ki te mowhiti.
He mahi tahi a Knative i waenga i a Google me Pivotal, me te awhina iti mai i etahi atu kamupene penei i a IBM, RedHat me Solo.im. He rite nga mea PaaS ki a Kubernetes me te tautoko tino pai mo nga tono-rorohiko kore-tumau. Kaore i rite ki te hanga a Kubernetes, ka whakauruhia a Knative hei taapiri ki runga i nga kahui Kubernetes hototahi me te whirihora ma nga rauemi kaiwhakamahi.
He aha te Knative?
E kiia ana a Knative "He papaaapapa-a-Kubernetes mo te tuku me te whakahaere i nga taumahatanga mahi ma te whakamahi rorohiko kore-kaupapa hou." Ko te Knative, i te wa e utu ana i a ia ano he papaaho pera, ka kaha te tarai i nga ipu kia rite ki nga tono HTTP. Ko nga ratonga kaore i whakamahia i te mutunga ka heke iho ki te kore, e whakarato ana i te whakatauine-a-tono-kore.
Kei roto i a Knative he huinga mana whakahaere e whakauru ana ki tetahi huinga Kubernetes me te whakarato i nga kaha e whai ake nei:
- hanga tono ipu mai i te waehere puna (kua whakaratohia e te waahanga hanga),
- whakarato urunga ki nga waka taumai ki nga tono (e whakaratohia ana e te waahanga te taviniraa),
- te tuku me te whakatauira aunoa i nga tono i runga i te tono (e whakaratohia ana e te waahanga te taviniraa),
- te tautuhi i nga puna o nga huihuinga e arahi ana ki te whakarewatanga o nga tono (e whakaratohia ana e te waahanga Mahi).
Ko tetahi waahanga nui ko te Ratonga, e whakarato ana i te whakaratonga, te whakatau-aunoa, me te whakahaere waka mo nga tono whakahaere. Whai muri i te whakaurunga o Knative, kei a koe tonu te uru ki te Kubernetes API, ka taea e nga kaiwhakamahi te whakahaere tono noa ara, me te mahi ano hoki ki te patuiro i nga ratonga Knative, me te mahi tahi me te API tuatahi e whakamahia ana e enei ratonga (kowae, ratonga, me etahi atu).
Ma te awhina o te Ratonga, he mea aunoa ano te ararere waka puru-matomato, e whakarite ana i te wehenga waka i waenga i nga putanga hou me te tawhito o te tono ka tukuna e te kaiwhakamahi he putanga whakahou o te tono.
Ko te Knative ake e whakawhirinaki ana ki te whakauru i tetahi kaiwhakahaere whakauru hototahi. I te wa e tuhi ana ka tautokohia tenei tuhinga
Ka taea e Istio Service Mesh te whakawhirinaki nui mo nga kaiwhakamahi Knative e hiahia ana ki te whakamatau me te kore e whakauru i te paewhiri mana Istio, na te mea ka whakawhirinaki noa a Knative ki te kuaha.
Mo konei, ko te nuinga o nga kaiwhakamahi e pai ana ki a Gloo hei huarahi ki te Knative, e whakarato ana i nga momo kaha ki a Istio (mo te whakamahi i te Knative anake), me te whakamahi i nga rauemi iti rawa me te iti o nga utu whakahaere.
Kia whakamatauria a Knative i runga i te turanga. Ka whakamahia e ahau he kahui hou kua whakauruhia ki te GKE:
kubectl get namespace
NAME STATUS AGE
default Active 21h
kube-public Active 21h
kube-system Active 21h
Me timata taatau ki te whakauru Knative me Gloo. Ka taea tenei i nga tikanga katoa:
# ставим Knative-Serving
kubectl apply -f
https://github.com/knative/serving/releases/download/v0.8.0/serving-core.yaml
namespace/knative-serving created
# ...
# ставим Gloo
kubectl apply -f
https://github.com/solo-io/gloo/releases/download/v0.18.22/gloo-knative.yaml
namespace/gloo-system created
# ...
Ka tirohia e matou ko nga Pods katoa kei roto i te mana "Running":
kubectl get pod -n knative-serving
NAME READY STATUS RESTARTS AGE
activator-5dd55958cc-fkp7r 1/1 Running 0 7m32s
autoscaler-fd66459b7-7d5s2 1/1 Running 0 7m31s
autoscaler-hpa-85b5667df4-mdjch 1/1 Running 0 7m32s
controller-85c8bb7ffd-nj9cs 1/1 Running 0 7m29s
webhook-5bd79b5c8b-7czrm 1/1 Running 0 7m29s
kubectl get pod -n gloo-system
NAME READY STATUS RESTARTS AGE
discovery-69548c8475-fvh7q 1/1 Running 0 44s
gloo-5b6954d7c7-7rfk9 1/1 Running 0 45s
ingress-6c46cdf6f6-jwj7m 1/1 Running 0 44s
knative-external-proxy-7dd7665869-x9xkg 1/1 Running 0 44s
knative-internal-proxy-7775476875-9xvdg 1/1 Running 0 44s
Kua reri a Gloo mo te ararere, me hanga he ratonga Knative tauine-aunoa (karangatia he kservice) me te ara waka ki reira.
Ko nga ratonga Knative he huarahi ngawari ake ki te tuku tono ki nga Kubernetes i te tauira Tukunga+Ratonga+Ingress. Ka mahi tatou me tenei tauira:
apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:
name: helloworld-go
namespace: default
spec:
template:
spec:
containers:
- image: gcr.io/knative-samples/helloworld-go
env:
- name: TARGET
Value: Knative user
I tāruahia e au tēnei ki tētahi kōnae, kātahi ka hoatu ki taku kāhui Kubernetes penei:
kubectl apply -f ksvc.yaml -n default
Ka taea e matou te tiro i nga rauemi i hangaia e Knative i roto i te roopu i muri i te tuku i a maatau 'helloworld-go' ratonga:
kubectl get pod -n default
NAME READY STATUS RESTARTS AGE
helloworld-go-fjp75-deployment-678b965ccb-sfpn8 2/2 Running 0 68s
Ka whakarewahia te peera me to tatou ahua 'helloworld-go' i te wa e tukuna ana te kservice. Mena karekau he waka, ka heke te maha o nga poti ki te kore. A he rereke, ki te nui ake te maha o nga tono tukutahi i tetahi paepae whirihora, ka piki ake te maha o nga poti.
kubectl get ingresses.networking.internal.knative.dev -n default
NAME READY REASON
helloworld-go True
Ka whirihora a Knative i tana whakaurunga ma te whakamahi i tetahi rauemi 'ingress' motuhake i roto i te Knative API o roto. Ka whakamahi a Gloo i tenei API hei whirihoranga ki te whakarato i nga ahuatanga penei i te PaaS, tae atu ki te tauira tuku puru-matomato, te whakaurunga TLS aunoa, nga waahi, me etahi atu waahanga ararere matatau.
I muri i etahi wa, ka kite matou kua ngaro o matou poti (na te mea kaore he waka e haere mai ana):
kubectl get pod -n default
No resources found.
kubectl get deployment -n default
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
helloworld-go-fjp75-deployment 0 0 0 0 9m46s
Ka mutu ka ngana taatau ki te toro atu ki a raatau. Ka taea e koe te tiki i te URL mo Knative Takawaenga ma te whakamahi glooctl
:
glooctl proxy url --name knative-external-proxy
http://35.190.151.188:80
Karekau he whakauru glooctl
ka kite koe i te wahitau me te tauranga i te ratonga kube:
kubectl get svc -n gloo-system knative-external-proxy
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
knative-external-proxy LoadBalancer 10.16.11.157 35.190.151.188 80:32168/TCP,443:30729/TCP 77m
Me whakahaere etahi raraunga ma te whakamahi i te cURL:
curl -H "Host: helloworld-go.default.example.com" http://35.190.151.188
Hello Knative user!
Ka whakaratohia e Knative he tata-PaaS mo nga kaiwhakawhanake i runga ake o nga Kubernetes waho-o-te-pouaka ma te whakamahi i te kuaha API mahi-nui a Gloo, taapu tonu. Ko tenei pou kua rakuraku noa i te mata o nga whiringa whakaritenga a Knative me etahi atu waahanga. He rite ano ki a Gloo!
Ahakoa te mea he kaupapa rangatahi tonu a Knative, ka tukuna e tana roopu nga putanga hou ia ono wiki, a kua timata te whakatinanatanga o nga ahuatanga o mua, penei i te tuku TLS aunoa, te whakatikatika aunoa o te paewhiri mana. He pai te tupono, na te mahi tahi i waenga i nga kamupene kapua maha, me te putake o te whakahere Cloud Run hou a Google, ka taea e Knative te kowhiringa tuatahi mo te rorohiko kore utu me te PaaS i runga i nga Kubernetes. Whaia nga korero!
Na nga Etita o SouthBridge
He mea nui ki a matou nga whakaaro o nga kaipanui, no reira ka tono matou kia whai waahi koe ki tetahi rangahau poto e pa ana ki nga tuhinga a meake nei mo te Knative, Kubernetes, rorohiko kore utu:
Ko nga kaiwhakamahi kua rehita anake ka uru ki te rangahau.
Me haere tonu ahau ki te tuhi tuhinga me nga kaiarahi mo te rorohiko Knative me te kore tūmau?
-
Ae koa.
-
Kao, mihi.
28 nga kaiwhakamahi i pooti. 4 nga kaiwhakamahi i aukati.
Source: will.com