Knative - k8s ላይ የተመሰረተ መድረክ-እንደ-አገልግሎት ከአገልጋይ አልባ ድጋፍ ጋር

Knative - k8s ላይ የተመሰረተ መድረክ-እንደ-አገልግሎት ከአገልጋይ አልባ ድጋፍ ጋር

ኩበርኔትስ ለኮንቴይነር ዝርጋታ ዋና መድረክ ሆኗል። ኤፒአይዎቹን በብጁ መርጃዎች የሚያራዝሙትን ማንኛውንም ነገር የመቆጣጠር ችሎታን ይሰጣል።

ነገር ግን፣ ተጠቃሚው አሁንም መተግበሪያዎችን በትክክል እንዴት ማሰማራት፣ ማዋቀር፣ ማስተዳደር እና መመዘን እንዳለበት ዝርዝር ውሳኔዎችን ማድረግ አለበት። የመተግበሪያ ልኬት፣ ጥበቃ እና የትራፊክ ፍሰት ጉዳዮች በተጠቃሚው ውሳኔ ይቀራሉ። ይህ ኩበርኔትስን እንደ Cloud Foundry እና Heroku ካሉ እንደ አገልግሎት (PaaS) ከተለመዱት መድረኮች ይለያል።

መድረኮቹ ቀለል ያለ የተጠቃሚ በይነገጽ አላቸው እና አብዛኛውን ጊዜ የግለሰብ መተግበሪያዎችን በማዘጋጀት ላይ ለሚሳተፉ የመተግበሪያ ገንቢዎች ያነጣጠሩ ናቸው። ማዘዋወር፣ ማሰማራት እና መለኪያዎች ለተጠቃሚው በግልፅ የሚተዳደሩት በታችኛው የPaaS ስርዓት ነው።

የምንጭ-ወደ-መርከብ የስራ ፍሰት በPaaS የሚስተናገደው ብጁ መያዣ ምስል በመፍጠር፣ በማሰማራት፣ አዲስ መንገድ በማዘጋጀት እና ለገቢ ትራፊክ የዲ ኤን ኤስ ንዑስ ጎራ ነው። ይህ ሁሉ በትእዛዝ ተጀምሯል። git push.

ኩበርኔትስ (ሆን ብሎ) ለእንደዚህ ዓይነቶቹ መድረኮች ዋና ዋና የግንባታ ቁሳቁሶችን ብቻ ያቀርባል ፣ ይህም ማህበረሰቡ እራሱን እንዲሰራ ነፃ ያደርገዋል ። እንዴት Kelsey Hightower አለ:

ኩበርኔትስ መድረኮችን ለመገንባት መድረክ ነው። ለመጀመር በጣም ጥሩው ቦታ ፣ ግን ማጠናቀቅ አይደለም።

በውጤቱም ፣ የኩበርኔትስ ግንባታዎችን እና እንዲሁም PaaS ለ Kubernetes ለመፍጠር የሚሞክሩ ኩባንያዎችን እንደ OpenShift እና Rancher እናያለን። በማደግ ላይ ባለው የኩቤ-ፓኤኤስ ገበያ መካከል፣ በጁላይ 2018 በጎግል እና ፒቮታል የተመሰረተው Knative ወደ ቀለበቱ እየገባ ነው።

Knative ከሌሎች ኩባንያዎች እንደ IBM፣ RedHat እና Solo.im ባሉ ጥቂት እገዛ በGoogle እና Pivotal መካከል ትብብር ነበር። ከአገልጋይ-አልባ ኮምፒውተር ላይ ለተመሰረቱ አፕሊኬሽኖች ከከፍተኛ ደረጃ ድጋፍ ጋር ተመሳሳይ የPaaS ነገሮችን ለ Kubernetes ያቀርባል። ከኩበርኔትስ ግንባታዎች በተለየ፣ Knative በማንኛውም ተኳዃኝ የኩበርኔትስ ክላስተር ላይ እንደ ተጨማሪ ተጭኗል እና በተጠቃሚ ሀብቶች የተዋቀረ ነው።

Knative ምንድን ነው?

Knative “ዘመናዊ አገልጋይ አልባ ኮምፒውቲንግን በመጠቀም የስራ ጫናዎችን ለማድረስ እና ለማስተዳደር በኩበርኔትስ ላይ የተመሰረተ መድረክ” ተብሎ ተገልጿል:: Knative፣ እራሱን እንደ እንደዚህ አይነት መድረክ ሂሳብ እየከፈለ ሳለ፣ ኮንቴይነሮችን በተመሳሳይ ጊዜ ከኤችቲቲፒ ጥያቄዎች ጋር በተመጣጣኝ ሁኔታ በራስ-ሰር ያሰካል። ጥቅም ላይ ያልዋሉ አገልግሎቶች ውሎ አድሮ ወደ ዜሮ ይቀንሳሉ፣ ይህም አገልጋይ አልባ የሆነ የፍላጎት ልኬትን ይሰጣል።

Knative በማንኛውም የኩበርኔትስ ክላስተር ውስጥ የሚጫኑ እና የሚከተሉትን ችሎታዎች የሚያቀርቡ የመቆጣጠሪያዎች ስብስብን ያካትታል።

  • በኮንቴይነር የተያዙ አፕሊኬሽኖችን ከምንጭ ኮድ መገንባት (በክፍሉ የቀረበ ይገንቡ),
  • ለመተግበሪያዎች ገቢ ትራፊክ መዳረሻ መስጠት (በክፍሉ የቀረበ ማገልገል),
  • በፍላጎት ላይ የመተግበሪያዎች አቅርቦት እና አውቶማቲክ ልኬት (በተጨማሪም በክፍሉ የቀረበ ማገልገል),
  • ወደ መተግበሪያ ጅምር የሚያመሩ የክስተቶች ምንጮችን መለየት (በክፍሉ የቀረበ ዝግጅት).

ዋናው አካል ማገልገል ነው፣ ይህም ለሚተዳደሩ መተግበሪያዎች አቅርቦትን፣ ራስ-መጠን እና የትራፊክ አስተዳደርን ይሰጣል። Knativeን ከጫኑ በኋላ አሁንም የ Kubernetes API ሙሉ መዳረሻ አለዎት ይህም ተጠቃሚዎች መተግበሪያዎችን እንዲያስተዳድሩ ያስችላቸዋል ተራ መንገድ፣ እና እንዲሁም Knative አገልግሎቶችን ለማረም ያገለግላል፣ እነዚህ አገልግሎቶች ከሚጠቀሙባቸው ተመሳሳይ የኤፒአይ ቅድመ-ቅምጦች (ሞጁሎች፣ አገልግሎቶች፣ ወዘተ) ጋር አብሮ በመስራት ላይ ነው።

በServing እገዛ፣ ሰማያዊ-አረንጓዴ የትራፊክ ማዘዋወር እንዲሁ በራስ-ሰር ይሠራል፣ ተጠቃሚው የተዘመነውን የመተግበሪያውን ስሪት ሲያቀርብ በአዲሶቹ እና በአሮጌው የመተግበሪያው ስሪቶች መካከል የትራፊክ መለያየትን ያረጋግጣል።

Knative ራሱ ተኳሃኝ የሆነ የመግቢያ መቆጣጠሪያ በመጫን ላይ ይወሰናል. ይህ ጽሑፍ በሚጻፍበት ጊዜ ይደገፋል Gloo API Gateway и ኢስቲዮ አገልግሎት ሜሽ. ትራፊክን ወደ Knative የሚተዳደሩ መተግበሪያዎች ለመምራት ያለውን መግቢያ ያዋቅራል።

Istio Service Mesh የ Istio መቆጣጠሪያ ፓነልን ሳይጭኑ ለመሞከር ለሚፈልጉ Knative ተጠቃሚዎች ትልቅ ጥገኝነት ሊሆን ይችላል፣ Knative የሚወሰነው በመግቢያው ላይ ብቻ ነው።

በዚህ ምክንያት፣ አብዛኛው ተጠቃሚዎች Glooን የ Knative መግቢያ አድርገው ይመርጣሉ፣ ይህም ለኢስቲዮ ተመሳሳይ የአቅም ስብስቦችን በማቅረብ (ለ Knative ብቻ ለመጠቀም) እና እንዲሁም በጣም ያነሰ ሀብቶችን ሲጠቀሙ እና አነስተኛ የስራ ማስኬጃ ወጪዎች።

በቆመበት ላይ Knativeን በተግባር እንፈትሽ። በGKE ውስጥ አዲስ የተጫነ ክላስተር እጠቀማለሁ፡-

kubectl get namespace
NAME          STATUS   AGE
default       Active   21h
kube-public   Active   21h
kube-system   Active   21h

Knative እና Glooን መጫን እንጀምር። ይህ በማንኛውም ቅደም ተከተል ሊከናወን ይችላል-

# ставим 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
# ...

ሁሉም ፖዶች በ"አሂድ" ሁኔታ ላይ መሆናቸውን እናረጋግጣለን።

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

ግሎ ለመዘዋወር ዝግጁ ነው፣ ራስ-ሰር መለኪያ Knative አገልግሎት እንፍጠር ( kservice ብለን እንጠራው) እና ትራፊክ ወደ እሱ እናምራ።

Knative አገልግሎቶች ከተለመደው የDeployment+Service+Ingress ሞዴል ይልቅ ወደ ኩበርኔትስ ለማድረስ ቀላል መንገድን ይሰጣሉ። ከዚህ ምሳሌ ጋር እንሰራለን-

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

ይህንን ወደ ፋይል ገልብጬዋለሁ፣ ከዚያ ወደ እኔ Kubernetes ዘለላ በዚህ መንገድ ተግባራዊ አድርጌዋለሁ፡

kubectl apply -f ksvc.yaml -n default

የኛን 'Helloworld-go' ካደረስን በኋላ በKnative የተፈጠሩትን ሀብቶች በክላስተር ውስጥ ማየት እንችላለን kservice:

kubectl get pod -n default
NAME                                              READY   STATUS    RESTARTS   AGE
helloworld-go-fjp75-deployment-678b965ccb-sfpn8   2/2     Running   0          68s

የ'helloworld-go' ምስል ያለበት ፖድ የሚጀመረው kservice ሲሰማራ ነው። ትራፊክ ከሌለ የፖዳዎች ቁጥር ወደ ዜሮ ይቀንሳል. እና በተገላቢጦሽ፣ በአንድ ጊዜ የሚደረጉ ጥያቄዎች ቁጥር ከተወሰነ ሊዋቀር የሚችል ገደብ ካለፈ፣ የፖዳዎች ቁጥር ይጨምራል።

kubectl get ingresses.networking.internal.knative.dev -n default
NAME            READY   REASON
helloworld-go   True

Knative በውስጣዊ Knative ኤፒአይ ውስጥ ልዩ የ'ማስገባት' ምንጭን በመጠቀም መግባቱን ያዋቅራል። ግሎ ይህን ኤፒአይ እንደ አወቃቀሩ ይጠቀማል፣ ሰማያዊ-አረንጓዴ ማሰማራት ሞዴል፣ አውቶማቲክ TLS ማስፈጸሚያ፣ የጊዜ ማብቂያዎች እና ሌሎች የላቁ የማዞሪያ ባህሪያትን ጨምሮ።

ከተወሰነ ጊዜ በኋላ የእኛ እንክብሎች እንደጠፉ አይተናል (ምንም ገቢ ትራፊክ ስላልነበረ)፡-

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

በመጨረሻም እነሱን ለማግኘት እንሞክራለን. ለKnative Proxy በመጠቀም ዩአርኤልን በቀላሉ እና በቀላሉ ማግኘት ይችላሉ። glooctl:

glooctl proxy url --name knative-external-proxy
http://35.190.151.188:80

ሳይጫን glooctl አድራሻውን እና ወደቡን በኩቤ አገልግሎት ውስጥ ማየት ይችላሉ-

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

ዩአርኤልን በመጠቀም የተወሰነ ውሂብ እናሂድ፡-

curl -H "Host: helloworld-go.default.example.com" http://35.190.151.188
Hello Knative user!

Knative የግሎውን ከፍተኛ አፈጻጸም ባለው ባለ ሙሉ ቁልል ኤፒአይ መግቢያ በር በመጠቀም ከሳጥን ውጪ Kubernetes ላይ ለገንቢዎች ከሞላ ጎደል-PaaS ያቀርባል። ይህ ልጥፍ የ Knativeን ሰፊ የማበጀት አማራጮችን እና ተጨማሪ ባህሪያትን ብቻ ነው የቧጨረው። ከግሎ ጋር ተመሳሳይ ነው!

ምንም እንኳን Knative አሁንም ወጣት ፕሮጀክት ቢሆንም ፣ ቡድኑ በየስድስት ሳምንቱ አዳዲስ ስሪቶችን ያወጣል ፣ እና የላቁ ባህሪዎችን መተግበር እንደ አውቶማቲክ TLS ማሰማራት ፣ የቁጥጥር ፓነልን በራስ-ሰር ማመጣጠን ተጀምሯል። በብዙ የደመና ኩባንያዎች መካከል ባለው ትብብር እና የጎግል አዲሱ የክላውድ አሂድ አቅርቦት መሰረት እንደመሆኑ Knative ለአገልጋይ አልባ ኮምፒውቲንግ እና PaaS በ Kubernetes ላይ ዋነኛው አማራጭ ሊሆን የሚችልበት ጥሩ እድል አለ። ዜናውን ተከታተሉ!

ከሳውዝብሪጅ አዘጋጆች
የአንባቢዎች አስተያየቶች ለእኛ ጠቃሚ ናቸው፣ስለዚህ ስለ Knative፣ Kubernetes፣ አገልጋይ አልባ ኮምፒውቲንግ ስለወደፊት መጣጥፎች ጋር በተገናኘ አጭር ዳሰሳ ላይ እንድትሳተፉ እንጠይቃለን።

በዳሰሳ ጥናቱ ውስጥ የተመዘገቡ ተጠቃሚዎች ብቻ መሳተፍ ይችላሉ። ስግን እንእባክህን።

ስለ Knative እና አገልጋይ አልባ ስሌት መጣጥፎችን እና መመሪያዎችን መፃፍ መቀጠል አለብኝ?

  • አዎ እባክዎን.

  • አልፈልግም፣አመሰግናለሁ.

28 ተጠቃሚዎች ድምጽ ሰጥተዋል። 4 ተጠቃሚዎች ድምፀ ተአቅቦ አድርገዋል።

ምንጭ: hab.com

አስተያየት ያክሉ