ááľáłááť. áľááá: á áŠá áááľáľ áá
á á¨á°áĽ ááľáĽ, á ááá˝á áĽááłá¨áá, GitOps á¨ááŁá á ááá፠ááá˝ á°ááłá
ááľ áĽáŤáá áá.
áŁááá á ááľ (á áĽááἠáá
á áŚááľáľ 2017 á°á¨á°á° - á áááľá˘ áá°áááá˘) á Kubernetes ááľáĽ áá°áá áŞáŤáá˝á ááá°ááŤáľ á á˛áľ á ááŤá¨áĽ á áᢠáĽáą GitOps ááŁááᣠáĽá á áá á¨áłá ááłáĽ áá á¨á°áá°á¨á° áá á¨áá°ááŤáľ áľáŞáśá˝ á Git áá¨ááť á°á
áááą á¨á°á á á á áŤáŁá˘ ááľáľá á¨áá°á¨ááŁá¸áá˘
á¨áá áá´ áá áĽá áá˝ á¨áá¨á°ááľ áá¸á.:
- á¨áľááŞáľ áĽáŞáľ áĽá ááἠáłáŞá. á¨á á ááá áľáĽáľáĽ áááł á ááľ áá¨ááť ááľáĽ á°á¨áá˝áˇáᣠáĽá áá°ááŤáśá˝ á¨áááááľ á áá áŞáłá áĽáť ááᢠá á°á¨ááŞá ᣠááá áááŚá˝ á¨ááἠáłáŞáá á áá áá áá¨áłá°á áá˝ááá˘
- á¨áłáá ᨠGit áľáááá˝á á áá áá á°ááážá˝. ááá
git reset
á áá°ááŤáľ áá áááŚá˝á áĽáá°áá áĽáá˛áŤáľááአááá áľáááłá; áŤáá áááśá˝ áá áá ááááᢠ- ááá á¨ááłá¨áť áááŁá áŞáŤ. á á°áááś á¨ááľ á˛áľá°á áĽá ááľáĽáŤá áá¨ááá˝á ááááŁáľááá á áĽááááš áŠáŁááŤáá˝ áĽáąá ááá á á áአáľáŠá¨áľ áá°áŁáᢠá áá áá á¨áľ áá áĽá á á¨á°á°áአáá ááá°á¨á áĽáŤáá˝á áá áŤáá˘
- á¨áá°ááŤáľ ááá˛áá˝. á áĽááá á¨ááľ á˛áľá°áá˝ á¨á áááŤá á á áááŤá ááá˛áá˝á áá°áááâáááłáᣠá¨ááłáĽ áĽáŤááá˝ ááľá°áá áááá á¨áá˝ááľáŁ áĽá áááŚá˝ á áá á¨áĄáľá á áŁá ááááá áĽá ááá á á ááŁá¸áᢠáá áĽáá° á¨ááłá¨áť ááĽáĽáᣠááááá˝á ááá°ááŤáľ á°ááłáłá áááŞáŤáá˝ á°ááťá ááááá˘
áĽáá°áááá¨áąáľ ᣠá GitOps áá´ áĽá áĽá áá˝ á ááľá˘ áŁááá áááľ áááľ á ááŤá¨áŚá˝ áአá°ááłá ááľ á ááá°áá. á áá°áá á áááááľ áá á¨á°áá°á¨á° áá, áááá á°áá á ááá°áľ áá á¨á°áá°á¨á° áá. áĽááąá á¨áá¨áłá˝á á ááľ á ááááŞáŤ á¨áŠá áááľáľ áá°ááŤáśá˝ áá áĽáá°áááľá áĽááá˘
á¨áá°ááŤáľ áá´áá˝
á á áἠáááłáľ á áŠá áááľáľ ááľáĽ á¨á°ááŤáŠ á¨áá°ááŤáľ áá´áá˝ áĽá ááłáŞáŤáá˝ á°ááľáá°áá-
- á¤á°á Kubernetes/á áĽááśá˝á áĽá á áľáá. áá°áá áŞáŤáá˝á á Kubernetes áá ááá°ááŤáľ ááá ááááľ áá
ááᢠááá˘á áá°á¨áłá ᨠYAML áááá˝á áááĽáŤá áĽá áá°áá áŤáᢠá°ááłáłáŠá á áĽááśá˝ áŤáááá¨áĽ áááá áááľáááľ Kustomize á°áá ᨠ(ᨠKubernetes á áĽááśá˝á áá° áááá˝ ááááŁá)ᢠááľáłááť. áľááá: Kustomize á kubectl ááľáĽ á°áá
áˇá
á¨áŠá áááľáľ 1.14 áááá . - Helm áá áłáá˝. ᨠHelm áťááśá˝ á á áĽááľ áá á¨á°áá á¨á° á ááŤá¨áĽ ááá
á¨á áá á°áááá á¨áá ááľ á ááŤáŽá˝ áŤáá¸áá áá°áá áŞáŤáá˝ ááá°ááŤáľ á¨ááŤáááá á¨á áĽááľ áľáĽáľáŚá˝á ᣠá¨á˘áá´á áŽáá´áááŽá˝á ᣠá¨áá ááŞááá˝á ᣠááá° áááá á áŤáľá˝áááłáᢠáá
áá´ á á áĽááľ á á°ááá YAML áááá˝ áá á¨á°áá°á¨á° ááᢠááá á á°ááŤáŠ áááááá˝ áááá¸áá á¨ááŤá áá° áááľá°á á¨ááŤá°ááŤá¸á áĽá ááááá˝á áĽá áááś ááááľá áá° ááá
á°á áá° Tiller áááŤá¸ááᢠááá ááá ááá á¨áááááľá áĽá´áśá˝ áá° á áĽááśá˝ ááľáĽ áŤáľááŁá áĽá á áŁá
ááá ááááľ áĽáá°áá°á¨áá á á°ááłáłá ááááľ áá°áá አááᢠ(ááá áĽáá´áľ áĽáá°áá°áŤ áĽá á áĽá ááľáĽ áĽáá´áľ áĽáá°áá ááá áľ á¨á áá áŤááĽáĄ
á˝áá á Helm - á áááľ. áá°ááá). á°á áŤá á°ááŁáŤáľá á¨áá¸áá á¨á°ááŤáŠ ááá á¨áá ᨠHelm áá áłáá˝ á áᢠ- á ááŤá ááłáŞáŤáá˝. áĽá á ááŤá ááłáŞáŤáá˝ á á. ááá á¨ááŤááłáľáá¸á ááá á ááłááľ á¨á áĽááľ áááá˝á áá° Kubernetes-ááá ἠá¨áá˝á YAML áááá˝ ááá¨á á¨á፠áá ááá¸á ááá˘
á áľáŤá˝á ááľáĽ, ᨠHelm áťááśá˝á áá áľááá ááłáŞáŤáá˝ (áĽá ááá ááá áľááá, á áááľá á áŁá ááá áŤá°áááá) áĽá á¨áŤáłá˝áá á áááŹá˝áá˝ ááá°ááŤáľ "áášá " Kubernetes YAML áááá˝á á ááááľ áĽáá áááá.
ááľáľ áĽá áá
á á ááľ á¨á
áἠáá á¨áĽáá á˝áááź ááľáĽ ááŁáŞáŤáá á áľá°ááááŤáá
á¤á.á˘. á¨ááľáŚááľ á á ááá ááá áĽá áá˝ ááááąá á ááŤá¨áŚá˝ á°ááłáłá áĽáá°áá áááŤáá˘
á ááá°áľ áá á¨á°áá°á¨á° á ááŤá¨áĽ
á¨ááá°áľ á ááŤá¨áĽ ááá áááŚá˝ á¨áĽá
á ááľáĽ á áá°áá አáá á¨á°áá°á¨á° áá. á áááľá°á ááľáĽ á¨á°ááŤááľá Git áĽá Docker Registry áá¨ááťáá˝á á á¨ááá á¨áááľá˝ áŚááŹá°á á áᢠá áĽááą áá ááá¸áá áááŚá˝ á¨á°á¨á°áą á¨áááľá°á áááł á ááľáĽ á°ááááᢠááááá á¨áá á°áá á á¨áááľá°á á áľá°áłáłáŞ ááĽáśá˝á áľáááá áá
áá°áľ á á á ááá á áŁá á°á
áááą á¨á°á á á áá á°áĽá ááłá°áŁáá˘
áááśá˝
- ááá á¨áá á°áá á á áááľá°á áá áááŚá˝á á¨ááľá¨á ááĽáľ á¨áááᤠááá ááááá˝ á¨ááľáĽ áá á¨áááááľá˘
- á ááłááľ ááłáŞáŤáὠᨠHelm áá áł ááááá˝á áĽáá˛áŤááłáľá áĽá á¨áĽá á áá áĽáá˛áŤááá áŤáľá˝áááłáá˘
- Docker Registry áá á˛áľ áľáŞáśá˝ ááá áá˝ááᢠá á˛áľ ááľá áŤá á¨ááľ áá¨ááť áĽá áá°ááŤáą áá° á á˛áą áľáŞáľ ááááá˘
- á¨ááá°áľ ááłáŞáŤáá˝ á á°ááŤáŠ á¨ááľ áá¨ááťáá˝ áĽá áááśá˝ á á°ááŤáŠ á¨áľá áŚáłáá˝ áá°áŤáŠ áá˝ááᢠááá á ááľáá áááŁáá áŁááĽá-á°á¨áŤá áá´á áá áá ááťáá. áááłáᣠáĄáľá A á¨áľá áŚáłá AᣠáĄáľá B á¨áľá áŚáłá áá áá áá˝ááᣠáĽá á¨áá á¨á° áááľ áĄáľá ááá á áá áŚáłá áá áá áá˝ááá˘
- áĽáá° á ááľ á°áἠááłáŞáŤááš á áŁá ááá áá¸á.
- áĽáá° áŚááŹá°á áŤá ááłáŞáŤáá˝ áá á°áŁááŻá
Bitnami á¨áłá¸á ááľáĽáŽá˝ ááľáĽáŽá˝ á ááľ áá¨ááť ááľáĽ á°ááľáĽá¨á áááᥠáĽá á áááľá°á ááľáĽ á°á°ááľá¨á ááááľ áá˝ááᢠ- á áááľá°á ááľáĽ áááááľ áľááá¨á°áľ á¨á˛á˛ á§áá§áá˝ áá ááá áááááľ á¨áá.
ĐинŃŃŃ:
- ᨠHelm áťááśá˝ á¨áá°ááŤáľ ááľáĽáŽá˝á ááľá°áłá°á á¨áá°á áááš á¨á áá á¨áŁáľ áá ᣠááááŤáąá á ááááŞáŤ ᣠá¨áłá¸á ááľá˘áŽá˝ ᣠá¨á፠á ááľáŁá áŚááŹá°á á˛ááŞááľ á¨á°á°á¨á ᣠáĽá á¨á፠á áá áĽáť áááá°áť ááŁáŞáŤá ááááᢠá¨á፠áááąá á Helm ááľáĽ á áľááľáá á á°áá¨á ááľá˘áŽá˝ ááľáĽ áŤááľ áĽá´áśá˝ áá áááľ áá˝ááᢠá áŁá ááá ááááľ ááá°ááŤáľ áĽá á áá á ááááľ ááá á¨ááá áĽá´áśá˝ ááľá˘á ááá á ᣠá˛ááŞááľ ááľá¨á áĽá áááľ ááľá áľ ááá˘
- á¨ááá°áľ á ááŤá¨áĽá áľáľááľáą, áááá°áľ ááłáŞáŤáá˝ áłáľá¨áá. áá á áááľá°á ááľáĽ á¨áá°ááŤáľ áá°áąá á¨áá ááľ á˝ááłá áááľáŁáᢠáááłáᣠKustomize á¨áá¨á¨áťááš á áĽááśá˝ áááľ á¨áá°á áłá¸á á ááľ ááŽáĽ áľááá áľ ááľáĽáľáĽ ááᢠáááá°á ááłáŞáŤáá˝á áá áá á áá˝áá áĽáŤáአá áá°ááᣠááá áá áá° áĽááľá á¨áá°ááŤáľ áá°áľ ááľáĽ áááááľ á áŁá á¨áŁáľ áá¸áá˘
á áááľ áá á¨á°áá á¨á° á ááŤá¨áĽ
á áááľ á ááŤá¨áĽáŁ ááŤá áľáááľ (á á°áá á¨á˛á˛ á§áá§áá˝) á¨ááľ áá¨ááť áŚáł áá áá á¨áᥠá áá ááá áŤááá CI á§á᧠áľáŹáłá á¨áá áá° áááľá°á áá°ááŤáľ ááááŤáᢠá áá
á ááŤá¨áĽ, áľáááą áá° áááľá°á ááľá¨áľ áá˝áá.
á°áá :
- á°á áááľ á¨ááá°áá á ááľ áá¨ááť áĽá á¨á§á᧠ááľáá áááŁáł ááá˘
- ᨠHelm áá áłáá˝á áááááľ ááá áĽá ᨠHelm á°á°áŞáá˝á áá°áááá˘
- ááľáĽáŽá˝á áááľá°áłá°á ááá áá¸á ááááŤáąá ááľáĽáŽá˝ á á§áá§áá˝ ááľáĽ áĽá á áá ááá áľááá˝á áĽá á ááľ ááľáĽ á˘áááŞááľ á°á°áá áááᥠáá˝áá (á á°á ááá áá፠áá á áááľá¨áľ)á˘
- áááááá ááááľ áá áá áľáááťá á¨á ááľ á¨á°áá°á ááŁáŞáŤ áá ááá áááááľ á¨áá.
- á¨áŽáá´ááá áĽáŞáľ ááťáťáŤ áááŁáłá á á§á᧠ááľáá áááá áá˝ááá˘
ĐинŃŃŃ:
- á¨áááľá°á ááłá¨áť ááᥠá áááŁáł áľáááą ááľáĽ ááá˘
- á¨áá°ááŤáľ áŽáá´áááŽá˝á áááá á ááá á ááá°áľ áá°áľ ááá ááá˘
- á á˛á˛ áľáááľ áá á¨áŁáľ áĽááááľáŁ á¨áááááá¸á á¨á§á᧠ááľááŽá˝ ááááŞáŤ áá áááľáἠáŻáŽá˝ á¨á°áá ááá áá˝ááᣠáĽá áĄáľá áá° Azure DevOps ááá Jenkins ááááá áá°á ... áĽá áĽá ááĽá áŤáá¸á á¨áááŁáł á§áá§áá˝á áááá áááá áłáá˘
áá¤áśá˝áĄ ááááľ áááľ ááá°áľ?
áĽáá°á°ááá°á áĽáŤááłááą á ááŤá¨áĽ áĽá áá ááłáľ á áá. á ááłááľ áľáŤáá˝á á á ááą ááá¨ááá ááá áĽá á áá á°áá á¨á áá á¨áŁáľ áá¸á. ááááŞáŤ áá áá°ááŤáľá á áĽá áĽá¨á°áŤá áá áᣠááá áá áľá Weave Flux áĽááľ ááŁáĽáá˝á áŤááá á ááᣠáááá ááŽáááśá˝ á¨ááľáŚááľ áá°áśá˝á á°ááŁáŤá áááľá¨á áá°ááŠá˘ ááá á¨áłá á áĽááśá˝ áá ááá áá áᣠáá á¨á፠á Helm áá áłáá˝ áá á˝ááŽá˝ ááľáĽ ááŽáĽ ááááŠá˘ á ááŤá áá Weave Flux ᨠHelm Chart áŚááŹá°áá á¨ááááŞáŤ áľáŞáľ áĽáť á á áá§á ᣠáá á áá áĽááłá á ááłááľ áľáŤáá˝ ááľá˘áŽá˝á á áĽá ááá á áĽá áĽááąá áá°áá á á áŁá á¨áŁáľ áá¸á ᢠá¨áááľá°á ááľááááśá˝ á¨áĽá á áá á°á°áŤá˝ áľáááá á¨ááá°áą á áŤááľ á¨á áá á°á áááą á¨á°á á á áá áĽáá áá¨áŤá¨á áá˝ááᣠáá á á¨á áá á°á áááą á¨á°á á á á ááá á°á¨á᪠áĽá¨áľ á¨ááŤáľáá ááá˘
áľáá˝ áŤá°áĽáŠ á áá áá á áá°áá áá°áá áŤáá°á á á áá°áá°á፠á°á¨áľáŠá˘ á¨áá°á áĽá á áľáááŤáľáááá¸á á áŤááľ á¨á°ááááá áá áááá ááľáĽáŤá áá¨ááťáŁ CI/CD á˛áľá°áá˝ áĽá á¨ááľ áá¨ááťáá˝á áŤáŤáľáłáᢠá ááľáŁá¸á áŤáá áá¨á á áŁá á¨á°ááá áĽá á¨áá°á áĽá á áŤáľááááá. á á°á¨ááŞáᣠá ááľ á°á áá° á¨áĽááľá Git áá¨ááť ááľáĽ á¨áᣠáĽá áĽá፠áŽáľ ááááľ á¨áťáᣠá¨ááááá áá°ááŤáľ (ááá°áľá áá ááááľ) áĽá á¨áááľá°á áľáá áśá˝á á°áá áááŁáľ áá˝ááᢠáľááá á áĽá á áá°á¨ááá¸á á¨ááᥠá áŁá á áľááá á áŤááľ á¨ááľ áá¨ááť áĽá á¨á˛á á/á˛á˛ á˛áľá°áá˝ áĽáá á¨áááľá°á ááľááááśá˝ á áá°ááᢠáááá á áááľ áľáááśá˝ á á°áἠá¨á°ááአááá˛áá˝ áĽá á¨á°á áááľ ááĽáĽáŽá˝ áŤáááľ áĽá á¨áááľá°á ááľááááśá˝ áá° á§á᧠ááľááŽá˝ áĽáá° ááľáĽáŤáááľ áĽáť á¨á°áá°áąáŁ á°á¨á᪠á¨ááá°áľ á ááŤá¨áĽ á°á áááľ ááááŞáŤ áĽáá°áłá°á á áááá áá˝ááá˘
áľááá á¨ááá°áľ á áŤááľ á¨á áá ááá áľ á¨áá áá á¨áá áĽá á¨á°á áááľ áĽá á á¨ááŤáľáá á¨áá á¨áááľ á áŤááľá áĽáť ââáá áá ááááŤáłá á áá°ááá? ááá áá á ááľ á°á á áááľ á ááŤá¨áĽ ááľáĽ á¨á˛á˛ áľáááą áá á áŁá á¨á°áłá°áŠ áĽáá°áá áĽá ááááŁáľá ááá°ááą áľá°áľá ááá áááľá¨á áá áá áŁáłá°áá ááťáá áĽá áá¨áŤá¨á ááááá˘
á áĽá á áľá°áŤá¨áľ (áĽáá° ááááá) áá ááľ á¨á°áá°á ááłá á áŁá á°áľáá á¨áááá áá áá ááá ááááľ á ááĽááľ. á ááᣠáááąáá á ááŤá¨áŚá˝ áĽá ááááᥠWeave Flux á á áĽááá á¨áŤáłá˝áá á áááááśá˝ áááŤáŤáľáą áá-á°áŽá áá°ááŤáśá˝áŁ áĽá ᨠHelm áĽá plugins áá á¨áá á ááŤá¨áĽáŁ áá á ᨠHelm áťááśá˝á á áááľá°á áá áá°áá áá ááá áŤá°áááá áĽá ááľáĽáŽá˝á áŤáá˝áá áĽáá˛ááĽáŠ áŤáľá˝áááłáᢠáĽá áĽáá°ááľá á áááá ááłáŽá˝ á°áľáá á¨áá á ááľ áá á áááľá ááźá á áááá, ááááŤáąá áááá áĽá áĽáá á áááŽá˝ á á áĽá áĽááą á áአáá°áá áŞáŤ áá á¨á°áá°á¨áą áá¸á. áá á á°áŁáá ááᣠGitOpsá á áŁá áĽáááŤáá - á áááľá á áŁá ááá áŤá°áááá áĽá á°á áááľá áŤáťá˝ááá˘
á áá áááľ áá áŤáá áááľ á¨áľáá áá´ ááĽááľá áá°ááŤáľ á°áľáá áĽáá°áá áááá°á áĽáá°áá¨áłááľ á°áľá á á°áááá, áĽá á áľá°áŤá¨áľáá á ááľáá´ á°áľ áááá.
PS ááľáłááť á¨á°áááá
á¨ááá°áľ áá´á ááłáą á¨á°áá¨áš áááááśá˝á áá° ááľ ááľááŁáľ á¨áŁáľ ááᣠááá áá á áá áá´á ááľáĽ áŤáá á¨á˛á˛ á§á᧠ááľáá á¨áłáá á°ááĽá á¨ááá áĽá á áá°á¨áą á¨ááľáĄ á¨á§á᧠ááľáá á¨áááá áľ ááłáą á¨ááᢠááŁáááľ áŤáá áááá¨áť. áľááá ᣠá°á¨áá¸áá á¨ááá áá°ááŤáśá˝ ááá°áĽá°áĽ áĽá áĽáá°ááá á¨áááἠááľáłááťáá˝á/áááłá áááááľ á á°ááá á¨á˛á˛áá áľáááľ á ááŁááľ á¨á áá áĽá¨áľ ááľá¨á áŤáľááááá˘
á¨áá á ááá ᣠá¨áá áá´á á˘áŤááľ á¨á°áá°á á¨áááá፠ááľáľááá˝á áĽááľáá°áĽ áŤáľá˝ááá ᣠááááŤáąá á¨á§áá§á á¨á áááľ ááá á¨áłáá á¨á áááľ áá áá áĽáŠá ááá áá˝ááá˘
áááąáá áá´áá˝ ááá¨á áĽáá° ááŁáĽá á°áŤá˛ á°ááłáłá áá°áá°á፠áá á°áá°áá-
- á áŁá áĽá ááááá˝ áá á¨áľáááľ áááá˝á ááááá˝á ááá°áŤááľ á¨ááłáĽ áá´á á°áľáá áá (á°ááá¨áľ.
áľá addon-operator á˝áá ). - á GitLab CI áá á¨á°áá°á¨á°á á¨áá áá´á ᨠHelm áťááśá˝á á áá áá á áááŹá˝áá˝á ááááá
á°áľáá ááᢠá á°ááłáłá áá á á§áá§áá˝ ááľáĽ á¨á°áá¨áá ááááł ááłáŞáŤáá á áá áá ááĽáĽá áá°á¨áá áłá
werf . á áááŤá˝á ááᣠá áá ááŽáááłá˝á á ááľ ááľáĽáŁ á¨á´ááŚááľ áááá˛áśá˝á á áááĽáᢠá˝ááŽá˝ á KubeCon Europe'19 ááá áľáááŤá âGitOpsâ á°ááá˘
PPS á¨á°ááá
á áĽááá˝á áá áŤááĽáĄáĄ-
- ÂŤ
á¨áŠá áááľáľ á áá áááŽá˝ áĽá áá´áá˝áĄ á áááľá°á ááľáĽ á¨áá°áŠ ááĽáśá˝á áá° Helm 2 á áľá°áłá°á ááľá°ááá "; - ÂŤ
Kubedog á ááľá°ááá ááᣠá¨áŠá áááľáľ ááĽáśá˝á ááá¨áłá°á á¤á°-áá˝áááľá˘ "; - ÂŤ
Kubernetes ááľáááľ áĽá áá፠(á¨áááá áĽá á¨áŞá˛áŽ áááŁ) "; - ÂŤ
á GitLab CI ááľáĽ áĽá á¨áľáŤ áá°áśá˝á áááá á á áá áááŽá˝ Âť.
á áłá°áł áĽááą ááľáĽ á¨á°áááᥠá°á áááá˝ áĽáť ááłá°á áá˝ááá˘
GitOps áĽá¨á°á áá áá?
-
á á á ááŤá¨áĽá áááľáą
-
á á áá
-
á á ááľáľ + áá
-
á á, áá ááá
-
á¨áá
30 á°á áááá˝ áľáá˝ á°áĽá°ááᢠ10 á°á áááá˝ áľáá á°á á
ጠá áľááááá˘
ááá: hab.com