ืกืื•ืช'ื‘ืจื™ื“ื’' ื‘ืฆ'ืœื™ืื‘ื™ื ืกืง ื•ื‘ื™ื˜ืจื™ืงืก ื‘ืงื•ื‘ืจื ื˜ืก

ืžืคื’ืฉื™ ืžื ื”ืœ ืžืขืจื›ืช Sysadminka ืžืชืงื™ื™ืžื™ื ื‘ืฆ'ืœื™ืื‘ื™ื ืกืง, ื•ื‘ืคืขื ื”ืื—ืจื•ื ื” ื ืชืชื™ ื“ื™ื•ื•ื— ืขืœ ื”ืคืชืจื•ืŸ ืฉืœื ื• ืœื”ืคืขืœืช ื™ื™ืฉื•ืžื™ื ื‘-1C-Bitrix ื‘-Kubernetes.

Bitrix, Kubernetes, Ceph - ืชืขืจื•ื‘ืช ื ื”ื“ืจืช?

ืื ื™ ืื’ื™ื“ ืœืš ืื™ืš ื”ืจื›ื‘ื ื• ืคืชืจื•ืŸ ืขื•ื‘ื“ ืžื›ืœ ื–ื”.

ื‘ื•ืื• ื ืœืš!

ืกืื•ืช'ื‘ืจื™ื“ื’' ื‘ืฆ'ืœื™ืื‘ื™ื ืกืง ื•ื‘ื™ื˜ืจื™ืงืก ื‘ืงื•ื‘ืจื ื˜ืก

ื”ืžืคื’ืฉ ื”ืชืงื™ื™ื ื‘-18 ื‘ืืคืจื™ืœ ื‘ืฆ'ืœื™ืื‘ื™ื ืกืง. ืชื•ื›ืœ ืœืงืจื•ื ืขืœ ื”ืžืคื’ืฉื™ื ืฉืœื ื• ื‘ื›ืชื•ื‘ืช ืœื•ื— ื–ืžืŸ ื•ืœื”ืกืชื›ืœ ืขืœ ื™ื•ื˜ื™ื•ื‘.

ืื ืชืจืฆื• ืœื”ื’ื™ืข ืืœื™ื ื• ืขื ื“ื™ื•ื•ื— ืื• ื›ืžืื–ื™ืŸ - ื‘ืจื•ื›ื™ื ื”ื‘ืื™ื, ื›ืชื‘ื• ืœ [ืžื•ื’ืŸ ื‘ื“ื•ื"ืœ] ื•ื‘ื˜ืœื’ืจื t.me/vadimisakanov.

ื”ื“ื™ื•ื•ื— ืฉืœื™

ืกืื•ืช'ื‘ืจื™ื“ื’' ื‘ืฆ'ืœื™ืื‘ื™ื ืกืง ื•ื‘ื™ื˜ืจื™ืงืก ื‘ืงื•ื‘ืจื ื˜ืก

ืฉืงื•ืคื™ื•ืช

ืคืชืจื•ืŸ "Bitrix in Kubernetes, ื’ืจืกื” Southbridge 1.0"

ืื“ื‘ืจ ืขืœ ื”ืคืชืจื•ืŸ ืฉืœื ื• ื‘ืคื•ืจืžื˜ "ืขื‘ื•ืจ ื‘ื•ื‘ื•ืช ื‘-Kubernetes", ื›ืคื™ ืฉื ืขืฉื” ื‘ืžืคื’ืฉ. ืื‘ืœ ืื ื™ ืžื ื™ื— ืฉืืชื” ืžื›ื™ืจ ืืช ื”ืžื™ืœื™ื Bitrix, Docker, Kubernetes, Ceph ืœืคื—ื•ืช ื‘ืจืžืช ื”ืžืืžืจื™ื ื‘ื•ื•ื™ืงื™ืคื“ื™ื”.

ืžื” ืžื•ื›ืŸ ื‘-Bitrix ื‘-Kubernetes?

ื™ืฉ ืžืขื˜ ืžืื•ื“ ืžื™ื“ืข ื‘ื›ืœ ื”ืื™ื ื˜ืจื ื˜ ืขืœ ืชืคืขื•ืœ ื™ื™ืฉื•ืžื™ Bitrix ื‘-Kubernetes.
ืžืฆืืชื™ ืจืง ืืช ื”ื—ื•ืžืจื™ื ื”ืืœื”:

ื“ื™ื•ื•ื— ืฉืœ ืืœื›ืกื ื“ืจ ืกืจื‘ื•ืœ, 1C-Bitrix, ื•ืื ื˜ื•ืŸ ื˜ื•ื–ืœื•ืงื•ื‘ ืž-Qsoft:

ืื ื™ ืžืžืœื™ืฅ ืœื”ืงืฉื™ื‘ ืœื•.

ืคื™ืชื•ื— ืคืชืจื•ืŸ ืžืฉืœืš ืžื”ืžืฉืชืžืฉ serkyron ืขืœ ื”ืื‘ืจื”.
ื ืžืฆื ืขื•ื“ ื”ื—ืœื˜ื” ื›ื–ื•.

ืื”... ืœืžืขืฉื”, ื–ื” ื”ื›ืœ.

ืื ื™ ืžื–ื”ื™ืจ ืื•ืชืš, ืœื ื‘ื“ืงื ื• ืืช ืื™ื›ื•ืช ื”ืคืชืจื•ื ื•ืช ื‘ืงื™ืฉื•ืจื™ื ืœืžืขืœื” :)
ืื’ื‘, ื›ืฉื”ื›ื ืชื™ ืืช ื”ืคืชืจื•ืŸ ืฉืœื ื•, ื“ื™ื‘ืจืชื™ ืขื ืืœื›ืกื ื“ืจ ืกืจื‘ื•ืœ, ืื– ื”ื“ื•"ื— ืฉืœื• ืขื“ื™ื™ืŸ ืœื ื”ื•ืคื™ืข, ืื– ื‘ืฉืงื•ืคื™ื•ืช ืฉืœื™ ื™ืฉ ืคืจื™ื˜ "Bitrix ืœื ืžืฉืชืžืฉ ื‘-Kubernetes."

ืื‘ืœ ื™ืฉ ื›ื‘ืจ ื”ืจื‘ื” ืชืžื•ื ื•ืช Docker ืžื•ื›ื ื•ืช ืœื”ืคืขืœืช Bitrix ื‘-Docker: https://hub.docker.com/search?q=bitrix&type=image

ื”ืื ื–ื” ืžืกืคื™ืง ื›ื“ื™ ืœื™ืฆื•ืจ ืคืชืจื•ืŸ ืฉืœื ืขื‘ื•ืจ Bitrix ื‘-Kubernetes?
ืœื. ื™ืฉ ืžืกืคืจ ืจื‘ ืฉืœ ื‘ืขื™ื•ืช ืฉืฆืจื™ืš ืœืคืชื•ืจ.

ืžื”ืŸ ื”ื‘ืขื™ื•ืช ืขื Bitrix ื‘- Kubernetes?

ืจืืฉื™ืช, ืชืžื•ื ื•ืช ืžื•ื›ื ื•ืช ืž- Dockerhub ืื™ื ืŸ ืžืชืื™ืžื•ืช ืœ-Kubernetes

ืื ืื ื—ื ื• ืจื•ืฆื™ื ืœื‘ื ื•ืช ืืจื›ื™ื˜ืงื˜ื•ืจืช microservices (ื•ื‘-Kubernetes ืื ื—ื ื• ืขื•ืฉื™ื ื–ืืช ื‘ื“ืจืš ื›ืœืœ), ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœื”ืคืจื™ื“ ืืช ืืคืœื™ืงืฆื™ื™ืช Kubernetes ืฉืœื ื• ืœืงื•ื ื˜ื™ื™ื ืจื™ื ื•ืœื’ืจื•ื ืœื›ืœ ืงื•ื ื˜ื™ื™ื ืจ ืœื‘ืฆืข ืคื•ื ืงืฆื™ื” ืื—ืช ืงื˜ื ื” (ื•ืœืขืฉื•ืช ืื•ืชื” ื”ื™ื˜ื‘). ืœืžื” ืจืง ืื—ื“? ื‘ืงื™ืฆื•ืจ, ื›ืžื” ืฉื™ื•ืชืจ ืคืฉื•ื˜ ื™ื•ืชืจ ืืžื™ืŸ ื™ื•ืชืจ.
ื›ื“ื™ ืœื”ื™ื•ืช ื™ื•ืชืจ ืกืคืฆื™ืคื™, ืฆืคื” ื‘ืžืืžืจ ื•ื‘ืกืจื˜ื•ืŸ ื–ื”, ื‘ื‘ืงืฉื”: https://habr.com/ru/company/southbridge/blog/426637/

ืชืžื•ื ื•ืช Docker ื‘- Dockerhub ื‘ื ื•ื™ื•ืช ื‘ืขื™ืงืจ ืขืœ ืขื™ืงืจื•ืŸ ื”-all-in-one, ื›ืš ืฉืขื“ื™ื™ืŸ ื”ื™ื™ื ื• ืฆืจื™ื›ื™ื ืœื™ืฆื•ืจ ืื•ืคื ื™ื™ื ืžืฉืœื ื• ื•ืืคื™ืœื• ืœื™ืฆื•ืจ ืชืžื•ื ื•ืช ืžืืคืก.

ืฉื ื™ืช - ืงื•ื“ ื”ืืชืจ ื ืขืจืš ืžืคืื ืœ ื”ื ื™ื”ื•ืœ

ื™ืฆืจื ื• ืžื“ื•ืจ ื—ื“ืฉ ื‘ืืชืจ - ื”ืงื•ื“ ืขื•ื“ื›ืŸ (ื ื•ืกืคื” ืกืคืจื™ื™ื” ืขื ืฉื ื”ืžื“ื•ืจ ื”ื—ื“ืฉ).

ืื ืฉื™ื ื™ืช ืืช ื”ืžืืคื™ื™ื ื™ื ืฉืœ ืจื›ื™ื‘ ืžืœื•ื— ื”ื ื™ื”ื•ืœ, ื”ืงื•ื“ ื”ืฉืชื ื”.

Kubernetes "ื›ื‘ืจื™ืจืช ืžื—ื“ืœ" ืœื ื™ื›ื•ืœ ืœืขื‘ื•ื“ ืขื ื–ื”; ืงื•ื ื˜ื™ื™ื ืจื™ื ื—ื™ื™ื‘ื™ื ืœื”ื™ื•ืช ื—ืกืจื™ ืžื“ื™ื ื”.

ืกื™ื‘ื”: ื›ืœ ืžื™ื›ืœ (ืคื•ื“) ื‘ืืฉื›ื•ืœ ืžืขื‘ื“ ืจืง ื—ืœืง ืžื”ืชื ื•ืขื”. ืื ืชืฉื ื” ืืช ื”ืงื•ื“ ืจืง ื‘ืงื•ื ื˜ื™ื™ื ืจ ืื—ื“ (ืคื•ื“), ืื– ื”ืงื•ื“ ื™ื”ื™ื” ืฉื•ื ื” ื‘ืคื•ื“ื™ื ืฉื•ื ื™ื, ื”ืืชืจ ื™ืขื‘ื•ื“ ืื—ืจืช ื•ื’ืจืกืื•ืช ืฉื•ื ื•ืช ืฉืœ ื”ืืชืจ ื™ื•ืฆื’ื• ืœืžืฉืชืžืฉื™ื ืฉื•ื ื™ื. ืืชื” ืœื ื™ื›ื•ืœ ืœื—ื™ื•ืช ื›ื›ื”.

ืฉืœื™ืฉื™ืช - ืืชื” ืฆืจื™ืš ืœืคืชื•ืจ ืืช ื”ื‘ืขื™ื” ืขื ื”ืคืจื™ืกื”

ืื ื™ืฉ ืœื ื• ืžื•ื ื•ืœื™ื˜ ื•ืฉืจืช "ืงืœืืกื™" ืื—ื“, ื”ื›ืœ ื“ื™ ืคืฉื•ื˜: ืื ื• ืคื•ืจืกื™ื ื‘ืกื™ืก ืงื•ื“ ื—ื“ืฉ, ืžืขื‘ื™ืจื™ื ืืช ืžืกื“ ื”ื ืชื•ื ื™ื, ืžืขื‘ื™ืจื™ื ืชืขื‘ื•ืจื” ืœื’ืจืกื” ื”ื—ื“ืฉื” ืฉืœ ื”ืงื•ื“. ื”ืžืขื‘ืจ ืžืชืจื—ืฉ ื‘ืื•ืคืŸ ืžื™ื™ื“ื™.
ืื ื™ืฉ ืœื ื• ืืชืจ ื‘-Kubernetes, ื—ืชื•ืš ืœืžื™ืงืจื•-ืฉื™ืจื•ืชื™ื, ื™ืฉ ื”ืจื‘ื” ืงื•ื ื˜ื™ื™ื ืจื™ื ืขื ืงื•ื“ - ื”ื•. ืืชื” ืฆืจื™ืš ืœืืกื•ืฃ ืงื•ื ื˜ื™ื™ื ืจื™ื ืขื ื’ืจืกื” ื—ื“ืฉื” ืฉืœ ื”ืงื•ื“, ืœื”ืคื™ืฅ ืื•ืชื ื‘ืžืงื•ื ื”ื™ืฉื ื™ื, ืœื”ืขื‘ื™ืจ ื ื›ื•ืŸ ืืช ืžืกื“ ื”ื ืชื•ื ื™ื, ื•ื‘ืื•ืคืŸ ืื™ื“ื™ืืœื™ ืœืขืฉื•ืช ื–ืืช ืžื‘ืœื™ ืฉื”ืžื‘ืงืจื™ื ื™ื‘ื—ื™ื ื• ื‘ื•. ืœืžืจื‘ื” ื”ืžื–ืœ, Kubernetes ืขื•ื–ืจ ืœื ื• ื‘ื›ืš, ื•ืชื•ืžืš ื‘ื—ื‘ื•ืจื” ืฉืœืžื” ืฉืœ ืกื•ื’ื™ื ืฉื•ื ื™ื ืฉืœ ืคืจื™ืกื•ืช.

ืจื‘ื™ืขื™ืช - ืืชื” ืฆืจื™ืš ืœืคืชื•ืจ ืืช ื”ื ื•ืฉื ืฉืœ ืื—ืกื•ืŸ ืกื˜ื˜ื™

ืื ื”ืืชืจ ืฉืœื›ื ื”ื•ื "ืจืง" 10 ื’ื™ื’ื”-ื‘ื™ื™ื˜ ื•ืืชื ืคื•ืจืกื™ื ืื•ืชื• ื›ื•ืœื• ื‘ืงื•ื ื˜ื™ื™ื ืจื™ื, ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ ืชืงื‘ืœื• ืงื•ื ื˜ื™ื™ื ืจื™ื ืฉืœ 10 ื’ื™ื’ื”-ื‘ื™ื™ื˜ ืฉืœื•ืงื— ื ืฆื— ืœืคืจื™ืกืชื.
ืืชื” ืฆืจื™ืš ืœืื—ืกืŸ ืืช ื”ื—ืœืงื™ื ื”"ื›ื‘ื“ื™ื" ื‘ื™ื•ืชืจ ืฉืœ ื”ืืชืจ ืžื—ื•ืฅ ืœืžื›ื•ืœื•ืช, ื•ืขื•ืœื” ื”ืฉืืœื” ืื™ืš ืœืขืฉื•ืช ื–ืืช ื ื›ื•ืŸ

ืžื” ื—ืกืจ ื‘ืคืชืจื•ืŸ ืฉืœื ื•?

ื›ืœ ืงื•ื“ ื”ื‘ื™ื˜ืจื™ืงืก ืื™ื ื• ืžื—ื•ืœืง ืœืžื™ืงืจื•-ืคื•ื ืงืฆื™ื•ืช/ืžื™ืงืจื•-ืฉื™ืจื•ืชื™ื (ื›ืš ืฉื”ื”ืจืฉืžื” ื ืคืจื“ืช, ืžื•ื“ื•ืœ ื”ื—ื ื•ืช ื”ืžืงื•ื•ื ืช ื ืคืจื“ ื•ื›ื•'). ืื ื• ืžืื—ืกื ื™ื ืืช ื›ืœ ื‘ืกื™ืก ื”ืงื•ื“ ื‘ื›ืœ ืžื™ื›ืœ.

ืื ื—ื ื• ื’ื ืœื ืžืื—ืกื ื™ื ืืช ืžืกื“ ื”ื ืชื•ื ื™ื ื‘-Kubernetes (ืขื“ื™ื™ืŸ ื”ื˜ืžืขืชื™ ืคืชืจื•ื ื•ืช ืขื ืžืกื“ ื ืชื•ื ื™ื ื‘-Kubernetes ืœืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื—, ืื‘ืœ ืœื ืœื™ื™ืฆื•ืจ).

ืขื“ื™ื™ืŸ ื™ื”ื™ื” ืžื•ืจื’ืฉ ืœืžื ื”ืœื™ ื”ืืชืจื™ื ืฉื”ืืชืจ ืคื•ืขืœ ืขืœ Kubernetes. ืคื•ื ืงืฆื™ื™ืช "ื‘ื“ื™ืงืช ื”ืžืขืจื›ืช" ืื™ื ื” ืคื•ืขืœืช ื›ื”ืœื›ื”; ื›ื“ื™ ืœืขืจื•ืš ืืช ืงื•ื“ ื”ืืชืจ ืžืคืื ืœ ื”ื ื™ื”ื•ืœ, ืชื—ื™ืœื” ืขืœื™ืš ืœืœื—ื•ืฅ ืขืœ ื›ืคืชื•ืจ "ืื ื™ ืจื•ืฆื” ืœืขืจื•ืš ืืช ื”ืงื•ื“".

ื”ื‘ืขื™ื•ืช ื–ื•ื”ื•, ื”ืฆื•ืจืš ื‘ื”ื˜ืžืขืช ืžื™ืงืจื•-ืฉื™ืจื•ืชื™ื ื ืงื‘ืข, ื”ืžื˜ืจื” ื‘ืจื•ืจื” - ืœืงื‘ืœ ืžืขืจื›ืช ืขื•ื‘ื“ืช ืœื”ืคืขืœืช ืืคืœื™ืงืฆื™ื•ืช ื‘-Bitrix ื‘-Kubernetes, ืชื•ืš ืฉืžื™ืจื” ื’ื ืขืœ ื”ื™ื›ื•ืœื•ืช ืฉืœ Bitrix ื•ื’ื ืขืœ ื”ื™ืชืจื•ื ื•ืช ืฉืœ Kubernetes. ื‘ื•ืื• ื ืชื—ื™ืœ ื‘ื™ื™ืฉื•ื.

ืื“ืจื™ื›ืœื•ืช

ื™ืฉ ื”ืจื‘ื” ืคื•ื“ื™ื "ืขื•ื‘ื“ื™ื" ืขื ืฉืจืช ืื™ื ื˜ืจื ื˜ (ืขื•ื‘ื“ื™ื).
ืื—ื“ ืžืชื—ืช ืขื ืžืฉื™ืžื•ืช cron (ื ื“ืจืฉืช ืจืง ืื—ืช).
ืฉื“ืจื•ื’ ืื—ื“ ืœืขืจื™ื›ืช ืงื•ื“ ื”ืืชืจ ืžืคืื ืœ ื”ื ื™ื”ื•ืœ (ื ื“ืจืฉ ื’ื ืจืง ืื—ื“).

ืกืื•ืช'ื‘ืจื™ื“ื’' ื‘ืฆ'ืœื™ืื‘ื™ื ืกืง ื•ื‘ื™ื˜ืจื™ืงืก ื‘ืงื•ื‘ืจื ื˜ืก

ืื ื• ืคื•ืชืจื™ื ืฉืืœื•ืช:

  • ื”ื™ื›ืŸ ืœืื—ืกืŸ ื”ืคืขืœื•ืช?
  • ื”ื™ื›ืŸ ืœืื—ืกืŸ ืืช ื”ืžื˜ืžื•ืŸ?
  • ืื™ืคื” ืœืื—ืกืŸ ืกื˜ื˜ื™ืงื”, ืœื ืœืžืงื ื’'ื™ื’ื”-ื‘ื™ื™ื˜ ืฉืœ ืกื˜ื˜ื™ืง ื‘ื—ื‘ื•ืจื” ืฉืœ ืžื›ื•ืœื•ืช?
  • ืื™ืš ื‘ืกื™ืก ื”ื ืชื•ื ื™ื ื™ืขื‘ื•ื“?

ืชืžื•ื ืช ื“ื•ืงืจ

ืื ื• ืžืชื—ื™ืœื™ื ื‘ื‘ื ื™ื™ืช ืชืžื•ื ืช Docker.

ื”ืื•ืคืฆื™ื” ื”ืื™ื“ื™ืืœื™ืช ื”ื™ื ืฉื™ืฉ ืœื ื• ืชืžื•ื ื” ืื•ื ื™ื‘ืจืกืœื™ืช ืื—ืช, ืขืœ ื‘ืกื™ืกื” ืื ื—ื ื• ืžืงื‘ืœื™ื ืคื•ื“ื™ื ืขื•ื‘ื“ื™ื, ืคื•ื“ื™ื ืขื Crontasks ื•ืžืฉื“ืจื’ื™ื ืคื•ื“ื™ื.

ืขืฉื™ื ื• ื‘ื“ื™ื•ืง ืชืžื•ื ื” ื›ื–ื•.

ื–ื” ื›ื•ืœืœ nginx, apache/php-fpm (ื ื™ืชืŸ ืœื‘ื—ื•ืจ ื‘ืžื”ืœืš ื”ื‘ื ื™ื™ื”), msmtp ืœืฉืœื™ื—ืช ื“ื•ืืจ ื•-cron.

ื‘ื”ืจื›ื‘ืช ื”ืชืžื•ื ื”, ื›ืœ ื‘ืกื™ืก ื”ืงื•ื“ ืฉืœ ื”ืืชืจ ืžื•ืขืชืง ืœืกืคืจื™ื™ืช /app (ืœืžืขื˜ ืื•ืชื ื—ืœืงื™ื ืฉื ืขื‘ื™ืจ ืœืื—ืกื•ืŸ ืžืฉื•ืชืฃ ื ืคืจื“).

ืžื™ืงืจื• ืฉื™ืจื•ืชื™ื, ืฉื™ืจื•ืชื™ื

ืชืจืžื™ืœื™ ืขื•ื‘ื“ื™ื:

  • ืžื™ื›ืœ ืขื nginx + ืžื™ื›ืœ apache/php-fpm + msmtp
  • ืœื ื”ืกืชื“ืจ ืœื”ืขื‘ื™ืจ ืืช msmtp ืœืžื™ืงืจื•-ืฉื™ืจื•ืช ื ืคืจื“, ื‘ื™ื˜ืจื™ืงืก ืžืชื—ื™ืœื” ืœื”ืชืžืจืžืจ ืขืœ ื›ืš ืฉื”ื™ื ืœื ื™ื›ื•ืœื” ืœืฉืœื•ื— ื“ื•ืืจ ื™ืฉื™ืจื•ืช
  • ืœื›ืœ ืžื™ื›ืœ ื™ืฉ ื‘ืกื™ืก ืงื•ื“ ืฉืœื.
  • ืื™ืกื•ืจ ืขืœ ืฉื™ื ื•ื™ ืงื•ื“ ื‘ืžื›ื•ืœื•ืช.

cron under:

  • ืžื™ื›ืœ ืขื apache, php, cron
  • ื‘ืกื™ืก ืงื•ื“ ืžืœื ื›ืœื•ืœ
  • ืื™ืกื•ืจ ืขืœ ืฉื™ื ื•ื™ ืงื•ื“ ื‘ืงื•ื ื˜ื™ื™ื ืจื™ื

ืฉื“ืจื•ื’ ืชื—ืช:

  • ืžื™ื›ืœ nginx + apache/php-fpm ืžื™ื›ืœ + msmtp
  • ืื™ืŸ ืžื ื™ืขื” ืœืฉื ื•ืช ืงื•ื“ ื‘ืžื›ื•ืœื•ืช

ืื—ืกื•ืŸ ื”ืคืขืœื•ืช

ืื—ืกื•ืŸ ืžื˜ืžื•ืŸ ื‘ื™ื˜ืจื™ืงืก

ื“ื‘ืจ ื—ืฉื•ื‘ ื ื•ืกืฃ: ืื ื• ืžืื—ืกื ื™ื ืกื™ืกืžืื•ืช ืœื—ื™ื‘ื•ืจ ืœื›ืœ ื“ื‘ืจ, ืžืžืกื“ ื”ื ืชื•ื ื™ื ื•ืขื“ ื”ื“ื•ืืจ, ื‘ืกื•ื“ื•ืช kubernetes. ืื ื—ื ื• ืžืงื‘ืœื™ื ื‘ื•ื ื•ืก: ืกื™ืกืžืื•ืช ื’ืœื•ื™ื•ืช ืจืง ืœืžื™ ืฉืื ื—ื ื• ื ื•ืชื ื™ื ื’ื™ืฉื” ืœืกื•ื“ื•ืช, ื•ืœื ืœื›ืœ ืžื™ ืฉื™ืฉ ืœื• ื’ื™ืฉื” ืœื‘ืกื™ืก ื”ืงื•ื“ ืฉืœ ื”ืคืจื•ื™ืงื˜.

ืื—ืกื•ืŸ ืœืกื˜ื˜ื™ืงื”

ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ื›ืœ ื“ื‘ืจ: ceph, nfs (ืื‘ืœ ืื ื—ื ื• ืœื ืžืžืœื™ืฆื™ื ืขืœ nfs ืœื™ื™ืฆื•ืจ), ืื—ืกื•ืŸ ืจืฉืช ืžืกืคืงื™ ืขื ืŸ ื•ื›ื•'.

ื”ืื—ืกื•ืŸ ื™ืฆื˜ืจืš ืœื”ื™ื•ืช ืžื—ื•ื‘ืจ ื‘ืงื•ื ื˜ื™ื™ื ืจื™ื ืœืกืคืจื™ื™ืช /upload/ ืฉืœ ื”ืืชืจ ื•ืœืกืคืจื™ื•ืช ืื—ืจื•ืช ืขื ืชื•ื›ืŸ ืกื˜ื˜ื™.

ืžืกื“ ื ืชื•ื ื™ื

ืœืžืขืŸ ื”ืคืฉื˜ื•ืช, ืื ื• ืžืžืœื™ืฆื™ื ืœื”ืขื‘ื™ืจ ืืช ืžืกื“ ื”ื ืชื•ื ื™ื ืžื—ื•ืฅ ืœ-Kubernetes. ื”ื‘ืกื™ืก ื‘-Kubernetes ื”ื•ื ืžืฉื™ืžื” ืžื•ืจื›ื‘ืช ื ืคืจื“ืช; ื”ื™ื ืชื”ืคื•ืš ืืช ื”ืชื•ื›ื ื™ืช ืœืกื“ืจ ื’ื•ื“ืœ ืœืžื•ืจื›ื‘ืช ื™ื•ืชืจ.

ืื—ืกื•ืŸ ื”ืคืขืœื•ืช

ืื ื—ื ื• ืžืฉืชืžืฉื™ื ื‘-memcached :)

ื”ื•ื ืžื˜ืคืœ ื”ื™ื˜ื‘ ื‘ืื—ืกื•ืŸ ื”ืคืขืœื•ืช, ื”ื•ื ืžืงื•ื‘ืฅ ื•ื ืชืžืš ื‘ืื•ืคืŸ "ืžืงื•ืจื™" ื‘ืชื•ืจ session.save_path ื‘-php. ืžืขืจื›ืช ื›ื–ื• ื ื•ืกืชื” ืคืขืžื™ื ืจื‘ื•ืช ื‘ืืจื›ื™ื˜ืงื˜ื•ืจื” ื”ืžื•ื ื•ืœื™ื˜ื™ืช ื”ืงืœืืกื™ืช, ื›ืืฉืจ ื‘ื ื™ื ื• ืืฉื›ื•ืœื•ืช ืขื ืžืกืคืจ ืจื‘ ืฉืœ ืฉืจืชื™ ืื™ื ื˜ืจื ื˜. ืœืคืจื™ืกื” ืื ื• ืžืฉืชืžืฉื™ื ื‘ื”ื’ื”.

$ helm install stable/memcached --name session

php.ini - ื›ืืŸ ื”ืชืžื•ื ื” ืžื›ื™ืœื” ื”ื’ื“ืจื•ืช ืœืื—ืกื•ืŸ ื”ืคืขืœื•ืช ื‘-memcached

ื”ืฉืชืžืฉื ื• ื‘ืžืฉืชื ื™ ืกื‘ื™ื‘ื” ื›ื“ื™ ืœื”ืขื‘ื™ืจ ื ืชื•ื ื™ื ืขืœ ืžืืจื—ื™ื ืขื memcached https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/.
ื–ื” ืžืืคืฉืจ ืœืš ืœื”ืฉืชืžืฉ ื‘ืื•ืชื• ืงื•ื“ ื‘ืกื‘ื™ื‘ื•ืช ื”-dev, stage, test, prod (ืฉืžื•ืช ื”ืžืืจื— ื”ืžืื•ื—ืกื ื™ื ื‘-memcached ื‘ื”ื ื™ื”ื™ื• ืฉื•ื ื™ื, ื›ืš ืฉืขืœื™ื ื• ืœื”ืขื‘ื™ืจ ืฉื ืžืืจื— ื™ื™ื—ื•ื“ื™ ืขื‘ื•ืจ ื”ืคืขืœื•ืช ืœื›ืœ ืกื‘ื™ื‘ื”).
ืื—ืกื•ืŸ ืžื˜ืžื•ืŸ ื‘ื™ื˜ืจื™ืงืก

ืื ื—ื ื• ืฆืจื™ื›ื™ื ืื—ืกื•ืŸ ืกื•ื‘ืœื ื™ ืœืชืงืœื•ืช ืฉื›ืœ ื”ืคื•ื“ื™ื ื™ื›ื•ืœื™ื ืœื›ืชื•ื‘ ื•ืœืงืจื•ื ืžืžื ื•.

ืื ื• ืžืฉืชืžืฉื™ื ื’ื ื‘-memcached.
ืคืชืจื•ืŸ ื–ื” ืžื•ืžืœืฅ ืขืœ ื™ื“ื™ Bitrix ืขืฆืžื”.

$ helm install stable/memcached --name cache

bitrix/.settings_extra.php - ื›ืืŸ ื‘-Bitrix ืžืฆื•ื™ืŸ ื”ื™ื›ืŸ ืžืื•ื—ืกืŸ ื”ืžื˜ืžื•ืŸ

ืื ื• ืžืฉืชืžืฉื™ื ื’ื ื‘ืžืฉืชื ื™ ืกื‘ื™ื‘ื”.

ืงืจื•ื ื˜ืกืงื™

ื™ืฉื ืŸ ื’ื™ืฉื•ืช ืฉื•ื ื•ืช ืœื”ืคืขืœืช Crontasks ื‘-Kubernetes.

  • ืคืจื™ืกื” ื ืคืจื“ืช ืขื ืคื•ื“ ืœื”ืคืขืœืช Crontasks
  • cronjob ืœื‘ื™ืฆื•ืข crontasks (ืื ื–ื• ืืคืœื™ืงืฆื™ื™ืช ืื™ื ื˜ืจื ื˜ - ืขื wget https://$host$cronjobname, ืื• kubectl exec ื‘ืชื•ืš ืื—ื“ ืžืชืจืžื™ืœ ื”ืขื•ื‘ื“ื™ื ื•ื›ื•')
  • ื•ื›ื• '

ืืชื” ื™ื›ื•ืœ ืœื”ืชื•ื•ื›ื— ืขืœ ื”ื ื›ื•ืŸ ื‘ื™ื•ืชืจ, ืื‘ืœ ื‘ืžืงืจื” ื–ื” ื‘ื—ืจื ื• ื‘ืืคืฉืจื•ืช "ืคืจื™ืกื” ื ืคืจื“ืช ืขื ืชืจืžื™ืœื™ื ืขื‘ื•ืจ Crontasks"

ืื™ืš ื–ื” ื ืขืฉื”:

  • ื”ื•ืกืฃ ืžืฉื™ืžื•ืช cron ื“ืจืš ConfigMap ืื• ื“ืจืš ืงื•ื‘ืฅ config/addcron
  • ื‘ืžืงืจื” ืื—ื“ ืื ื• ืžืฉื™ืงื™ื ืžื™ื›ืœ ื–ื”ื” ืœ-worker pod + ืžืืคืฉืจื™ื ื‘ื™ืฆื•ืข ืฉืœ ืžืฉื™ืžื•ืช ื›ืชืจ ื‘ื•
  • ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืื•ืชื• ื‘ืกื™ืก ืงื•ื“, ื”ื•ื“ื•ืช ืœืื™ื—ื•ื“, ื”ืจื›ื‘ืช ื”ืžื›ื•ืœื” ื”ื™ื ืคืฉื•ื˜ื”

ืžื” ื˜ื•ื‘ ืื ื—ื ื• ืžืงื‘ืœื™ื:

  • ื™ืฉ ืœื ื• Crontasks ืขื•ื‘ื“ื™ื ื‘ืกื‘ื™ื‘ื” ื–ื”ื” ืœืกื‘ื™ื‘ืช ื”ืžืคืชื—ื™ื (ื“ื•ืงืจ)
  • Crontasks ืœื ืฆืจื™ืš ืœื”ื™ื•ืช "ืœื›ืชื•ื‘ ืžื—ื“ืฉ" ืขื‘ื•ืจ Kubernetes, ื”ื ืขื•ื‘ื“ื™ื ื‘ืื•ืชื” ืฆื•ืจื” ื•ื‘ืื•ืชื• ื‘ืกื™ืก ืงื•ื“ ื›ืžื• ืงื•ื“ื
  • ืžืฉื™ืžื•ืช cron ื™ื›ื•ืœื•ืช ืœื”ืชื•ื•ืกืฃ ืขืœ ื™ื“ื™ ื›ืœ ื—ื‘ืจื™ ื”ืฆื•ื•ืช ืขื ื–ื›ื•ื™ื•ืช ื”ืชื—ื™ื™ื‘ื•ืช ืœืขื ืฃ ื”ื™ื™ืฆื•ืจ, ืœื ืจืง ืžื ื”ืœื™ื

Southbridge K8SDืคืจื•ืก ืžื•ื“ื•ืœ ื•ืขืจื™ื›ืช ืงื•ื“ ืžืคืื ืœ ื”ื ื™ื”ื•ืœ

ื“ื™ื‘ืจื ื• ืขืœ ืฉื“ืจื•ื’ ืžืชื—ืช?
ืื™ืš ืœื”ืคื ื•ืช ืืช ื”ืชื ื•ืขื” ืœืฉื?
ื”ื™ื™, ื›ืชื‘ื ื• ืœื–ื” ืžื•ื“ื•ืœ ื‘-PHP :) ื–ื” ืžื•ื“ื•ืœ ืงืœืืกื™ ืงื˜ืŸ ืœ-Bitrix. ื–ื” ืขื“ื™ื™ืŸ ืœื ื–ืžื™ืŸ ืœืฆื™ื‘ื•ืจ, ืื‘ืœ ืื ื—ื ื• ืžืชื›ื ื ื™ื ืœืคืชื•ื— ืื•ืชื•.
ื”ืžื•ื“ื•ืœ ืžื•ืชืงืŸ ื›ืžื• ืžื•ื“ื•ืœ ืจื’ื™ืœ ื‘-Bitrix:

ืกืื•ืช'ื‘ืจื™ื“ื’' ื‘ืฆ'ืœื™ืื‘ื™ื ืกืง ื•ื‘ื™ื˜ืจื™ืงืก ื‘ืงื•ื‘ืจื ื˜ืก

ื•ื–ื” ื ืจืื” ื›ืš:

ืกืื•ืช'ื‘ืจื™ื“ื’' ื‘ืฆ'ืœื™ืื‘ื™ื ืกืง ื•ื‘ื™ื˜ืจื™ืงืก ื‘ืงื•ื‘ืจื ื˜ืก

ื–ื” ืžืืคืฉืจ ืœืš ืœื”ื’ื“ื™ืจ ืงื•ื‘ืฅ Cookie ืฉืžื–ื”ื” ืืช ืžื ื”ืœ ื”ืืชืจ ื•ืžืืคืฉืจ ืœ-Kubernetes ืœืฉืœื•ื— ืชื ื•ืขื” ืœืคื•ื“ ื”ืฉื“ืจื•ื’.

ืœืื—ืจ ื”ืฉืœืžืช ื”ืฉื™ื ื•ื™ื™ื, ืขืœื™ืš ืœืœื—ื•ืฅ ืขืœ git push, ืฉื™ื ื•ื™ื™ ื”ืงื•ื“ ื™ื™ืฉืœื—ื• ืœ-git, ื•ืื– ื”ืžืขืจื›ืช ืชื‘ื ื” ืชืžื•ื ื” ืขื ื’ืจืกื” ื—ื“ืฉื” ืฉืœ ื”ืงื•ื“ ื•"ืชื’ืœื’ืœ" ืื•ืชื” ืขืœ ืคื ื™ ื”ืืฉื›ื•ืœ, ื•ืชื—ืœื™ืฃ ืืช ื”ืคื•ื“ื™ื ื”ื™ืฉื ื™ื .

ื›ืŸ, ื–ื” ืงืฆืช ืงื‘ื™ื™ื, ืื‘ืœ ื™ื—ื“ ืขื ื–ืืช ืื ื—ื ื• ืฉื•ืžืจื™ื ืขืœ ืืจื›ื™ื˜ืงื˜ื•ืจืช ื”ืžื™ืงืจื•-ืฉื™ืจื•ืชื™ื ื•ืœื ืœื•ืงื—ื™ื ืžืžืฉืชืžืฉื™ Bitrix ืืช ื”ื”ื–ื“ืžื ื•ืช ื”ืžื•ืขื“ืคืช ืขืœื™ื”ื ืœืชืงืŸ ืืช ื”ืงื•ื“ ืžืคืื ืœ ื”ื ื™ื”ื•ืœ. ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ, ื–ื• ืืคืฉืจื•ืช; ืืชื” ื™ื›ื•ืœ ืœืคืชื•ืจ ืืช ื‘ืขื™ื™ืช ืขืจื™ื›ืช ื”ืงื•ื“ ื‘ื“ืจืš ืื—ืจืช.

ืชืจืฉื™ื ื”ื’ื”

ื›ื“ื™ ืœื‘ื ื•ืช ื™ื™ืฉื•ืžื™ื ืขืœ Kubernetes, ืื ื• ืžืฉืชืžืฉื™ื ื‘ื“ืจืš ื›ืœืœ ื‘ืžื ื”ืœ ื”ื—ื‘ื™ืœื•ืช ืฉืœ Helm.
ืขื‘ื•ืจ ืคืชืจื•ืŸ ื”ื‘ื™ื˜ืจื™ืงืก ืฉืœื ื• ื‘-Kubernetes, ืกืจื’ื™ื™ ื‘ื•ื ื“ืจื‘, ืžื ื”ืœ ื”ืžืขืจื›ืช ื”ืžื•ื‘ื™ืœ ืฉืœื ื•, ื›ืชื‘ ื˜ื‘ืœืช Helm ืžื™ื•ื—ื“ืช.

ื–ื” ื‘ื•ื ื” ืขื•ื‘ื“, ugrade, cron pods, ืžื’ื“ื™ืจ ื›ื ื™ืกื•ืช, ืฉื™ืจื•ืชื™ื ื•ืžืขื‘ื™ืจ ืžืฉืชื ื™ื ืžืกื•ื“ื•ืช Kubernetes ืœ-pods.

ืื ื• ืžืื—ืกื ื™ื ืืช ื”ืงื•ื“ ื‘- Gitlab, ื•ืื ื—ื ื• ื’ื ืžืคืขื™ืœื™ื ืืช Helm build ืž- Gitlab.

ื‘ืงื™ืฆื•ืจ, ื–ื” ื ืจืื” ื›ื›ื”

$ helm upgrade --install project .helm --set image=registrygitlab.local/k8s/bitrix -f .helm/values.yaml --wait --timeout 300 --debug --tiller-namespace=production

Helm ื’ื ืžืืคืฉืจ ืœืš ืœื‘ืฆืข ื”ื—ื–ืจื” "ื—ืœืงื”" ืื ืคืชืื•ื ืžืฉื”ื• ืžืฉืชื‘ืฉ ื‘ืžื”ืœืš ื”ืคืจื™ืกื”. ื–ื” ื ื—ืžื“ ื›ืฉืืชื” ืœื ื‘ืคืื ื™ืงื” "ืชืงืŸ ืืช ื”ืงื•ื“ ื‘ืืžืฆืขื•ืช ftp ื‘ื’ืœืœ ืฉื”ืคืจื•ื“ ื ืคืœ", ืื‘ืœ Kubernetes ืขื•ืฉื” ื–ืืช ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™, ื•ืœืœื ื–ืžืŸ ื”ืฉื‘ืชื”.

ืœืคืจื•ืก

ื›ืŸ, ืื ื—ื ื• ืžืขืจื™ืฆื™ื ืฉืœ Gitlab & Gitlab CI, ืื ื—ื ื• ืžืฉืชืžืฉื™ื ื‘ื–ื” :)
ื‘ืขืช ื”ืชื—ื™ื™ื‘ื•ืช ื‘-Gitlab ืœืžืื’ืจ ื”ืคืจื•ื™ืงื˜ื™ื, Gitlab ืžืฉื™ืงื” ืฆื™ื ื•ืจ ื”ืคื•ืจืก ื’ืจืกื” ื—ื“ืฉื” ืฉืœ ื”ืกื‘ื™ื‘ื”.

ืฉืœื‘ื™ื:

  • build (ื‘ื ื™ื™ืช ืชืžื•ื ืช Docker ื—ื“ืฉื”)
  • ื‘ื“ื™ืงื” (ื‘ื“ื™ืงื”)
  • ื ื™ืงื•ื™ (ื”ืกืจืช ืกื‘ื™ื‘ืช ื”ื‘ื“ื™ืงื”)
  • push (ืื ื—ื ื• ืฉื•ืœื—ื™ื ืืช ื–ื” ืœ-Docker Registry)
  • deploy (ืื ื• ืคื•ืจืกื™ื ืืช ื”ืืคืœื™ืงืฆื™ื” ืœ-Kubernetes ื“ืจืš Helm).

ืกืื•ืช'ื‘ืจื™ื“ื’' ื‘ืฆ'ืœื™ืื‘ื™ื ืกืง ื•ื‘ื™ื˜ืจื™ืงืก ื‘ืงื•ื‘ืจื ื˜ืก

ื”ื™ื™, ื–ื” ืžื•ื›ืŸ, ื‘ื•ืื• ืœื™ื™ืฉื ืืช ื–ื”!
ื•ื‘ื›ืŸ, ืื• ืœืฉืื•ืœ ืฉืืœื•ืช ืื ื™ืฉ ื›ืืœื”.

ืื– ืžื” ืขืฉื™ื ื•

ืžื ืงื•ื“ืช ืžื‘ื˜ ื˜ื›ื ื™ืช:

  • ื‘ื™ื˜ืจื™ืงืก ืžืขื•ื’ื ืช;
  • "ืœื—ืชื•ืš" ืืช Bitrix ืœืžื™ื›ืœื™ื, ืฉื›ืœ ืื—ื“ ืžื”ื ืžื‘ืฆืข ืžื™ื ื™ืžื•ื ืฉืœ ืคื•ื ืงืฆื™ื•ืช;
  • ื”ืฉื™ื’ ืžืฆื‘ ื—ืกืจ ืื–ืจื—ื•ืช ืฉืœ ืžื›ื•ืœื•ืช;
  • ืคืชืจ ืืช ื”ื‘ืขื™ื” ืขื ืขื“ื›ื•ืŸ Bitrix ื‘- Kubernetes;
  • ื›ืœ ื”ืคื•ื ืงืฆื™ื•ืช ืฉืœ Bitrix ื”ืžืฉื™ื›ื• ืœืขื‘ื•ื“ (ื›ืžืขื˜ ื›ื•ืœืŸ);
  • ืขื‘ื“ื ื• ืขืœ ืคืจื™ืกื” ืœ-Kubernetes ื•ื”ื—ื–ืจื” ื‘ื™ืŸ ื’ืจืกืื•ืช.

ืžื ืงื•ื“ืช ืžื‘ื˜ ืขืกืงื™ืช:

  • ืกื•ื‘ืœื ื•ืช ืœืชืงืœื•ืช;
  • ื›ืœื™ Kubernetes (ืฉื™ืœื•ื‘ ืงืœ ืขื Gitlab CI, ืคืจื™ืกื” ื—ืœืงื” ื•ื›ื•');
  • ืกื™ืกืžืื•ืช ืกื•ื“ื™ื•ืช (ื’ืœื•ื™ื•ืช ืจืง ืœืžื™ ืฉืงื™ื‘ืœ ื’ื™ืฉื” ื™ืฉื™ืจื” ืœืกื™ืกืžืื•ืช);
  • ื–ื” ื ื•ื— ืœื™ืฆื•ืจ ืกื‘ื™ื‘ื•ืช ื ื•ืกืคื•ืช (ืœืคื™ืชื•ื—, ื‘ื“ื™ืงื•ืช ื•ื›ื•') ื‘ืชื•ืš ืชืฉืชื™ืช ืื—ืช.

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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”