
Kubernetes āύāĻŋāĻāϏāύā§āĻĻā§āĻšā§ āĻāύā§āĻā§āĻāύāĻžāϰ āϏā§āĻĨāĻžāĻĒāύāĻžāϰ āĻāύā§āϝ āĻĒā§āϰāĻāĻžāĻŦāĻļāĻžāϞ⧠āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽ āĻšāϝāĻŧā§ āĻāĻ ā§āĻā§āĨ¤ āĻāĻāĻŋ āϤāĻžāϰ APIs āĻāĻŦāĻ āĻāĻžāϏā§āĻāĻŽ āĻāύā§āĻā§āϰā§āϞāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻĒā§āϰāĻžāϝāĻŧ āϏāĻŦāĻāĻŋāĻā§ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖ āĻāϰāĻžāϰ āĻā§āώāĻŽāϤāĻž āĻĒā§āϰāĻĻāĻžāύ āĻāϰ⧠āϝāĻž āĻāĻžāϏā§āĻāĻŽ āϏāĻāϏā§āĻĨāĻžāύāĻā§āϞāĻŋāϰ āϏāĻžāĻĨā§ āĻāϰ APIāĻā§āϞāĻŋ āĻĒā§āϰāϏāĻžāϰāĻŋāϤ āĻāϰā§āĨ¤
āϝāĻžāĻāĻšā§āĻ, āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻā§ āĻāĻāύāĻ āĻ āĻŋāĻ āĻā§āĻāĻžāĻŦā§ āĻĒā§āϰāϝāĻŧā§āĻ, āĻāύāĻĢāĻŋāĻāĻžāϰ, āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāĻŦāĻ āϏā§āĻā§āϞ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻā§āϞāĻŋ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ āύāĻŋāϤ⧠āĻšāĻŦā§āĨ¤ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āϏā§āĻā§āϞāĻŋāĻ, āϏā§āϰāĻā§āώāĻž āĻāĻŦāĻ āĻā§āϰā§āϝāĻžāĻĢāĻŋāĻ āĻĒā§āϰāĻŦāĻžāĻšā§āϰ āϏāĻŽāϏā§āϝāĻžāĻā§āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻŦāĻŋāĻŦā§āĻāύāĻžāϰ āĻāĻŋāϤā§āϤāĻŋāϤ⧠āĻĨāĻžāĻā§āĨ¤ āĻāĻāĻŋ āĻā§āϞāĻžāĻāĻĄ āĻĢāĻžāĻāύā§āĻĄā§āϰāĻŋ āĻāĻŦāĻ āĻšā§āϰā§āĻā§-āĻāϰ āĻŽāϤ⧠āĻĒāϰāĻŋāώā§āĻŦāĻž (PaaS) āĻšāĻŋāϏāĻžāĻŦā§ āĻĒā§āϰāĻāϞāĻŋāϤ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽāĻā§āϞāĻŋ āĻĨā§āĻā§ āĻā§āĻŦāĻžāϰāύā§āĻāϏāĻā§ āĻāϞāĻžāĻĻāĻž āĻāϰā§āĨ¤
āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽāĻā§āϞāĻŋāϰ āĻāĻāĻāĻŋ āϏāϰāϞā§āĻā§āϤ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻāύā§āĻāĻžāϰāĻĢā§āϏ āϰāϝāĻŧā§āĻā§ āĻāĻŦāĻ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāϰā§āĻĻā§āϰ āϞāĻā§āώā§āϝ āĻāϰ⧠āϝāĻžāϰāĻž āĻĒā§āϰāĻžāϝāĻŧāĻļāĻ āĻĒā§āĻĨāĻ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āϏā§āĻ āĻāĻĒ āĻāϰāĻžāϰ āϏāĻžāĻĨā§ āĻāĻĄāĻŧāĻŋāϤ āĻĨāĻžāĻā§āĨ¤ āĻ āύā§āϤāϰā§āύāĻŋāĻšāĻŋāϤ PaaS āϏāĻŋāϏā§āĻā§āĻŽ āĻĻā§āĻŦāĻžāϰāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻāĻžāĻā§ āϰāĻžāĻāĻāĻŋāĻ, āϏā§āĻĨāĻžāĻĒāύāĻž āĻāĻŦāĻ āĻŽā§āĻā§āϰāĻŋāĻā§āϏ āϏā§āĻŦāĻā§āĻāĻāĻžāĻŦā§ āĻĒāϰāĻŋāĻāĻžāϞāĻŋāϤ āĻšāϝāĻŧāĨ¤
āϏā§āϰā§āϏ-āĻā§-āĻļāĻŋāĻĒ āĻāϝāĻŧāĻžāϰā§āĻāĻĢā§āϞ⧠PaaS āĻĻā§āĻŦāĻžāϰāĻž āĻāĻāĻāĻŋ āĻāĻžāϏā§āĻāĻŽ āĻāύā§āĻā§āĻāύāĻžāϰ āĻāĻŽā§āĻ āϤā§āϰāĻŋ āĻāϰā§, āĻāĻāĻŋ āϏā§āĻĨāĻžāĻĒāύ āĻāϰā§, āĻāĻāĻāĻŋ āύāϤā§āύ āϰā§āĻ āϏā§āĻ āĻāĻĒ āĻāϰ⧠āĻāĻŦāĻ āĻāύāĻāĻžāĻŽāĻŋāĻ āĻā§āϰāĻžāĻĢāĻŋāĻā§āϰ āĻāύā§āϝ DNS āϏāĻžāĻŦāĻĄā§āĻŽā§āύ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰā§āĨ¤ āĻāĻ āϏāĻŦ āĻāĻŽāĻžāύā§āĻĄ āĻāĻžāϞ⧠āĻāϰāĻž āĻšāϝāĻŧ git push.
Kubernetes (āĻāĻā§āĻāĻžāĻā§āϤāĻāĻžāĻŦā§) āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻāĻ āϧāϰāύā§āϰ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽā§āϰ āĻāύā§āϝ āĻŽā§āϞ āĻŦāĻŋāϞā§āĻĄāĻŋāĻ āĻŦā§āϞāĻ āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§, āϏāĻŽā§āĻĒā§āϰāĻĻāĻžāϝāĻŧāĻā§ āύāĻŋāĻā§āϰāĻžāĻ āĻāĻžāĻ āĻāϰāĻžāϰ āĻāύā§āϝ āϏā§āĻŦāĻžāϧā§āύ āϰā§āĻā§ āĻĻā§āϝāĻŧāĨ¤ āĻāĻŋāĻāĻžāĻŦā§ :
Kubernetes āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽ āύāĻŋāϰā§āĻŽāĻžāĻŖā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽāĨ¤ āĻļā§āϰ⧠āĻāϰāĻžāϰ āĻāύā§āϝ āϏā§āϰāĻž āĻ āĻŦāϏā§āĻĨāĻžāύ, āĻāĻŋāύā§āϤ⧠āĻļā§āώ āύāĻžāĨ¤
āĻĢāϞāϏā§āĻŦāϰā§āĻĒ, āĻāĻŽāϰāĻž āĻā§āĻŦāĻžāϰāύā§āĻāϏ āĻŦāĻŋāϞā§āĻĄāĻā§āϞāĻŋāϰ āĻāĻāĻāĻŋ āĻā§āĻā§āĻ āĻĻā§āĻāϤ⧠āĻĒāĻžāĻā§āĻāĻŋ, āϏā§āĻāϏāĻžāĻĨā§ āĻšā§āϏā§āĻāĻŋāĻ āϏāĻāϏā§āĻĨāĻžāĻā§āϞāĻŋ āϝā§āĻā§āϞāĻŋ āĻāĻĒā§āύāĻļāĻŋāĻĢāĻ āĻāĻŦāĻ āϰāĻžāĻā§āĻāĻžāϰā§āϰ āĻŽāϤ⧠āĻā§āĻŦāĻžāϰāύā§āĻāϏā§āϰ āĻāύā§āϝ PaaS āϤā§āϰāĻŋ āĻāϰāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰāĻā§ā§ˇ āĻā§āϰāĻŽāĻŦāϰā§āϧāĻŽāĻžāύ Kube-PaaS āĻŦāĻžāĻāĻžāϰā§āϰ āĻŽāϧā§āϝā§, Google āĻāĻŦāĻ Pivotal āĻĻā§āĻŦāĻžāϰāĻž āĻā§āϞāĻžāĻ 2018 āϏāĻžāϞ⧠āĻĒā§āϰāϤāĻŋāώā§āĻ āĻŋāϤ Knative, āϰāĻŋāĻāϝāĻŧā§ āĻĒā§āϰāĻŦā§āĻļ āĻāϰāĻā§āĨ¤
Knative āĻāĻŋāϞ Google āĻāĻŦāĻ Pivotal-āĻāϰ āĻŽāϧā§āϝ⧠āĻāĻāĻāĻŋ āϏāĻšāϝā§āĻāĻŋāϤāĻž, āĻ āύā§āϝāĻžāύā§āϝ āĻā§āĻŽā§āĻĒāĻžāύāĻŋ āϝā§āĻŽāύ IBM, RedHat āĻāĻŦāĻ Solo.im āĻĨā§āĻā§ āϏāĻžāĻŽāĻžāύā§āϝ āϏāĻžāĻšāĻžāϝā§āϝ āύāĻŋāϝāĻŧā§āĨ¤ āĻāĻāĻŋ āϏāĻžāϰā§āĻāĻžāϰāĻšā§āύ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻŋāĻ-āĻāĻŋāϤā§āϤāĻŋāĻ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻā§āϞāĻŋāϰ āĻāύā§āϝ āĻļā§āϰā§āώāϏā§āĻĨāĻžāύā§āϝāĻŧ āϏāĻŽāϰā§āĻĨāύ āϏāĻš Kubernetes-āĻ āĻ āύā§āϰā§āĻĒ PaaS āĻāĻŋāύāĻŋāϏāĻā§āϞāĻŋ āĻ āĻĢāĻžāϰ āĻāϰā§āĨ¤ Kubernetes āĻŦāĻŋāϞā§āĻĄā§āϰ āĻŦāĻŋāĻĒāϰā§āϤā§, Knative āϝā§āĻā§āύ āϏāĻžāĻŽāĻā§āĻāϏā§āϝāĻĒā§āϰā§āĻŖ Kubernetes āĻā§āϞāĻžāϏā§āĻāĻžāϰ⧠āĻāĻāĻāĻŋ āĻ ā§āϝāĻžāĻĄ-āĻ āύ āĻšāĻŋāϏāĻžāĻŦā§ āĻāύāϏā§āĻāϞ āĻāϰāĻž āĻšāϝāĻŧ āĻāĻŦāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āϏāĻāϏā§āĻĨāĻžāύāĻā§āϞāĻŋāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧāĨ¤
Knative āĻāĻŋ?
Knative āĻšāĻŋāϏāĻžāĻŦā§ āĻŦāϰā§āĻŖāύāĻž āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ "āĻāϧā§āύāĻŋāĻ āϏāĻžāϰā§āĻāĻžāϰāĻšā§āύ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻŋāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻžāĻā§āϰ āĻāĻžāĻĒ āϏāϰāĻŦāϰāĻžāĻš āĻāĻŦāĻ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻā§āĻŦāĻžāϰāύā§āĻāϏ-āĻāĻŋāϤā§āϤāĻŋāĻ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽāĨ¤" āύā§āĻāĻŋāĻ, āύāĻŋāĻā§āĻā§ āĻāĻ āĻāĻžāϤā§āϝāĻŧ āĻāĻāĻāĻŋ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽ āĻšāĻŋāϏāĻžāĻŦā§ āĻŦāĻŋāϞāĻŋāĻ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ, āϏāĻŽāĻŦāϰā§āϤ⧠HTTP āĻ āύā§āϰā§āϧāĻā§āϞāĻŋāϰ āĻ āύā§āĻĒāĻžāϤ⧠āϏāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āĻāύā§āĻā§āĻāύāĻžāϰāĻā§āϞāĻŋāĻā§ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āϏā§āĻā§āϞ āĻāϰā§āĨ¤ āĻ āĻŦā§āϝāĻŦāĻšā§āϤ āĻĒāϰāĻŋāώā§āĻŦāĻžāĻā§āϞāĻŋ āĻļā§āώ āĻĒāϰā§āϝāύā§āϤ āĻļā§āύā§āϝ⧠āύā§āĻŽā§ āĻāϏā§, āϏāĻžāϰā§āĻāĻžāϰāĻšā§āύ-āϏā§āĻāĻžāĻāϞ āĻ āύ-āĻĄāĻŋāĻŽāĻžāύā§āĻĄ āϏā§āĻā§āϞāĻŋāĻ āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§āĨ¤
Knative āĻāύā§āĻā§āϰā§āϞāĻžāϰā§āϰ āĻāĻāĻāĻŋ āϏā§āĻ āύāĻŋāϝāĻŧā§ āĻāĻ āĻŋāϤ āϝāĻž āϝā§āĻā§āύ āĻā§āĻŦāĻžāϰāύā§āĻāϏ āĻā§āϞāĻžāϏā§āĻāĻžāϰ⧠āĻāύāϏā§āĻāϞ āĻāϰ⧠āĻāĻŦāĻ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻā§āώāĻŽāϤāĻž āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§:
- āϏā§āϰā§āϏ āĻā§āĻĄ āĻĨā§āĻā§ āĻāύā§āĻā§āĻāύāĻžāϰāĻžāĻāĻāĻĄ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āϤā§āϰāĻŋ āĻāϰāĻž (āĻāĻŽā§āĻĒā§āύā§āύā§āĻ āĻĻā§āĻŦāĻžāϰāĻž āĻĒā§āϰāĻĻāϤā§āϤ āύāĻŋāϰā§āĻŽāĻžāĻŖ āĻāϰāĻž),
- āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāĻžāύāĻā§āϞāĻŋāϤ⧠āĻāĻāϤ āĻā§āϰā§āϝāĻžāĻĢāĻŋāĻ āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻĒā§āϰāĻĻāĻžāύ (āĻāĻŽā§āĻĒā§āύā§āύā§āĻ āĻĻā§āĻŦāĻžāϰāĻž āĻĒā§āϰāĻĻāϤā§āϤ āĻāĻāύāĻž),
- āĻāĻžāĻšāĻŋāĻĻāĻž āĻ āύā§āϝāĻžāϝāĻŧā§ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύā§āϰ āĻĄā§āϞāĻŋāĻāĻžāϰāĻŋ āĻāĻŦāĻ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧ āϏā§āĻā§āϞāĻŋāĻ (āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻĒāĻžāĻĻāĻžāύ āĻĻā§āĻŦāĻžāϰāĻž āϏāϰāĻŦāϰāĻžāĻš āĻāϰāĻž āĻšāϝāĻŧ āĻāĻāύāĻž),
- āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āϞāĻā§āĻā§āϰ āĻĻāĻŋāĻā§ āĻĒāϰāĻŋāĻāĻžāϞāĻŋāϤ āĻāĻā§āύā§āĻāĻā§āϞāĻŋāϰ āĻāϤā§āϏāĻā§āϞāĻŋ āϏāύāĻžāĻā§āϤ āĻāϰāĻž (āĻāĻŽā§āĻĒā§āύā§āύā§āĻ āĻĻā§āĻŦāĻžāϰāĻž āϏāϰāĻŦāϰāĻžāĻš āĻāϰāĻžā§ˇ āĻāĻāύāĻž).
āĻāĻāĻāĻŋ āĻŽā§āϞ āĻāĻĒāĻžāĻĻāĻžāύ āĻšāϞ āĻĒāϰāĻŋāĻŦā§āĻļāύ, āϝāĻž āĻĒāϰāĻŋāĻāĻžāϞāĻŋāϤ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻā§āϞāĻŋāϰ āĻāύā§āϝ āĻĒā§āϰāĻāĻŋāĻļāύāĻŋāĻ, āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧ-āϏā§āĻā§āϞāĻŋāĻ āĻāĻŦāĻ āĻā§āϰāĻžāĻĢāĻŋāĻ āĻŦā§āϝāĻŦāϏā§āĻĨāĻžāĻĒāύāĻž āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§āĨ¤ Knative āĻāύāϏā§āĻāϞ āĻāϰāĻžāϰ āĻĒāϰā§, āĻāĻĒāύāĻŋ āĻāĻāύāĻ Kubernetes API-āϤ⧠āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻĒāĻžāĻŦā§āύ, āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻā§āϞāĻŋ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰāĻžāϰ āĻ āύā§āĻŽāϤāĻŋ āĻĻā§āϝāĻŧ āϏāĻžāϧāĻžāϰāĻŖ āĻāĻĒāĻžāϝāĻŧ, āĻāĻŦāĻ Knative āĻĒāϰāĻŋāώā§āĻŦāĻžāĻā§āϞāĻŋāĻā§ āĻĄāĻŋāĻŦāĻžāĻ āĻāϰāϤā§āĻ āĻāĻžāĻ āĻāϰā§, āĻāĻāĻ API āĻāĻĻāĻŋāĻŽāĻā§āϞāĻŋāϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰ⧠āϝāĻž āĻāĻ āĻĒāϰāĻŋāώā§āĻŦāĻžāĻā§āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠(āĻŽāĻĄāĻŋāĻāϞ, āĻĒāϰāĻŋāώā§āĻŦāĻž, āĻāϤā§āϝāĻžāĻĻāĻŋ)⧎
āϏāĻžāϰā§āĻāĻŋāĻ āĻāϰ āϏāĻžāĻšāĻžāϝā§āϝā§, āύā§āϞ-āϏāĻŦā§āĻ āĻā§āϰā§āϝāĻžāĻĢāĻŋāĻ āϰāĻžāĻāĻāĻŋāĻ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧ āĻšāϝāĻŧ, āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āϝāĻāύ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻāĻŋāϰ āĻāĻāĻāĻŋ āĻāĻĒāĻĄā§āĻ āϏāĻāϏā§āĻāϰāĻŖ āϏāϰāĻŦāϰāĻžāĻš āĻāϰ⧠āϤāĻāύ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻāĻŋāϰ āύāϤā§āύ āĻāĻŦāĻ āĻĒā§āϰāĻžāύ⧠āϏāĻāϏā§āĻāϰāĻŖāĻā§āϞāĻŋāϰ āĻŽāϧā§āϝ⧠āĻā§āϰā§āϝāĻžāĻĢāĻŋāĻ āĻĒā§āĻĨāĻā§āĻāϰāĻŖ āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰā§ā§ˇ
Knative āύāĻŋāĻā§āĻ āĻāĻāĻāĻŋ āϏāĻžāĻŽāĻā§āĻāϏā§āϝāĻĒā§āϰā§āĻŖ āĻĒā§āϰāĻŦā§āĻļ āĻāύā§āĻā§āϰā§āϞāĻžāϰ āĻāύāϏā§āĻāϞ āĻāϰāĻžāϰ āĻāĻĒāϰ āύāĻŋāϰā§āĻāϰ āĻāϰā§āĨ¤ āĻāĻ āύāĻŋāĻŦāύā§āϧāĻāĻŋ āϞā§āĻāĻžāϰ āϏāĻŽāϝāĻŧ āϏāĻŽāϰā§āĻĨāĻŋāϤ и . āĻāĻāĻŋ Knative-āĻĒāϰāĻŋāĻāĻžāϞāĻŋāϤ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻā§āϞāĻŋāϤ⧠āĻā§āϰā§āϝāĻžāĻĢāĻŋāĻ āϰā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻĒāϞāĻŦā§āϧ āĻĒā§āϰāĻŦā§āĻļ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻŦā§āĨ¤
Istio āĻāύā§āĻā§āϰā§āϞ āĻĒā§āϝāĻžāύā§āϞ āĻāύāϏā§āĻāϞ āύāĻž āĻāϰā§āĻ Native āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āĻāύā§āϝ Istio āĻĒāϰāĻŋāώā§āĻŦāĻž āĻŽā§āĻļ āĻāĻāĻāĻŋ āĻŦāĻĄāĻŧ āύāĻŋāϰā§āĻāϰāϤāĻž āĻšāϤ⧠āĻĒāĻžāϰā§, āϝā§āĻšā§āϤ⧠Knative āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻā§āĻāĻāϝāĻŧā§āϰ āĻāĻĒāϰ āύāĻŋāϰā§āĻāϰ āĻāϰā§āĨ¤
āĻāĻ āĻāĻžāϰāĻŖā§, āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻ Knative-āĻāϰ āĻā§āĻāĻāϝāĻŧā§ āĻšāĻŋāϏāĻžāĻŦā§ Gloo āĻĒāĻāύā§āĻĻ āĻāϰā§āύ, Istio-āĻā§ (āĻļā§āϧā§āĻŽāĻžāϤā§āϰ 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 44sGloo āϰāĻžāĻāĻāĻŋāĻ-āĻāϰ āĻāύā§āϝ āĻĒā§āϰāϏā§āϤā§āϤ, āĻāϏā§āύ āĻāĻāĻāĻŋ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧ-āϏā§āĻā§āϞāĻŋāĻ Knative āĻĒāϰāĻŋāώā§āĻŦāĻž āϤā§āϰāĻŋ āĻāϰāĻŋ (āĻāϏā§āύ āĻāĻāĻŋāĻā§ kservice āĻŦāϞāĻŋ) āĻāĻŦāĻ āĻāϤ⧠āĻā§āϰāĻžāĻĢāĻŋāĻ āϰā§āĻ āĻāϰāĻŋāĨ¤
āĻĒā§āϰāĻāϞāĻŋāϤ āĻĄāĻŋāĻĒā§āϞāϝāĻŧāĻŽā§āύā§āĻ+āϏāĻžāϰā§āĻāĻŋāϏ+āĻāύāĻā§āϰā§āϏ āĻŽāĻĄā§āϞā§āϰ āĻā§āϝāĻŧā§ Knative āĻĒāϰāĻŋāώā§āĻŦāĻžāĻā§āϞāĻŋ āĻā§āĻŦāĻžāϰāύā§āĻā§ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āϏāϰāĻŦāϰāĻžāĻš āĻāϰāĻžāϰ āĻāĻāĻāĻŋ āϏāĻšāĻ āĻĒāĻĨ āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§āĨ¤ āĻāĻŽāϰāĻž āĻāĻ āĻāĻĻāĻžāĻšāϰāĻŖā§āϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰāĻŦ:
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āĻāĻŽāĻžāĻĻā§āϰ 'āĻšā§āϝāĻžāϞā§āĻāϝāĻŧāĻžāϰā§āϞā§āĻĄ-āĻā§' āĻĄā§āϞāĻŋāĻāĻžāϰ āĻāϰāĻžāϰ āĻĒāϰ⧠āĻāĻŽāϰāĻž āĻā§āϞāĻžāϏā§āĻāĻžāϰ⧠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 TrueKnative āĻ āĻā§āϝāύā§āϤāϰā§āĻŖ Knative API-āĻ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āώ 'āĻāύāĻā§āϰā§āϏ' āϰāĻŋāϏā§āϰā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāϰ āĻĒā§āϰāĻŦā§āĻļ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰā§āĨ¤ āĻāĻāĻāĻŋ āύā§āϞ-āϏāĻŦā§āĻ āϏā§āĻĨāĻžāĻĒāύāĻžāϰ āĻŽāĻĄā§āϞ, āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧ TLS āĻāύāĻĢā§āϰā§āϏāĻŽā§āύā§āĻ, āĻāĻžāĻāĻŽāĻāĻāĻ āĻāĻŦāĻ āĻ āύā§āϝāĻžāύā§āϝ āĻāύā§āύāϤ āϰāĻžāĻāĻāĻŋāĻ āĻŦā§āĻļāĻŋāώā§āĻā§āϝ āϏāĻš PaaS-āĻāϰ āĻŽāϤ⧠āĻŦā§āĻļāĻŋāώā§āĻā§āϝāĻā§āϞāĻŋ āĻĒā§āϰāĻĻāĻžāύ āĻāϰāĻžāϰ āĻāύā§āϝ Gloo āĻāĻ APIāĻāĻŋāĻā§ āϤāĻžāϰ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻšāĻŋāϏāĻžāĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤
āĻāĻŋāĻā§ āϏāĻŽāϝāĻŧ āĻĒāϰā§, āĻāĻŽāϰāĻž āĻĻā§āĻāϤ⧠āĻĒāĻžāĻ āϝ⧠āĻāĻŽāĻžāĻĻā§āϰ āĻĒā§āĻĄāĻā§āϞāĻŋ āĻ āĻĻā§āĻļā§āϝ āĻšāϝāĻŧā§ āĻā§āĻā§ (āĻāĻžāϰāĻŖ āĻā§āύ āĻāĻāϤ āĻā§āϰā§āϝāĻžāĻĢāĻŋāĻ āĻāĻŋāϞ āύāĻž):
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 āĻĒā§āϰāĻā§āϏāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠URL āĻĒā§āϤ⧠āĻĒāĻžāϰā§āύ 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 Gloo-āĻāϰ āĻāĻā§āĻ-āĻĒāĻžāϰāĻĢāϰāĻŽā§āϝāĻžāύā§āϏ, āĻĢā§āϞ-āϏā§āĻā§āϝāĻžāĻ API āĻā§āĻāĻāϝāĻŧā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻāĻ-āĻ āĻĢ-āĻĻā§āϝ-āĻŦāĻā§āϏ Kubernetes-āĻāϰ āĻāĻĒāϰ⧠āĻĄā§āĻā§āϞāĻĒāĻžāϰāĻĻā§āϰ āĻāύā§āϝ āĻĒā§āϰāĻžāϝāĻŧ-PaaS āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§āĨ¤ āĻāĻ āĻĒā§āϏā§āĻāĻāĻŋ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ Knative āĻāϰ āĻŦāĻŋāϏā§āϤā§āϤ āĻāĻžāϏā§āĻāĻŽāĻžāĻāĻā§āĻļāύ āĻŦāĻŋāĻāϞā§āĻĒ āĻāĻŦāĻ āĻ āϤāĻŋāϰāĻŋāĻā§āϤ āĻŦā§āĻļāĻŋāώā§āĻā§āϝāĻā§āϞāĻŋāϰ āĻĒā§āώā§āĻ āĻā§ āϏā§āĻā§āϰā§āϝāĻžāĻ āĻāϰā§āĻā§āĨ¤ Gloo āϏāĻā§āĻā§ āĻāĻāĻ!
Knative āĻāĻāύāĻ āĻāĻāĻāĻŋ āϤāϰā§āĻŖ āĻĒā§āϰāĻāϞā§āĻĒ āĻšāĻāϝāĻŧāĻž āϏāϤā§āϤā§āĻŦā§āĻ, āĻāϰ āĻĻāϞ āĻĒā§āϰāϤāĻŋ āĻāϝāĻŧ āϏāĻĒā§āϤāĻžāĻšā§ āύāϤā§āύ āϏāĻāϏā§āĻāϰāĻŖ āĻĒā§āϰāĻāĻžāĻļ āĻāϰ⧠āĻāĻŦāĻ āĻāύā§āύāϤ āĻŦā§āĻļāĻŋāώā§āĻā§āϝāĻā§āϞāĻŋāϰ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ āĻļā§āϰ⧠āĻšāϝāĻŧā§āĻā§, āϝā§āĻŽāύ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧ TLS āϏā§āĻĨāĻžāĻĒāύāĻž, āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖ āĻĒā§āϝāĻžāύā§āϞā§āϰ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧ āϏā§āĻā§āϞāĻŋāĻāĨ¤ āĻāĻāĻžāϧāĻŋāĻ āĻā§āϞāĻžāĻāĻĄ āĻā§āĻŽā§āĻĒāĻžāύāĻŋāϰ āĻŽāϧā§āϝ⧠āϏāĻšāϝā§āĻāĻŋāϤāĻžāϰ āĻĢāϞ⧠āĻāĻŦāĻ Google-āĻāϰ āύāϤā§āύ āĻā§āϞāĻžāĻāĻĄ āϰāĻžāύ āĻ āĻĢāĻžāϰā§āϰ āĻāĻŋāϤā§āϤāĻŋ āĻšāĻŋāϏāĻžāĻŦā§, Knative āϏāĻžāϰā§āĻāĻžāϰāĻšā§āύ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻŋāĻ āĻāĻŦāĻ āĻā§āĻŦāĻžāϰāύā§āĻā§ PaaS-āĻāϰ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ āĻŦāĻŋāĻāϞā§āĻĒ āĻšāϝāĻŧā§ āĻāĻ āϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻŦāϰ āĻ āύā§āϏāϰāĻŖ āĻāϰā§āύ!
āϏāĻžāĻāĻĨāĻŦā§āϰāĻŋāĻā§āϰ āϏāĻŽā§āĻĒāĻžāĻĻāĻāĻĻā§āϰ āĻāĻžāĻ āĻĨā§āĻā§
āĻĒāĻžāĻ āĻāĻĻā§āϰ āĻŽāϤāĻžāĻŽāϤ āĻāĻŽāĻžāĻĻā§āϰ āĻāĻžāĻā§ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ, āϤāĻžāĻ āĻāĻŽāϰāĻž āĻāĻĒāύāĻžāĻā§ Knative, Kubernetes, āϏāĻžāϰā§āĻāĻžāϰāĻšā§āύ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻŋāĻ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāĻŦāĻŋāώā§āϝāϤā§āϰ āύāĻŋāĻŦāύā§āϧāĻā§āϞāĻŋāϰ āϏāĻžāĻĨā§ āϏāĻŽā§āĻĒāϰā§āĻāĻŋāϤ āĻāĻāĻāĻŋ āϏāĻāĻā§āώāĻŋāĻĒā§āϤ āϏāĻŽā§āĻā§āώāĻžāϝāĻŧ āĻ
āĻāĻļ āύāĻŋāϤ⧠āĻŦāϞāĻŋ:
āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āύāĻŋāĻŦāύā§āϧāĻŋāϤ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰāĻž āĻāϰāĻŋāĻĒā§ āĻ āĻāĻļāĻā§āϰāĻšāĻŖ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§āύāĨ¤ āĻāϰā§āύāĨ¤
āĻāĻŽāĻžāϰ āĻāĻŋ Knative āĻāĻŦāĻ āϏāĻžāϰā§āĻāĻžāϰāĻšā§āύ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻŋāĻ āϏāĻŽā§āĻĒāϰā§āĻā§ āύāĻŋāĻŦāύā§āϧ āĻāĻŦāĻ āĻāĻžāĻāĻĄ āϞā§āĻāĻž āĻāĻžāϞāĻŋāϝāĻŧā§ āϝā§āϤ⧠āĻšāĻŦā§?
āĻšā§āϝāĻžāĻ.
āύāĻž āϧāύā§āϝāĻŦāĻžāĻĻ.
28 āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻā§āĻ āĻĻāĻŋāϝāĻŧā§āĻā§āύāĨ¤ 4 āĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻŦāĻŋāϰāϤ āĻāĻŋāϞā§āύāĨ¤
āĻāϤā§āϏ: www.habr.com
