"ืกืื ื ืืื ืืฉื ืืืืฆืขื ืฉืื", ื ืื ืืืืจ ืืืกืืื ืคืืืืจืก, ืืืฉ ืืกืชืืจืื ืืื ืืืืื. ืืื ืื ืฉืืืื ืืืขืจืื ืจืื ืขื ืืื ืกืืื ื ืืขื ืืฉืืจืืชื ืืืืืืขืื ืืื ื ืืชืืื ืืื ืืฉืืจืืชื ืืืฉืื, ืฉืืื ืฉืขืืื ืขืืืฃ ืืืจืื ืขื ืกืื ื.
ื-Istio, ืืื ืขื OpenShift ื-Kubernetes, ืืืคืืื ืืช ืคืจืืกืช ืืืืงืจื-ืฉืืจืืชืื ืืืฉืขืืืช ืืฆืคืืื ืืืืช - ืืื ื ืืืจ. ืขื ืื ืืขืื ืืจืื ื ืืืจ ืืคืืกื ืืจืืืขื ืืืืืจืื ืืกืืจืช Istio.
ืืฉืืฉืขืืื ื ืืื
ืืืงืจื ืฉืื ื, ืืฉืขืืื ืืชืจืืฉ ืจืง ืืฉืื ืืกืืคื, ืืืฉืจ ืื ืฉื ืืชืจ ืืื ืืฉืืช ืืืฆืคืืช ืืชืืืื. ืืื ืืื ืืขืฉืืช ืืืช, ืชืืืื ืขืืื ืืืืืืจ ืืื, ืืืจืื ืืืจืื ืืขื ืืื ืื ืืืืื ืื ืืื.
ืืขืช ืคืจืืกืช ืืจืกื ืืืฉื ืฉื ืืชืืื ื ืฉืื, ืืืื ืืฉืงืื ืืช ืื ืืืคืฉืจืืืืช ืืฆืืฆืื ืืกืืืื ืื. ืจืืฆื ืืืงืืื ืืื ืืจื ืืืงื ืืืืืืช ืืืื ืืืืืงื, ืืืืกืืื ืืืคืฉืจืช ืื ืืืฉืชืืฉ ื"ืฉืืจืืช ืกืืื" (ืืจืกื ื ืกืชืจืช ืฉื ืืืืงืจื-ืฉืืจืืช ืฉืื) ืืื ืืขืฉืืช ืืืช ืืืื ืืืคืจืืข ืืืขืจืืช ืืืืฆืืจ. ืืฉ ืืคืืื ืืื ื ืืืืื ืืื - "ืืฉืงื ืืื", ืฉืืชืืจื ืืืคืขืืช ืขื ืืื ืคืื ืงืฆืื ืืขืืช ืฉื ืืจืื ืืืืชื ืืืื "ืฉืืงืืฃ ืชื ืืขื".
ืฉืืื ืื ืฉืืืฉืคื ืืจืืฉืื ืฉื ืืคืกืงื ืืงืืืืช ืืฉืชืืฉ ืืืื ื "ืคืจืืกื" ืืื "ืฉืืจืืจ". ืืชื ืืืืช ืืืืจ ืืืืืช ืืกืืื ืืคืจืืก - ืืืืืื, ืืืฉืชืืฉ - ืืฉืืจืืช ืืืืงืจื ืฉืื ืืชืืืจืืช ืฉืชืจืฆื. ืฉืืจืืช ืื ืืืื ืืืืืช ืืกืืื ืืงืื ืืืขืื ืชืขืืืจื, ืืืืฆืจ ืชืืฆืืืช ืืื ืืืชืื ืืืืืื ืืื ืืจ. ืืื ืืื ืขื ืืืช, ืืฉืืจืืช ืืื ืขืฆืื ืื ืืืืจื ืฆืจืื ืืืืืช ืืฉืืืจืจ ืืืืฆืืจ. ืคืจืืกื ืืฉืืจืืจ ืชืืื ื ืื ืื ืชืืื ืืืชื ืืืืจ. ืืชื ืืืื ืืคืจืืก ืืชื ืฉืชืจืฆื, ืืื ืฉืืจืจ ืจืง ืืฉืชืืื ืืืื.
ืืจืืื ืฉืขืืื ืื ืืขื ืืื
ืชืกืชืื ืขื ืืื ืื ืืชืื ืืื ืฉื Istio, ืฉืื ืชื ืืช ืื ืืงืฉืืช ื-HTTP ืืืืืฆืช ืืืืงืจื-ืฉืืจืืช v1 (ืื ืืืืืืืืช ื ืืงืื ื
ืฉืืื ืื ืืชืืืืช 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 ืืืืฉื ืฉืื? ืงึฐืืึผืฆึธื
โ
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. (ืชืืื ืืขืฉืืช ืืืช ืืขืฆืื ืขื ืืื ืืฆืืจืช ืงืฉืจ 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