Knative - k8s-ื‘ืื–ื™ืจื˜ ืคึผืœืึทื˜ืคืึธืจืžืข-ื•ื•ื™-ืึท-ื“ื™ื ืกื˜ ืžื™ื˜ ืกืขืจื•ื•ืขืจืœืขืกืก ืฉื˜ื™ืฆืŸ

Knative - k8s-ื‘ืื–ื™ืจื˜ ืคึผืœืึทื˜ืคืึธืจืžืข-ื•ื•ื™-ืึท-ื“ื™ื ืกื˜ ืžื™ื˜ ืกืขืจื•ื•ืขืจืœืขืกืก ืฉื˜ื™ืฆืŸ

Kubernetes ืื™ื– ื‘ืœื™ ืกืคืง ื’ืขื•ื•ืืจืŸ ื“ื™ ื“ืึธืžื™ื ืึทื ื˜ ืคึผืœืึทื˜ืคืึธืจืžืข ืคึฟืึทืจ ืงืึทื ื˜ื™ื™ื ืขืจ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜. ืขืก ื’ื™ื˜ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื›ึผืžืขื˜ ืึทืœืฅ ืžื™ื˜ ื“ื™ API ืื•ืŸ ืžื ื”ื’ ืงืึทื ื˜ืจืึธื•ืœืขืจื– ื•ื•ืึธืก ืคืึทืจื‘ืจื™ื™ื˜ืขืจืŸ ื“ื™ API ืžื™ื˜ ืžื ื”ื’ ืจืขืกื•ืจืกืŸ.

ืึธื‘ืขืจ, ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ื ืึธืš ืžื•ื–ืŸ ืžืึทื›ืŸ ื“ื™ื˜ื™ื™ืœื“ ื“ื™ืกื™ื–ืฉืึทื ื– ื•ื•ืขื’ืŸ ืคึผื•ื ืงื˜ ื•ื•ื™ ืฆื• ืฆืขื•ื•ื™ืงืœืขืŸ, ืงืึทื ืคื™ื’ื™ืขืจ, ืคื™ืจืŸ ืื•ืŸ ื•ื•ืึธื’ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–. ื™ืฉื•ื– ืคื•ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืกืงื™ื™ืœื™ื ื’, ืฉื•ืฅ ืื•ืŸ ืคืึทืจืงืขืจ ืœื•ื™ืคืŸ ื‘ืœื™ื™ื‘ืŸ ืื™ืŸ ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ืก ื“ื™ืกืงืจืขืฉืึทืŸ. ื“ืึธืก ืฉื˜ืขืœื˜ Kubernetes ื‘ืึทื–ื•ื ื“ืขืจ ืคื•ืŸ ืงืึทื ื•ื•ืขื ืฉืึทื ืึทืœ ืคึผืœืึทื˜ืคืึธืจืžืก ื•ื•ื™ ืึท ืกืขืจื•ื•ื™ืก (PaaS), ืึทื–ืึท ื•ื•ื™ Cloud Foundry ืื•ืŸ Heroku.

ื“ื™ ืคึผืœืึทื˜ืคืึธืจืžืก ื”ืึธื‘ืŸ ืึท ืกื™ืžืคึผืœืึทืคื™ื™ื“ ื‘ืึทื ื™ืฆืขืจ ืฆื•ื‘ื™ื ื“ ืื•ืŸ ื–ืขื ืขืŸ ืึทื™ืžืขื“ ืฆื• ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ื•ื•ืึธืก ื–ืขื ืขืŸ ืจื•ื‘ึฟ ืึธืคื˜ ื™ื ื•ื•ืึทืœื•ื•ื“ ืื™ืŸ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื™ื—ื™ื“ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–. ืจื•ื˜ื™ื ื’, ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืื•ืŸ ืžืขื˜ืจื™ืงืก ื–ืขื ืขืŸ ื˜ืจืึทื ืกืคึผืขืจืึทื ื˜ ื’ืขืจืื˜ืŸ ืฆื• ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ื“ื•ืจืš ื“ื™ ืึทื ื“ืขืจืœื™ื™ื™ื ื’ PaaS ืกื™ืกื˜ืขื.

ื“ืขืจ ืžืงื•ืจ-ืฆื•-ืฉื™ืฃ ื•ื•ืึธืจืงืคืœืึธื•ื• ืื™ื– ื›ืึทื ื“ืึทืœื“ ื“ื•ืจืš PaaS ื“ื•ืจืš ืงืจื™ื™ื™ื˜ื™ื ื’ ืึท ืžื ื”ื’ ืงืึทื ื˜ื™ื™ื ืขืจ ื‘ื™ืœื“, ื“ื™ืคึผืœื•ื™ื™ื ื’ ืขืก, ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืึท ื ื™ื™ึทืข ืžืึทืจืฉืจื•ื˜ ืื•ืŸ ื“ื ืก ืกื•ื‘ื“ืึธืžืึทื™ืŸ ืคึฟืึทืจ ื™ื ืงืึทืžื™ื ื’ ืคืึทืจืงืขืจ. ืึทืœืข ื“ืขื ืื™ื– ืœืึธื ื˜ืฉื˜ ืื•ื™ืฃ ื‘ืึทืคึฟืขืœ git push.

Kubernetes (ื‘ืขืงื™ื•ื•ืŸ) ื’ื™ื˜ ื‘ืœื•ื™ื– ื“ื™ ื”ืึทืจืฅ ื‘ื ื™ืŸ ื‘ืœืึทืงืก ืคึฟืึทืจ ืึทื–ืึท ืคึผืœืึทื˜ืคืึธืจืžืก, ืื•ืŸ ืœืึธื–ืŸ ื“ื™ ืงื”ืœ ืคืจื™ื™ ืฆื• ื˜ืึธืŸ ื“ื™ ืึทืจื‘ืขื˜ ื–ื™ืš. ื•ื•ื™ Kelsey Hightower ื”ืื˜ ื’ืขื–ืื’ื˜:

Kubernetes ืื™ื– ืึท ืคึผืœืึทื˜ืคืึธืจืžืข ืคึฟืึทืจ ื‘ื ื™ืŸ ืคึผืœืึทื˜ืคืึธืจืžืก. ื“ืขืจ ื‘ืขืกื˜ืขืจ ืฉื˜ืขืœืข ืคึฟืึทืจ ืกื˜ืึทืจื˜ื™ื ื’, ืึธื‘ืขืจ ื ื™ืฉื˜ ืคื™ื ื™ืฉื™ื ื’.

ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜, ืžื™ืจ ื–ืขืŸ ืึท ื‘ื™ื ื˜ืœ ืคื•ืŸ Kubernetes ื‘ื•ื™ืขืŸ, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ื”ืึธืกื˜ื™ื ื’ ืงืึธืžืคึผืึทื ื™ืขืก ื•ื•ืึธืก ื–ืขื ืขืŸ ื˜ืจื™ื™ื ื’ ืฆื• ืฉืึทืคึฟืŸ PaaS ืคึฟืึทืจ Kubernetes, ืึทื–ืึท ื•ื•ื™ OpenShift ืื•ืŸ Rancher. ืฆื•ื•ื™ืฉืŸ ื“ื™ ื’ืจืึธื•ื™ื ื’ Kube-PaaS ืžืึทืจืง, Knative, ื’ืขื’ืจื™ื ื“ืขื˜ ืื™ืŸ ื™ื•ืœื™ 2018 ื“ื•ืจืš Google ืื•ืŸ Pivotal, ืงื•ืžื˜ ืื™ืŸ ื“ื™ ืจื™ื ื’.

Knative ืื™ื– ื’ืขื•ื•ืขืŸ ืึท ืžื™ื˜ืึทืจื‘ืขื˜ ืฆื•ื•ื™ืฉืŸ Google ืื•ืŸ Pivotal, ืžื™ื˜ ืึท ื‘ื™ืกืœ ื”ื™ืœืฃ ืคื•ืŸ ืื ื“ืขืจืข ืงืึธืžืคึผืึทื ื™ืขืก ืึทื–ืึท ื•ื•ื™ IBM, RedHat ืื•ืŸ Solo.im. ืขืก ืึธืคืคืขืจืก ืขื ืœืขืš PaaS ื˜ื™ื ื’ื– ืฆื• Kubernetes ืžื™ื˜ ืฉืคึผื™ืฅ-ืงืึทืจื‘ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืกืขืจื•ื•ืขืจืœืขืกืก ืงืึทืžืคึผื™ื•ื˜ื™ื ื’-ื‘ืื–ื™ืจื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–. ื ื™ื˜ ืขื ืœืขืš Kubernetes ื‘ื•ื™ืขืŸ, Knative ืื™ื– ืื™ื ืกื˜ืึทืœื™ืจืŸ ื•ื•ื™ ืึทืŸ ืึทื“ื™ืฉืึทืŸ ืื•ื™ืฃ ืงื™ื™ืŸ ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ Kubernetes ืงื ื•ื™ืœ ืื•ืŸ ืงืึทื ืคื™ื’ื™ืขืจื“ ื“ื•ืจืš ื‘ืึทื ื™ืฆืขืจ ืจืขืกื•ืจืกืŸ.

ื•ื•ืึธืก ืื™ื– ืงื ืึทื˜ื™ื•ื•?

ืงื ืึทื˜ื™ื•ื•ืข ืื™ื– ื“ื™ืกืงืจื™ื™ื‘ื“ ื•ื•ื™ "ื ืงื•ื‘ืขืจื ืขื˜ืขืก-ื‘ืื–ื™ืจื˜ ืคึผืœืึทื˜ืคืึธืจืžืข ืคึฟืึทืจ ื“ื™ืœื™ื•ื•ืขืจื™ื ื’ ืื•ืŸ ืึธื ืคื™ืจื•ื ื’ ื•ื•ืขืจืงืœืึธื•ื“ื– ื ื™ืฆืŸ ืžืึธื“ืขืจืŸ ืกืขืจื•ื•ืขืจืœืขืกืก ืงืึทืžืคึผื™ื•ื˜ื™ื ื’." ืงื ืึทื˜ื™ื•ื•ืข, ื‘ืฉืขืช ื‘ื™ืœื™ื ื’ ื–ื™ืš ื•ื•ื™ ืึทื–ืึท ืึท ืคึผืœืึทื˜ืคืึธืจืžืข, ืึทืงื˜ื™ื•ื•ืœื™ ืึทื•ื˜ืึธืกืงืึทืœืขืก ืงืึทื ื˜ื™ื™ื ืขืจื– ืื™ืŸ ืคึผืจืึธืคึผืึธืจืฆื™ืข ืฆื• ืงืึทื ืงืขืจืึทื ื˜ ื”ื˜ื˜ืคึผ ืจื™ืงื•ื•ืขืก. ืึทื ื™ื•ื–ื“ ื‘ืึทื“ื™ื ื•ื ื’ืก ื™ื•ื•ืขื ื˜ืฉืึทื•ื•ืึทืœื™ ื•ื•ืึธื’ ืึทืจืึธืคึผ ืฆื• ื ื•ืœ, ืคึผืจืึทื•ื•ื™ื™ื“ื™ื ื’ ืกืขืจื•ื•ืขืจืœืขืกืก-ื ื•ืกื— ืื•ื™ืฃ-ืคืึธื“ืขืจื•ื ื’ ืกืงื™ื™ืœื™ื ื’.

ืงื ืึทื˜ื™ื•ื•ืข ื‘ืืฉื˜ื™ื™ื˜ ืคื•ืŸ ืึท ื’ืึทื ื’ ืคื•ืŸ ืงืึทื ื˜ืจืึธื•ืœืขืจื– ื•ื•ืึธืก ื–ืขื ืขืŸ ืื™ื ืกื˜ืึทืœื™ืจืŸ ืื™ืŸ ืงื™ื™ืŸ ืงื•ื‘ืขืจื ืขื˜ืขืก ืงื ื•ื™ืœ ืื•ืŸ ืฆื•ืฉื˜ืขืœืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื–:

  • ื‘ื•ื™ืขืŸ ืงืึทื ื˜ื™ื™ื ืขืจื–ืขื“ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืคึฟื•ืŸ ืžืงื•ืจ ืงืึธื“ (ืฆื•ื’ืขืฉื˜ืขืœื˜ ื“ื•ืจืš ื“ื™ ืงืึธืžืคึผืึธื ืขื ื˜ ื‘ื•ื™ืขืŸ),
  • ืคึผืจืึทื•ื•ื™ื™ื“ื™ื ื’ ืึทืงืกืขืก ืฆื• ื™ื ืงืึทืžื™ื ื’ ืคืึทืจืงืขืจ ืฆื• ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– (ืฆื•ื’ืขืฉื˜ืขืœื˜ ื“ื•ืจืš ื“ื™ ืงืึธืžืคึผืึธื ืขื ื˜ ื’ืขื“ื™ื ื˜),
  • ืขืงืกืคึผืจืขืก ืื•ืŸ ืึธื˜ืึทืžืึทื˜ื™ืง ืกืงื™ื™ืœื™ื ื’ ืคื•ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืื•ื™ืฃ ืคืึธื“ืขืจื•ื ื’ (ืื•ื™ืš ืฆื•ื’ืขืฉื˜ืขืœื˜ ื“ื•ืจืš ื“ื™ ืงืึธืžืคึผืึธื ืขื ื˜ ื’ืขื“ื™ื ื˜),
  • ื™ื“ืขื ื˜ื™ืคื™ืฆื™ืจืŸ ื“ื™ ืงื•ื•ืืœืŸ ืคื•ืŸ ื’ืขืฉืขืขื ื™ืฉืŸ ื•ื•ืึธืก ืคื™ืจืŸ ืฆื• ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืœืึธื ื˜ืฉื™ื– (ืฆื•ื’ืขืฉื˜ืขืœื˜ ื“ื•ืจืš ื“ื™ ืงืึธืžืคึผืึธื ืขื ื˜ ืขื•ื•ืขื ื˜ื™ื ื’).

ื ืฉืœื™ืกืœ ืงืึธืžืคึผืึธื ืขื ื˜ ืื™ื– ืกืขืจื•ื•ื™ื ื’, ื•ื•ืึธืก ื’ื™ื˜ ืคึผืจืึทื•ื•ื™ื–ืฉืึทื ื–, ืึทื•ื˜ืึธ-ืกืงื™ื™ืœื™ื ื’ ืื•ืŸ ืคืึทืจืงืขืจ ืคืึทืจื•ื•ืึทืœื˜ื•ื ื’ ืคึฟืึทืจ ื’ืขืจืื˜ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–. ื ืึธืš ื™ื ืกื˜ืึธืœื™ื ื’ Knative, ืื™ืจ ื ืึธืš ื”ืึธื‘ืŸ ืคื•ืœ ืึทืงืกืขืก ืฆื• ื“ื™ Kubernetes API, ืึทืœืึทื•ื™ื ื’ ื ื™ืฆืขืจืก ืฆื• ืคื™ืจืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ื’ืขื•ื•ื™ื™ื ื˜ืœืขืš ื•ื•ืขื’, ืื•ืŸ ืื•ื™ืš ืกืขืจื•ื•ืขืก ืฆื• ื“ื™ื‘ืึทื’ื™ื ื’ ืงื ืึทื˜ื™ื•ื•ืข ื‘ืึทื“ื™ื ื•ื ื’ืก, ืืจื‘ืขื˜ืŸ ืžื™ื˜ ื“ื™ ื–ืขืœื‘ืข ืึทืคึผื™ ืคึผืจื™ืžื™ื˜ื™ื•ื•ื– ื•ื•ืึธืก ื“ื™ ืกืขืจื•ื•ื™ืกืขืก ื ื•ืฆืŸ (ืžืึธื“ื•ืœืขืก, ื‘ืึทื“ื™ื ื•ื ื’ืก, ืืื–"ื• ื•).

ืžื™ื˜ ื“ื™ ื”ื™ืœืฃ ืคื•ืŸ ืกืขืจื•ื•ื™ื ื’, ื‘ืœื•ื™-ื’ืจื™ืŸ ืคืึทืจืงืขืจ ืจื•ื˜ื™ื ื’ ืื™ื– ืื•ื™ืš ืึธื˜ืึทืžื™ื™ื˜ื™ื“, ื™ื ืฉื•ืจื™ื ื’ ืคืึทืจืงืขืจ ืฆืขืฉื™ื™ื“ื•ื ื’ ืฆื•ื•ื™ืฉืŸ ื ื™ื™ึทืข ืื•ืŸ ืึทืœื˜ ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื•ื•ืขืŸ ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ื’ื™ื˜ ืึท ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ.

ืงื ืึทื˜ื™ื•ื•ืข ื–ื™ืš ื“ืขืคึผืขื ื“ืก ืื•ื™ืฃ ื™ื ืกื˜ืึธืœื™ื ื’ ืึท ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ ื™ื ื’ืจืขืกืก ืงืึธื ื˜ืจืึธืœืœืขืจ. ืื™ืŸ ื“ืขืจ ืฆื™ื™ื˜ ืคื•ืŸ ืฉืจื™ื™ื‘ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ ืื™ื– ื’ืขืฉื˜ื™ืฆื˜ Gloo API Gateway ะธ Istio ืกืขืจื•ื•ื™ืก ืžืขืฉ. ืขืก ื•ื•ืขื˜ ืงืึทื ืคื™ื’ื™ืขืจ ื‘ื ื™ืžืฆื ื™ื ื’ืจืขืกืก ืฆื• ืžืึทืจืฉืจื•ื˜ ืคืึทืจืงืขืจ ืฆื• ืงื ืึทื˜ื™ื•ื•ืข-ื’ืขืจืื˜ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–.

Istio Service Mesh ืงืขืŸ ื–ื™ื™ืŸ ืึท ื’ืจื•ื™ืก ื“ืขืคึผืขื ื“ืขื ืกื™ ืคึฟืึทืจ ืงื ืึทื˜ื™ื•ื•ืข ื™ื•ื–ืขืจื– ื•ื•ืึธืก ื•ื•ื™ืœืŸ ืฆื• ืคึผืจื•ื‘ื™ืจืŸ ืขืก ืึธืŸ ื™ื ืกื˜ืึธืœื™ื ื’ ื“ื™ Istio ืงืึธื ื˜ืจืึธืœ ื˜ืึทืคืœื™ืข, ื•ื•ื™ื™ึทืœ ืงื ืึทื˜ื™ื•ื•ืข ื“ืขืคึผืขื ื“ืก ื‘ืœื•ื™ื– ืื•ื™ืฃ ื“ื™ ื’ื™ื™ื˜ื•ื•ื™ื™.

ืคึฟืึทืจ ื“ืขื ืกื™ื‘ื”, ืจื•ื‘ึฟ ื™ื•ื–ืขืจื– ื‘ืขืกืขืจ Gloo ื•ื•ื™ ืึท ื’ื™ื™ื˜ื•ื•ื™ื™ ืฆื• Knative, ืคึผืจืึทื•ื•ื™ื™ื“ื™ื ื’ ืึท ืขื ืœืขืš ื’ืึทื ื’ ืคื•ืŸ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืฆื• Istio (ืคึฟืึทืจ ื“ื™ ืฆื•ื•ืขืง ืฆื• ื ื•ืฆืŸ ื‘ืœื•ื™ื– 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

Gloo ืื™ื– ื’ืจื™ื™ื˜ ืคึฟืึทืจ ืจื•ื˜ื™ื ื’, ืœืึธื–ืŸ ืื•ื ื“ื– ืฉืึทืคึฟืŸ ืึทืŸ ืึธื˜ืึทืžืึทื˜ื™ืง ืกืงื™ื™ืœื™ื ื’ Knative ื“ื™ื ืกื˜ (ืœืึธืžื™ืจ ืจื•ืคืŸ ืขืก ืงืกืขืจื•ื•ื™ืกืข) ืื•ืŸ ืคื™ืจืŸ ืคืึทืจืงืขืจ ืฆื• ืขืก.

ืงื ืึทื˜ื™ื•ื•ืข ื‘ืึทื“ื™ื ื•ื ื’ืก ืฆื•ืฉื˜ืขืœืŸ ืึท ื’ืจื™ื ื’ืขืจ ื•ื•ืขื’ ืฆื• ื“ืขืœื™ื•ื•ืขืจื™ื ื’ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืฆื• Kubernetes ื•ื•ื™ ื“ื™ ืงืึทื ื•ื•ืขื ืฉืึทื ืึทืœ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ + ืกืขืจื•ื•ื™ืก + ื™ื ื’ืจืขืกืก ืžืึธื“ืขืœ. ืžื™ืจ ื•ื•ืขืœืŸ ืึทืจื‘ืขื˜ืŸ ืžื™ื˜ ื“ืขื ื‘ื™ื™ึทืฉืคึผื™ืœ:

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

ืžื™ืจ ืงืขื ืขืŸ ื–ืขืŸ ื“ื™ ืจืขืกื•ืจืกืŸ ื‘ืืฉืืคืŸ ื“ื•ืจืš Knative ืื™ืŸ ื“ืขื ืงื ื•ื™ืœ ื ืึธืš ื“ื™ืœื™ื•ื•ืขืจื™ื ื’ ืื•ื ื“ื–ืขืจ 'ื”ืขืœืœืึธื•ื•ืึธืจืœื“-ื’ื™ื™ืŸ' kservice:

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

ื“ืขืจ ืคึผืึธื“ ืžื™ื˜ ืื•ื ื“ื–ืขืจ 'ื”ืขืœืœืึธื•ื•ืึธืจืœื“-ื’ื™ื™ืŸ' ื‘ื™ืœื“ ืื™ื– ืœืึธื ื˜ืฉื˜ ื•ื•ืขืŸ ื“ื™ kservice ืื™ื– ื“ื™ืคึผืœื•ื™ื“. ืื•ื™ื‘ ืขืก ืื™ื– ืงื™ื™ืŸ ืคืึทืจืงืขืจ, ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืคึผืึธื“ืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืจื™ื“ื•ืกื˜ ืฆื• ื ื•ืœ. ืื•ืŸ ื•ื•ื™ืฆืข ื•ื•ืขืจืกืึท, ืื•ื™ื‘ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืกื™ื™ืžืึทืœื˜ื™ื™ื ื™ืึทืก ืจื™ืงื•ื•ืขืก ื™ืงืกื™ื“ื– ืึท ื–ื™ื›ืขืจ ืงืึธื ืคื™ื’ื•ืจืึทื‘ืœืข ืฉื•ื•ืขืœ, ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืคึผืึธื“ืก ื•ื•ืขื˜ ืคืึทืจื’ืจืขืกืขืจืŸ.

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

Knative ืงืึทื ืคื™ื’ื™ืขืจ ื–ื™ื™ืŸ ื™ื ื’ืจืขืกืก ืžื™ื˜ ืึท ืกืคึผืขืฆื™ืขืœ 'ื™ื ื’ืจืขืกืก' ืžื™ื˜ืœ ืื™ืŸ ื“ื™ ื™ื ืขืจืœืขืš Knative API. Gloo ื ื™ืฆื˜ ื“ืขื ืึทืคึผื™ ื•ื•ื™ ื–ื™ื™ืŸ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืฆื• ืฆื•ืฉื˜ืขืœืŸ PaaS-ื•ื•ื™ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืึท ื‘ืœื•ื™-ื’ืจื™ืŸ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืžืึธื“ืขืœ, ืึธื˜ืึทืžืึทื˜ื™ืง 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

ืฆื•ื ืกื•ืฃ ืžื™ืจ ื•ื•ืขืœืŸ ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ื“ืขืจื’ืจื™ื™ื›ืŸ ื–ื™ื™. ืื™ืจ ืงืขื ืขืŸ ืœื™ื™ื›ื˜ ืื•ืŸ ืœื™ื™ื›ื˜ ื‘ืึทืงื•ืžืขืŸ ื“ื™ URL ืคึฟืึทืจ 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:

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

Knative ื’ื™ื˜ ืึท ื›ึผืžืขื˜-PaaS ืคึฟืึทืจ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ืื•ื™ืฃ ืฉืคึผื™ืฅ ืคื•ืŸ ื“ื™ ืงื•ื‘ืขืจื ืขื˜ืขืก, ื ื™ืฆืŸ Gloo ืก ื”ื•ื™ืš-ืคืึธืจืฉื˜ืขืœื•ื ื’, ืคื•ืœ-ืกื˜ืึทืง ืึทืคึผื™ ื’ื™ื™ื˜ื•ื•ื™ื™. ื“ืขืจ ืคึผืึธืกื˜ืŸ ื”ืื˜ ื‘ืœื•ื™ื– ืกืงืจืึทื˜ืฉื˜ ื“ื™ ื™ื™ื‘ืขืจืคืœืึทืš ืคื•ืŸ Knative ืก ื‘ืจื™ื™ื˜ ืงื•ืกื˜ืึธืžื™ื–ืึทื˜ื™ืึธืŸ ืึธืคึผืฆื™ืขืก ืื•ืŸ ื ืึธืš ืคึฟืขื™ึดืงื™ื™ื˜ืŸ. ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืžื™ื˜ Gloo!

ื˜ืจืึธืฅ ื“ืขื ืคืึทืงื˜ ืึทื– Knative ืื™ื– ื ืึธืš ืึท ื™ื•ื ื’ ืคึผืจื•ื™ืขืงื˜, ื–ื™ื™ืŸ ืžืึทื ืฉืึทืคึฟื˜ ืจื™ืœื™ืกื™ื– ื ื™ื™ึทืข ื•ื•ืขืจืกื™ืขืก ื™ืขื“ืขืจ ื–ืขืงืก ื•ื•ืึธื›ืŸ, ืื•ืŸ ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ืึทื•ื•ืึทื ืกื™ืจื˜ืข ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ื”ืื˜ ืื ื’ืขื”ื•ื™ื‘ืŸ, ืึทื–ืึท ื•ื•ื™ ืึธื˜ืึทืžืึทื˜ื™ืง TLS ื“ื™ืคึผืœื•ื™ืžืึทื ื˜, ืึธื˜ืึทืžืึทื˜ื™ืง ืกืงื™ื™ืœื™ื ื’ ืคื•ืŸ ื“ื™ ืงืึธื ื˜ืจืึธืœ ื˜ืึทืคืœื™ืข. ืขืก ืื™ื– ืึท ื’ื•ื˜ ื’ืขืœืขื’ื ื”ื™ื™ึทื˜ ืึทื–, ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ืžื™ื˜ืึทืจื‘ืขื˜ ืฆื•ื•ื™ืฉืŸ ืงื™ื™ืคืœ ื•ื•ืึธืœืงืŸ ืงืึธืžืคึผืึทื ื™ืขืก, ืื•ืŸ ื•ื•ื™ ื“ื™ ื™ืงืขืจ ืคื•ืŸ Google ืก ื ื™ื™ึท ืงืœืึธื•ื“ ืจืึทืŸ ืงืจื‘ืŸ, Knative ืงืขืŸ ื•ื•ืขืจืŸ ื“ื™ ืขืจืฉื˜ื™ืง ืึธืคึผืฆื™ืข ืคึฟืึทืจ ืกืขืจื•ื•ืขืจืœืขืกืก ืงืึทืžืคึผื™ื•ื˜ื™ื ื’ ืื•ืŸ PaaS ืื•ื™ืฃ Kubernetes. ื’ื™ื™ ื“ื™ ื ื™ื™ึทืขืก!

ืคื•ืŸ ื“ื™ ืจืขื“ืืงืฆื™ืข ืคื•ืŸ โ€‹โ€‹SouthBridge
ื“ื™ ืžื™ื™ื ื•ื ื’ืขืŸ ืคื•ืŸ ืœื™ื™ืขื ืขืจ ื–ืขื ืขืŸ ื•ื•ื™ื›ื˜ื™ืง ืคึฟืึทืจ ืื•ื ื“ื–, ืึทื–ื•ื™ ืžื™ืจ ื‘ืขื˜ืŸ ืื™ืจ ืฆื• ื ืขืžืขืŸ ืึธื ื˜ื™ื™ืœ ืื™ืŸ ืึท ืงื•ืจืฅ ื™ื‘ืขืจื‘ืœื™ืง ืฉื™ื™ึทื›ื•ืช ืฆื• ืฆื•ืงื•ื ืคึฟื˜ ืึทืจื˜ื™ืงืœืขืŸ ื•ื•ืขื’ืŸ Knative, Kubernetes, ืกืขืจื•ื•ืขืจืœืขืกืก ืงืึทืžืคึผื™ื•ื˜ื™ื ื’:

ื‘ืœื•ื™ื– ืจืขื’ื™ืกื˜ืจื™ืจื˜ ื ื™ืฆืขืจืก ืงืขื ืขืŸ ืึธื ื˜ื™ื™ืœ ื ืขืžืขืŸ ืื™ืŸ ื“ื™ ื™ื‘ืขืจื‘ืœื™ืง. ืกื™ื™ืŸ ืืจื™ื™ืŸื‘ื™ื˜ืข.

ื–ืึธืœ ืื™ืš ืคืึธืจื–ืขืฆืŸ ืฉืจื™ื™ื‘ืŸ ืึทืจื˜ื™ืงืœืขืŸ ืื•ืŸ ืคื™ืจืขืจ ื•ื•ืขื’ืŸ ืงื ืึทื˜ื™ื•ื•ืข ืื•ืŸ ืกืขืจื•ื•ืขืจืœืขืกืก ืงืึทืžืคึผื™ื•ื˜ื™ื ื’?

  • ื™ื ื‘ื™ื˜ืข.

  • ื ื™ื™ืŸ ื ื“ืื ืง.

28 ื‘ืื ื•ืฆืขืจ ื”ืื‘ืŸ ื’ืขืฉื˜ื™ืžื˜. 4 ื‘ืื ื•ืฆืขืจ ื”ืื‘ืŸ ื–ื™ืš ืืคื’ืขื”ืืœื˜ืŸ.

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’