ื”ืฉืงื” ืืคืœื” ื‘ืื™ืกื˜ื™ื•: ื”ืฉื™ืจื•ืชื™ื ื”ื—ืฉืื™ื™ื

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

ื”ืฉืงื” ืืคืœื” ื‘ืื™ืกื˜ื™ื•: ื”ืฉื™ืจื•ืชื™ื ื”ื—ืฉืื™ื™ื

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

ื›ืฉื”ืฉืขืžื•ื ื ื›ื•ืŸ

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

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

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

ืืจื’ื•ืŸ ืฉืขืžื•ื ื–ื” ืžืขื ื™ื™ืŸ

ืชืกืชื›ืœ ืขืœ ื›ืœืœ ื”ื ื™ืชื•ื‘ ื”ื‘ื ืฉืœ Istio, ืฉืžื ืชื‘ ืืช ื›ืœ ื‘ืงืฉื•ืช ื”-HTTP ืœื”ืžืœืฆืช ื”ืžื™ืงืจื•-ืฉื™ืจื•ืช v1 (ื›ืœ ื”ื“ื•ื’ืžืื•ืช ื ืœืงื—ื• ืž ืžื“ืจื™ืš Istio ืจื™ืคื• ืฉืœ GitHub), ืชื•ืš ืฉื™ืงื•ืฃ ืื•ืชื ื‘ื•-ื–ืžื ื™ืช ืœืžื™ืงืจื•-ืฉื™ืจื•ืช ื”ืžืœืฆื” v2:

ื”ืฉืงื” ืืคืœื” ื‘ืื™ืกื˜ื™ื•: ื”ืฉื™ืจื•ืชื™ื ื”ื—ืฉืื™ื™ื
ืฉื™ืžื• ืœื‘ ืœืชื•ื•ื™ืช mirror: ื‘ืชื—ืชื™ืช ื”ืžืกืš - ื”ื•ื ื–ื” ืฉืงื•ื‘ืข ืืช ืฉื™ืงื•ืฃ ื”ืชื ื•ืขื”. ื›ืŸ, ื–ื” ื›ืœ ื›ืš ืคืฉื•ื˜!

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

ื‘ื•ืื• ื ื•ืกื™ืฃ ื“ืจืžื”

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

ื ื—ื–ื•ืจ ืขืœ ื ืงื•ื“ื” ื—ืฉื•ื‘ื”

ื ื™ืชืŸ ืœื‘ืฆืข ื”ืคืขืœื” ืกื•ื“ื™ืช ืขื ืฉื™ืงื•ืฃ ืชืขื‘ื•ืจื” (Dark Launch/Request Mirroring) ืžื‘ืœื™ ืœื”ืฉืคื™ืข ืขืœ ื”ืงื•ื“ ื‘ืฉื•ื ืฆื•ืจื”.

ื—ื•ืžืจ ืœืžื—ืฉื‘ื”

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

ืคืจื™ืกื” ืงื ืจื™ืช ื‘ืื™ืกื˜ื™ื•: ืคื™ืฉื•ื˜ ื”ื”ืคืขืœื”

ื‘ื–ื”ื™ืจื•ืช ื•ื‘ื”ื“ืจื’ื”

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

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

ืกื™ื ื•ืŸ ื”ื“ืคื“ืคืŸ

ืื—ื“ ืžืงืจื™ื˜ืจื™ื•ื ื™ ื”ื ื™ืชื•ื‘ ื”ืคืฉื•ื˜ื™ื ื‘ื™ื•ืชืจ ื”ื•ื ื ื™ืชื•ื‘ ืžื—ื“ืฉ ืžื‘ื•ืกืก ื“ืคื“ืคืŸ. ื ื ื™ื— ืฉืืชื” ืจื•ืฆื” ืจืง ื‘ืงืฉื•ืช ืžื“ืคื“ืคื ื™ Safari ืœืขื‘ื•ืจ ืœื’ืจืกื” 2. ื”ื ื” ืื™ืš ื–ื” ื ืขืฉื”:

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

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

ื”ืฉืงื” ืืคืœื” ื‘ืื™ืกื˜ื™ื•: ื”ืฉื™ืจื•ืชื™ื ื”ื—ืฉืื™ื™ื

ื›ื•ื— ื‘ืœืชื™ ืžื•ื’ื‘ืœ

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

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

ืชืชื ื”ื’ ื—ื›ื

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

ืžืขื•ื ื™ื™ืŸ?

ื”ืื ืืชื” ืœื”ื•ื˜ ืœื”ืชื ืกื•ืช ืขื Istio, Kubernetes ื•-OpenShift ื‘ืžื—ืฉื‘ ืฉืœืš? ืงึฐื‘ื•ึผืฆึธื” ืฆื•ื•ืช ืžืคืชื—ื™ื ืฉืœ Red Hat ื”ื›ื™ืŸ ืžืฆื•ื™ืŸ ืกืคืจ ืœื™ืžื•ื“ ืขืœ ื ื•ืฉื ื–ื” ื•ื”ืคืš ืืช ื›ืœ ื”ืงื‘ืฆื™ื ื”ื ืœื•ื•ื™ื ืœื–ืžื™ื ื™ื ืœืฆื™ื‘ื•ืจ. ืื– ืงื“ื™ืžื” ืืœ ืชืชื›ื—ืฉ ืœืขืฆืžืš ื›ืœื•ื.
โ€ƒ

Istio Egress: ื™ืฆื™ืื” ื“ืจืš ื—ื ื•ืช ื”ืžื–ื›ืจื•ืช

ืขืœ ื™ื“ื™ ืฉื™ืžื•ืฉ ื‘-Istio ื™ื—ื“ ืขื Red Hat OpenShift ื•-Kubernetes, ืืชื” ื™ื›ื•ืœ ืœืขืฉื•ืช ืืช ื”ื—ื™ื™ื ืฉืœืš ืขื ืฉื™ืจื•ืชื™ ืžื™ืงืจื• ืœื”ืจื‘ื” ื™ื•ืชืจ ืงืœื™ื. ืจืฉืช ื”ืฉื™ืจื•ืช ืฉืœ Istio ืžื•ืกืชืจืช ื‘ืชื•ืš ืชืจืžื™ืœื™ื ืฉืœ Kubernetes, ื•ื”ืงื•ื“ ืฉืœืš ืคื•ืขืœ (ื‘ืขื™ืงืจ) ื‘ื‘ื™ื“ื•ื“. ื‘ื™ืฆื•ืขื™ื, ืงืœื•ืช ืฉื™ื ื•ื™, ืžืขืงื‘ ื•ื›ื•' โ€“ ื›ืœ ื–ื” ืงืœ ืœืฉื™ืžื•ืฉ ื”ื•ื“ื•ืช ืœืฉื™ืžื•ืฉ ื‘ืžื™ื›ืœื™ ืฆื“. ืื‘ืœ ืžื” ืื ื”ืžื™ืงืจื•-ืฉื™ืจื•ืช ืฉืœืš ืฆืจื™ืš ืœืชืงืฉืจ ืขื ืฉื™ืจื•ืชื™ื ืื—ืจื™ื ืฉืžืžื•ืงืžื™ื ืžื—ื•ืฅ ืœืžืขืจื›ืช OpenShift-Kubernetes ืฉืœืš?

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

Egress ืžืืคืฉืจ ืœืš ืœืขืงื•ืฃ ืืช ื˜ื‘ืœืื•ืช ื”-IP ืฉืœืขื™ืœ, ืขืœ ืกืžืš ื›ืœืœื™ Egress ืื• ืขืœ ื˜ื•ื•ื— ืฉืœ ื›ืชื•ื‘ื•ืช IP.

ื ื ื™ื— ืฉื™ืฉ ืœื ื• ืชื•ื›ื ื™ืช Java ืฉืžื‘ืฆืขืช ื‘ืงืฉืช GET ืืœ httpbin.org/headers.

(httpbin.org ื”ื•ื ืจืง ืžืฉืื‘ ื ื•ื— ืœื‘ื“ื™ืงืช ื‘ืงืฉื•ืช ืฉื™ืจื•ืช ื™ื•ืฆืื•ืช.)

ืื ืืชื” ื ื›ื ืก ื‘ืฉื•ืจืช ื”ืคืงื•ื“ื” curl http://httpbin.org/headers, ื ืจืื” ืืช ื”ื“ื‘ืจื™ื ื”ื‘ืื™ื:

ื”ืฉืงื” ืืคืœื” ื‘ืื™ืกื˜ื™ื•: ื”ืฉื™ืจื•ืชื™ื ื”ื—ืฉืื™ื™ื
ืื• ืฉืืชื” ื™ื›ื•ืœ ืœืคืชื•ื— ืืช ืื•ืชื” ื›ืชื•ื‘ืช ื‘ื“ืคื“ืคืŸ:

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

ืื ื—ื ื• ืžื—ืœื™ืคื™ื ื™ื‘ื•ื ื—ื–ื™ืชื™ืช

ืขื›ืฉื™ื• ื‘ื•ืื• ื ื™ืงื— ืืช ืงื•ื“ ื”ื’'ืื•ื•ื” ืฉืœ ืฉื™ืจื•ืช ื–ื”, ื—ื™ืฆื•ื ื™ ืœืžืขืจื›ืช ืฉืœื ื•, ื•ื ืคืขื™ืœ ืื•ืชื• ื‘ืขืฆืžื ื•, ืฉื, ื›ื–ื›ื•ืจ, ืžื•ืชืงืŸ Istio. (ืชื•ื›ืœ ืœืขืฉื•ืช ื–ืืช ื‘ืขืฆืžืš ืขืœ ื™ื“ื™ ื™ืฆื™ืจืช ืงืฉืจ ื”ื“ืจื›ื” ืฉืœ Istio ืฉืœื ื•.) ืœืื—ืจ ืฉื‘ื ื• ืืช ื”ืชืžื•ื ื” ื”ืžืชืื™ืžื” ื•ื”ืฉืงื ื• ืื•ืชื” ื‘ืคืœื˜ืคื•ืจืžืช OpenShift, ื ืชืงืฉืจ ืœืฉื™ืจื•ืช ื–ื” ืขื ื”ืคืงื•ื“ื” curl egresshttpbin-istioegress.$(minishift ip).nip.io, ืœืื—ืจ ืžื›ืŸ ื ืจืื” ืืช ื–ื” ืขืœ ื”ืžืกืš:

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

ื”ืจื—ื‘ืช ื˜ื‘ืœืื•ืช IP ืœื›ืœ ื”ืื™ื ื˜ืจื ื˜

ื™ืฉ ืœื”ืืฉื™ื (ืื• ืœื”ื•ื“ื•ืช) ืืช ืื™ืกื˜ื™ื• ืขืœ ื›ืš. ืื—ืจื™ ื”ื›ืœ, Istio ื–ื” ืจืง ืžื›ื•ืœื•ืช ืฆื“ื“ื™ื•ืช ืฉืื—ืจืื™ื•ืช ืขืœ ืื™ืชื•ืจ ื•ื ื™ืชื•ื‘ (ื•ืขื•ื“ ื”ืจื‘ื” ื“ื‘ืจื™ื ืฉื“ื™ื‘ืจื ื• ืขืœื™ื”ื ืงื•ื“ื). ืžืกื™ื‘ื” ื–ื•, ื˜ื‘ืœืื•ืช IP ื™ื•ื“ืขื•ืช ืจืง ืžื” ื™ืฉ ื‘ืชื•ืš ืžืขืจื›ืช ื”ืืฉื›ื•ืœื•ืช ืฉืœืš. ื•-httpbin.org ืžืžื•ืงื ื‘ื—ื•ืฅ ื•ืœื›ืŸ ืœื ื ื’ื™ืฉ. ื•ื›ืืŸ Istio Egress ืžื’ื™ืข ืœื”ืฆืœื” - ืœืœื ื›ืœ ืฉื™ื ื•ื™ ื‘ืงื•ื“ ื”ืžืงื•ืจ ืฉืœืš.

ื›ืœืœ ื”- Egress ืœื”ืœืŸ ืžืืœืฅ ืืช Istio ืœื—ืคืฉ (ื‘ืžื™ื“ืช ื”ืฆื•ืจืš, ืื– ื‘ื›ืœ ื”ืื™ื ื˜ืจื ื˜) ืื—ืจ ื”ืฉื™ืจื•ืช ื”ื ื“ืจืฉ, ื‘ืžืงืจื” ื–ื”, httpbin.org. ื›ืคื™ ืฉื ื™ืชืŸ ืœืจืื•ืช ืžื”ืงื•ื‘ืฅ ื”ื–ื” (egress_httpbin.yml), ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื›ืืŸ ื“ื™ ืคืฉื•ื˜ื”:

ื”ืฉืงื” ืืคืœื” ื‘ืื™ืกื˜ื™ื•: ื”ืฉื™ืจื•ืชื™ื ื”ื—ืฉืื™ื™ื
ื›ืœ ืžื” ืฉื ื•ืชืจ ื”ื•ื ืœื™ื™ืฉื ืืช ื”ื›ืœืœ ื”ื–ื”:

istioctl create -f egress_httpbin.yml -n istioegress

ืืชื” ื™ื›ื•ืœ ืœื”ืฆื™ื’ ื›ืœืœื™ Egress ืขื ื”ืคืงื•ื“ื” istioctl get egressrules:

ื”ืฉืงื” ืืคืœื” ื‘ืื™ืกื˜ื™ื•: ื”ืฉื™ืจื•ืชื™ื ื”ื—ืฉืื™ื™ื
ื•ืœื‘ืกื•ืฃ, ืื ื• ืžืจื™ืฆื™ื ืืช ื”ืคืงื•ื“ื” ืฉื•ื‘ ืชืœืชืœ โ€“ ื•ืื ื—ื ื• ืจื•ืื™ื ืฉื”ื›ืœ ืขื•ื‘ื“:

ื”ืฉืงื” ืืคืœื” ื‘ืื™ืกื˜ื™ื•: ื”ืฉื™ืจื•ืชื™ื ื”ื—ืฉืื™ื™ื

ืื ื—ื ื• ื—ื•ืฉื‘ื™ื ื‘ืคืชื™ื—ื•ืช

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

ื–ื” ื”ื™ื” ื”ืคื•ืกื˜ ื”ืื—ืจื•ืŸ ื‘ืกื“ืจื” ืขืœ Istio. ื”ื™ืฉืืจื• ืžืขื•ื“ื›ื ื™ื - ื™ืฉ ื”ืจื‘ื” ื“ื‘ืจื™ื ืžืขื ื™ื™ื ื™ื ืœืคื ื™ื›ื!

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

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