
Кубернетес је несумњиво постао доминантна платформа за примену контејнера. Пружа могућност контроле готово свега користећи своје АПИ-је и прилагођене контролере који проширују његове АПИ-је прилагођеним ресурсима.
Међутим, корисник и даље мора да донесе детаљне одлуке о томе како тачно применити, конфигурисати, управљати и скалирати апликације. Питања скалирања апликације, заштите и протока саобраћаја остају на дискрецији корисника. Ово издваја Кубернетес од конвенционалних платформи као услуге (ПааС), као што су Цлоуд Фоундри и Хероку.
Платформе имају поједностављен кориснички интерфејс и намењене су програмерима апликација који су најчешће укључени у постављање појединачних апликација. Основни ПааС систем управља рутирањем, применом и метриком транспарентно за корисника.
Током посла од извора до отпреме управља ПааС тако што креира прилагођену слику контејнера, поставља је, поставља нову руту и ДНС поддомен за долазни саобраћај. Све ово се покреће на команду git push.
Кубернетес (намерно) обезбеђује само основне блокове за такве платформе, остављајући заједници слободу да сама обави посао. како :
Кубернетес је платформа за прављење платформи. Најбоља позиција за почетак, али не и завршетак.
Као резултат тога, видимо гомилу Кубернетес верзија, као и хостинг компаније које покушавају да креирају ПааС за Кубернетес, као што су ОпенСхифт и Ранцхер. Усред растућег тржишта Кубе-ПааС, Кнативе, који су у јулу 2018. основали Гоогле и Пивотал, улази у ринг.
Кнативе је била сарадња између Гугла и Пивотала, уз малу помоћ других компанија као што су ИБМ, РедХат и Соло.им. Нуди сличне ПааС ствари као и Кубернетес са врхунском подршком за апликације засноване на рачунарима без сервера. За разлику од Кубернетес верзија, Кнативе се инсталира као додатак на било који компатибилан Кубернетес кластер и конфигурише се преко корисничких ресурса.
Шта је Кнативе?
Кнативе је описан као „Платформа заснована на Кубернетес-у за испоруку и управљање радним оптерећењима користећи модерно рачунарство без сервера“. Кнативе, док се наплаћује као таква платформа, активно аутоматски повећава контејнере сразмерно истовременим ХТТП захтевима. Некоришћене услуге се на крају смањују на нулу, обезбеђујући скалирање на захтев у стилу без сервера.
Кнативе се састоји од скупа контролера који се инсталирају у било који Кубернетес кластер и пружају следеће могућности:
- прављење контејнерских апликација из изворног кода (обезбеђује компонента Градити),
- обезбеђивање приступа долазном саобраћају апликацијама (обезбеђује компонента Служење),
- испорука и аутоматско скалирање апликација на захтев (такође обезбеђено од стране компоненте Служење),
- идентификовање извора догађаја који доводе до покретања апликације (обезбеђује компонента Евентинг).
Кључна компонента је Сервинг, која обезбеђује обезбеђивање, аутоматско скалирање и управљање саобраћајем за управљане апликације. Након инсталирања Кнативе-а, и даље имате пун приступ Кубернетес АПИ-ју, омогућавајући корисницима да управљају апликацијама обичан начин, а такође служи за отклањање грешака у Кнативе сервисима, радећи са истим АПИ примитивима које користе ови сервиси (модули, сервиси, итд.).
Уз помоћ Сервинга, плаво-зелено рутирање саобраћаја је такође аутоматизовано, обезбеђујући поделу саобраћаја између нове и старе верзије апликације када корисник испоручи ажурирану верзију апликације.
Сам Кнативе зависи од инсталирања компатибилног улазног контролера. У време писања овог чланка је подржан и . Он ће конфигурисати доступни улаз за усмеравање саобраћаја ка апликацијама којима управља Кнативе.
Истио Сервице Месх може бити велика зависност за Кнативе кориснике који желе да га испробају без инсталирања Истио контролне табле, пошто Кнативе зависи само од мрежног пролаза.
Из тог разлога, већина корисника преферира Глоо као капију за Кнативе, пружајући сличан скуп могућности као Истио (у сврху коришћења само Кнативе), док такође користи знатно мање ресурса и има ниже оперативне трошкове.
Хајде да тестирамо Кнативе у акцији на постољу. Користићу свеже инсталирани кластер који ради у ГКЕ-у:
kubectl get namespace
NAME STATUS AGE
default Active 21h
kube-public Active 21h
kube-system Active 21hПочнимо да инсталирамо Кнативе и Глоо. Ово се може урадити било којим редоследом:
# ставим 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Глоо је спреман за рутирање, хајде да направимо Кнативе сервис за аутоматско скалирање (назовимо га ксервице) и усмеримо саобраћај ка њему.
Кнативе услуге пружају лакши пут до испоруке апликација Кубернетес-у од конвенционалног модела Деплоимент+Сервице+Ингресс. Радићемо са овим примером:
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Копирао сам ово у датотеку, а затим га применио на свој Кубернетес кластер на следећи начин:
kubectl apply -f ksvc.yaml -n defaultМожемо да видимо ресурсе које је креирао Кнативе у кластеру након што испоручимо наш 'хелловорлд-го' ксервице:
kubectl get pod -n default
NAME READY STATUS RESTARTS AGE
helloworld-go-fjp75-deployment-678b965ccb-sfpn8 2/2 Running 0 68sПод са нашом сликом 'хелловорлд-го' се покреће када се ксервице примени. Ако нема саобраћаја, број махуна ће се смањити на нулу. И обрнуто, ако број истовремених захтева премаши одређени конфигурабилни праг, број подова ће се повећати.
kubectl get ingresses.networking.internal.knative.dev -n default
NAME READY REASON
helloworld-go TrueКнативе конфигурише свој улаз користећи посебан 'ингресс' ресурс у интерном Кнативе АПИ-ју. Глоо користи овај АПИ као своју конфигурацију да обезбеди функције сличне ПааС-у, укључујући плаво-зелени модел примене, аутоматску примену ТЛС-а, временска ограничења и друге напредне функције рутирања.
После неког времена видимо да су наше махуне нестале (јер није било долазног саобраћаја):
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Коначно ћемо покушати да дођемо до њих. Можете лако и лако добити УРЛ за Кнативе Проки користећи 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!Кнативе обезбеђује готово ПааС за програмере на врху Кубернетес-а који се налази у кутији користећи Глоо-ов високо-перформансни АПИ гатеваи са пуним стеком. Овај пост је само загребао површину Кнативе-ових опсежних опција прилагођавања и додатних функција. Исто са Глоо!
Упркос чињеници да је Кнативе још увек млад пројекат, његов тим објављује нове верзије сваких шест недеља, а почела је и имплементација напредних функција, као што су аутоматско ТЛС распоређивање, аутоматско скалирање контролне табле. Постоји велика шанса да би, као резултат сарадње између више компанија у облаку, и као основа Гоогле-ове нове Цлоуд Рун понуде, Кнативе могао постати примарна опција за рачунарство без сервера и ПааС на Кубернетес-у. Пратите вести!
Од уредника СоутхБридге-а
Мишљења читалаца су нам важна, па вас молимо да учествујете у краткој анкети везаној за будуће чланке о Кнативе, Кубернетес, рачунарству без сервера:
Само регистровани корисници могу учествовати у анкети. , Добродошао си.
Да ли треба да наставим да пишем чланке и водиче о Кнативе и рачунарству без сервера?
Да хвала.
Не хвала.
Гласало је 28 корисника. 4 корисника су била уздржана.
Извор: ввв.хабр.цом
