áá
áľá áĽáŤá á á áŤá ááá ἠáá˝áá
áĽáá´áľ áĽáá°áá°áŤ
á˘áľá˛áŽ áááľ áá áŚáłáá˝á áŤáá áá - á¨áááŁá áŞáŤ á ááŽááá áĽá á¨áá¨á á ááŽááá. á¨áááŁá áŞáŤá á ááŽááá á¨áá¨áá áľáááá á á áŤá á¨ááŤá¨ááᥠáá áá áááá˝á ááá. á áá áŁáá áľáŞáľ (1.0) á¨áááŁá áŞáŤá á ááŽááá áśáľáľ áá áá áááá˝ á ááľ-á áĽáŤáŞ, áááá, Citadel. áĽá Citadelá á áááá¨áľá ᣠá á áááááśá˝ ááŤá¨á á¨á፠TLS ááá¨ááἠá¨ááľáá áá¨ááśá˝á áááá¨áľ áŤáľááááᢠá¨ááááľ áĽá áááľá¨áá ááłáŞáŤ áĽá á áá á áá áĽáá áĽáááááá˘
á áĽáŤáŞ á áááľá°á ááľáĽ áľááá ááá áááá áá¨á á¨ááŤá°áŤá áá á¨ááĽáĽá á áŤá áá - á áááááśá˝ ᣠá¨áá¨á¨áť ááĽáŚáťá¸á áĽá á¨áááŞáŤ á°ááŚáš (áááłá ááŤá᪠áá°ááŤáľ ááá á¨áá¨áł á°ááá á
áá˝)á˘
áááľá áááŞáŤáá˝áᣠááááŚá˝á áĽá áľá á ááłá¨ áá¨áĽ ááľá°ááĽá áááááá áá¨á á¨áá°áĽá°áĽ á˝ááł á¨áá°áĽ á¨á ááŤá áááŁá áŞáŤ á ááŽááá á áŤá ááᢠáĽáá˛áá á¨ááᲠá°ááŚá˝á áĽá á¨áá áá°áŚá˝á ááá áá áááŁá áŤáá˘
á¨áá¨áá á ááŽááá á¨áá°áá á¨á á¨áá ááŞá ááŽáᲠáŽáá´áááŽá˝á á áá áá ááᢠáááá á ááŁáŞááľ áĽá
á áá áááá.
á˘áľá˛áŽ ááá°áá áŞáŤáá˝ áá á áá ááá˝ááľ áĽáá˛áá¨á, á ááśáá˛á ááá áľáááľ á á. á¨á áἠáá áľáá ፠á Kubernetes 1.9+ áľáŞáśá˝ (ááá´á˝á á¨ááá˘áŤ webhook) á°áľáá ááᢠá Kubernetes áľáŞáśá˝ 1.7, 1.8 á˘áá˛á¨ááááá áá áá ááťáá.
á¨á˛á˛áŤá áŽáá´áááŽá˝ ᨠGRPC ááŽáśáŽáá á áá áá á¨ááááľ áá á¨á°ááá áá¸áᣠáá á á áááľá°á ááľáĽ áááá አáááŚá˝ á¨áá áá´áá áĽáá˛áŤáłáľá áŤáľá˝áááłáᢠGRPC á¨áľáŞáľ 1.6 ááᎠá Envoy ááľáĽ áĽá á áá áááᣠá Istio á¨áľáŞáľ 0.8 ááᎠáĽá á áá ááá áĽá á áĽáŤáŞ ááŞá áá - á¨ááľáááŞáŤ á ááŤáŽá˝á á¨ááŤáá á á¨áááá áá á ááŤá˘
á áĽáŤáŞ áĽá áááá áá á áá ááá á áᣠá áŤááľ áá¸áᣠááá áááł á áá
á°á¨ áľááľáł ááľáĽ á°ááá§áᢠááĽááą áŤáá áá
á á Kubernetes áĽá ááááá˝ ááá á°ááá§á, ááá°.
á¨á˘áľá˛áŽ ááŞá á¨á áĽáŤáŞáá á áľáŤáť áŤááá áĽá ᨠGRPC áĽá¨áľ áá¨ááłáá˘
áĽáá°á°ááááŠáľ á˘áľá˛áŽ áááá á°ááŁáŤáľ áá ááá ááá°áá áŞáŤáá˝ ááá˝ááľ áá°áŁáᢠáĽáá´áľ áĽáá°áá áĽááᢠá áááŞáá á¨áá¨á°áá áá-
- á á˛áľ á¨á áááááąá áľáŞáľ á áá°ááŤáľ ááá˘
- áĽáá° á¨áá ááŞá áŽáá´ááá ááá á ááŤá¨áĽ áá á ááááŽá á¨á˘áľá˛áŽ-á˘ááľ áŽáá´ááá áĽá á¨á˘áľá˛áŽ-á¤áááľ áŽáá´ááá (áááĽáá°á) á ááááŠá á áá°áá áá áľ á°á¨á áá áá¨ááŤá ááá ááľááá á Kubernetes Pod á áŤá ááá፠ááľáĽ á áĽá ááᥠáá˝ááá˘
- á¨á˘áľá˛áŽ-á˘ááľ áŽáá´ááá ᨠiptables á°ááŚá˝á á ááľ áá á¨áá°áá á áľááŞááľ ááᢠá á˘áľá˛áŽ ááŞá áŽáá´ááá ááľáĽ á¨ááłá¸ááá áľáŤáá ááááá áááľ á ááŤáŽá˝ á áᥠᨠiptables ááááá á°ááŚá˝á áá áá ááá
TPRoxy . á áá˝áá áľ ááᣠááŁáŞá á áŤááľ á¨ááááá á°ááŚá˝ áá ááᢠá á˘áľá˛áŽ-á˘ááľ ááľáĽ á¨áľáá áľáŤáá áááŤá¨áĽ áĽá áá° á˘á˛áŽ-á¤áááľ ááá áĽááłáá áľ áááá ááťááᢠáááłá, áááá áᢠáĽá á᪠áľáŤáá áááĽáá, áááŞáŤáá˝á áááááľ áŤáľáááááłá-i
и-b
áá° áľááá*
. áááĽáá á¨á°áá°á áá°áŚá˝á áááá˝ áá˝ááᢠá ááľá á¨á°áá°á áááľ áá¨áĽ ááááĽáá áŁáá˛áŤáá á°á á áá áááá˝ áá˝ááá˘-x
. - á¨á˘áá´áľ áŽáá´áááŽá˝ á¨á°áá¸á á áá áá ááááš á°ááá¨áá, á áĽáŤáŞá-ááŞáá á¨ááŽ. á áá ááᲠá áŠá ááľá á¨á°áá¨áá ááááľ áá ááááá áĽá á áááľá°á ááľáĽ áľáááľ ááŁá á áááááśá˝ áĽá áááŞáŤáá˝ áááŞáŤ ááá ááᢠá á°áá áá áá¨á áá°á¨áľ, áľáĽáľáŚá˝á áŤáá áŤá áĽá á ááĽáł á áŠá áááľáľ áááľá°á ááľáĽ áá° áľáá áŤááťá˝á á¨áá¨á¨áť ááĽáĽ áááľáŁá. áĽáá˛áá á ááľ á áľááá ááĽáĽ áἠáááľ áŤáľááááᥠáááĽáá°áá ááłáἠá¨ááááá áľá á áľááŽá˝á (IPᣠport pairs) á á°áááá áŤáá áŤáᢠáľááá áŁáĽáŤááá˝ áá° ááľá ááľáĽ á˛áᥠáŁá áá ááŞáá ááľáĽ áŤááá á¨á áááĽááľ áááŞáŤáá˝á á áá áá á á áŁáŤá¸áá á˛ááአáááĽáá°áá áĽááá á áááááśá˝ á á°áłáŤ áááł ááŤááľ áĽá á¨áľáŤááŠá á°á¨á᪠ááŞá ááľá¨á áĽááłáá áľ áá¨áł áá˝ááᢠá á°á¨ááŞá á áá á°á¨á, áá¨á áá° áááľá áááŤá, á áá áá áĽáááá¨áłáá, áĽá á¨áá¨áłá°áŤ áľááá˝ áááŤá.
á áá¤áąá, á¨á ááľ ááĽáĽ (ááááľ) áááá á¨á á¨ááá˝ááá á á ááá á¨áááááľ ááŽáᲠá°áá¨áŽá˝á áĽááááá. ááá á¨áᢠáĽá á¨á᪠áĽáŤááá˝ á áááĽáá°á á áŠá áŤáááᢠá¨áá á á áá á¨TCP áľáŤáá áĽáť áá á¨ááľá°ááááᢠáá ááᾠᨠKubernetes á áááááľ á áá áłáááἠkube-dns á UDP áá á áá áá á°ááľáˇá áááľ ááᢠá¨ááŤá á¨ááłáá á áá á¨ááŞá áĽáŤá á áááĽáá°á á°á áá ááľá°áááłá ᣠáá á áĽáŤáá á á¨áľáá á¨áá¨á¨áť ááĽáĽ áá ááá áĽááłáá áľ á áľááľá áááľáá (ááá á áááá ᣠá¨ááłá¨áť ááá˛áá˝ ááá á¨á áááŞáá áá¨áł á°ááá)á˘
ááááľá á ááááᣠá áá áááľá¨á áĽáá´áľ áĽáá°áá°áŤ áĽá ááá áĽáá°ááŤáľááá áá¨áłáľ á ááĽáᢠááĽáą áŚáá´áá á°ááśá˝á ááá ἠáá˝áá
áááá á áá áŁáá ááአáááľ á áŤááľá áŤáá áááĄ- istio-telemetryᣠistio-policy (á¨áĽáŞáľ 0.8 á ááľ á ááľ istio-mixer component)ᢠáááąá áľáĽáá áá¸á, áĽáŤááłááąá ááŤáą á°ááŁá á°á áŤá áá. á˘áľá˛áŽ á´áááľáŞ áá á¨áľ áĽáá°áááľ áĽá á áá á áááľ áááááá˝ á¨áá ááŞá áŞáááľ áŽáá´áááŽá˝á á GRPC á áŠá áá¨á ááá ááᢠIstio-policy á¨áááŞáŤ á°ááŚá˝ ááááłá¸áá ááá¨ááἠá¨áźá áĽáŤááá˝á ááá ááᢠá¨ááᲠáá°áťáá˝ á áĽááἠááĽáŤááłááą áĽáŤá á áá°á¨áá, ááá áá á á°áá áá (á áá ááŞá ááľáĽ) áá°áá°á áá á°á°áĽááá. á¨áŞáááľ áźáŽá˝ áĽáá° áŁá˝ áĽáŤááá˝ áááŤáᢠáĽáá´áľ áááá áĽáá°ááťá áĽá áá áááŞáŤáá˝ áľáá˝ ááá°á ááá áĽááłááŁá¸á áĽáá.
ááá°á°áŠ á á´áááľáŞ áá¨áá á áá°áŁá°áĽ áĽá á áááá á áá áŤáá°áá¨á áľáŤá á¨ááŤá¨ááἠá áŁá á¨ááá á áŤá ááá á áá áľá˘ áľáááą á á ááŤáł á°á¨á ááľ ááááŤáľ á¨á°áá áá. ááááŞáŤ áá áá¨á á ááŤáŁá á¨áá ááŞá áá ᣠá¨ááŤá á áááá á áŠá ᣠá¨ááŤá áá° áá áŤá áááá ááᣠáááŤáᢠá áá¤áąá, á¨áľááá á¨áľááá°-ááł á áŤááľ áŤáá°áłáŤ, ááą áŤáľáá áĽá áľáááą á¨á°ááá° á áá ááłá áŁá. á¨áááá áááŁáá˝ á¨á´áááľáŞ áá¨áá áááá á¨áá¨á¨áť ááĽáŚá˝ áá¸áᥠáľáłá˛áľá˛ááľáŁ áááŹááᣠááá° á¨áĽáŤáľáá ááᣠááťá áá˝áá, á áŁá ááá áá, áĽá áĽáá´áľ ááľá¨á áĽááłááĽááľ áĽááŤáá.
ááá ááá, á¨á˘áľá˛áŽ-á´áááľáŞ áá á¨ááĽáŤáľ áĽá
áľ áĽáá°áá¨á°áá áá.
- á áááááľ 1 áá áááááľ áĽáŤá áááŤá 2.
- á¨á áááááľ 1 á˛ááĄ, áĽáŤáá á áŤáą á¨áá ááŞá ááľáĽ áá áááá.
- á¨á˛á´áŤá á°ááŤá áĽáŤáá áá° á áááááľ 2 áĽáá´áľ áĽáá°áááľ áá¨áłá°áá áĽá á áľááááá áá¨á áŤáááá.
- á¨ááŤá á¨áŞáááľ áĽáŤáá á áá áá áá° istio-telemetry áááŤáá˘
- á˘áľá˛áŽ-á´áááľáŞ áá áŞáááľ áá° áááŁáá˝ ááá áĽááłáá áľáŁ áá¨áľáá áĽá áá ááἠááá áĽááłáá áľ áááľááá˘
- Istio-telemetry á áľááá á¨áá á¨áŞáááľ áá¨áá áá° áá áááŤáá˘
á áá á˘áľá˛áŽ á áľáááą ááľáĽ áĽáá´áľ áá°ááŤáľ áĽáá°ááťá áĽáá, áá áá á áŤááľá (á áĽáŤáŞ áĽá á¨áá ááŞá á°ááŤá) áĽáť áŤáá.
á ááááŞáŤáŁ á áĽáŤáŞ áŤáá á áá áá áá á (áá¨áĽ) áĽáááá¨áľáĄ-
apiVersion: v1
kind: ConfigMap
metadata:
name: istio
namespace: istio-system
labels:
app: istio
service: istio
data:
mesh: |-
# пОка ŃŃĐž но вкНŃŃаоП ĐžŃĐżŃĐ°Đ˛ĐşŃ tracing инŃĐžŃПаŃии (pilot наŃŃŃĐžĐ¸Ń envoyâи ŃакиП ОйŃаСОП, ŃŃĐž ĐžŃĐżŃавка но ĐąŃĐ´ĐľŃ ĐżŃОиŃŃ
ОдиŃŃ)
enableTracing: false
# пОка ŃŃĐž но ŃкаСŃваоП mixer endpointâŃ, ŃŃĐžĐąŃ sidecar кОнŃоКноŃŃ Đ˝Đľ ĐžŃĐżŃавНŃНи инŃĐžŃПаŃĐ¸Ń ŃŃĐ´Đ°
#mixerCheckServer: istio-policy.istio-system:15004
#mixerReportServer: istio-telemetry.istio-system:15004
# ŃŃавиП вŃоПоннОК ĐżŃОПоМŃŃОк, Ń ĐşĐžŃĐžŃŃĐź ĐąŃĐ´ĐľŃ envoy поŃĐľŃĐżŃĐ°ŃиваŃŃ Pilot (ŃŃĐž Đ´ĐťŃ ŃŃĐ°ŃОК воŃŃии envoy proxy)
rdsRefreshDelay: 5s
# default кОнŃигŃŃĐ°ŃĐ¸Ń Đ´ĐťŃ envoy sidecar
defaultConfig:
# анаНОгиŃнО как rdsRefreshDelay
discoveryRefreshDelay: 5s
# ĐžŃŃавНŃоП пО ŃПОНŃĐ°Đ˝Đ¸Ń (ĐżŃŃŃ Đş кОнŃигŃŃĐ°Ńии и йинаŃŃ envoy)
configPath: "/etc/istio/proxy"
binaryPath: "/usr/local/bin/envoy"
# Đ´ĐľŃОНŃнОо Đ¸ĐźŃ ĐˇĐ°ĐżŃŃоннОгО sidecar кОнŃоКноŃĐ° (иŃпОНŃСŃĐľŃŃŃ, напŃиПоŃ, в иПонаŃ
ŃĐľŃвиŃĐ° ĐżŃи ĐžŃĐżŃавко tracing spanâОв)
serviceCluster: istio-proxy
# вŃоПŃ, кОŃĐžŃОо ĐąŃĐ´ĐľŃ ĐśĐ´Đ°ŃŃ envoy Đ´Đž ŃОгО, как Он ĐżŃинŃдиŃоНŃнО СавоŃŃĐ¸Ń Đ˛ŃĐľ ŃŃŃанОвНоннŃĐľ ŃОодинониŃ
drainDuration: 45s
parentShutdownDuration: 1m0s
# пО ŃПОНŃĐ°Đ˝Đ¸Ń Đ¸ŃпОНŃСŃŃŃŃŃ REDIRECT ĐżŃавиНа iptables. ĐОМнО иСПониŃŃ Đ˝Đ° TPROXY.
#interceptionMode: REDIRECT
# ĐĐžŃŃ, на кОŃĐžŃОП ĐąŃĐ´ĐľŃ ĐˇĐ°ĐżŃŃона admin ĐżĐ°Đ˝ĐľĐťŃ ĐşĐ°ĐśĐ´ĐžĐłĐž sidecar кОнŃоКноŃĐ° (envoy)
proxyAdminPort: 15000
# Đ°Đ´ŃĐľŃ, пО кОŃĐžŃĐžĐźŃ ĐąŃĐ´ŃŃ ĐžŃĐżŃавНŃŃŃŃŃ traceâŃ ĐżĐž zipkin ĐżŃĐžŃĐžĐşĐžĐťŃ (в наŃаНо ĐźŃ ĐžŃкНŃŃиНи ŃĐ°ĐźŃ ĐžŃĐżŃавкŃ, пОŃŃĐžĐźŃ ŃŃĐž пОНо ŃоКŃĐ°Ń Đ˝Đľ ĐąŃĐ´ĐľŃ Đ¸ŃпОНŃСОваŃŃŃŃ)
zipkinAddress: tracing-collector.tracing:9411
# statsd Đ°Đ´ŃĐľŃ Đ´ĐťŃ ĐžŃĐżŃавки ПоŃŃик envoy кОнŃоКноŃОв (ĐžŃкНŃŃаоП)
# statsdUdpAddress: aggregator:8126
# вŃкНŃŃаоП пОддоŃĐśĐşŃ ĐžĐżŃии Mutual TLS
controlPlaneAuthPolicy: NONE
# Đ°Đ´ŃĐľŃ, на кОŃĐžŃОП ĐąŃĐ´ĐľŃ ŃĐťŃŃĐ°ŃŃ istio-pilot Đ´ĐťŃ ŃОгО, ŃŃĐžĐąŃ ŃООйŃĐ°ŃŃ Đ¸Đ˝ŃĐžŃПаŃĐ¸Ń Đž service discovery вŃоП sidecar кОнŃоКноŃĐ°Đź
discoveryAddress: istio-pilot.istio-system:15007
ááá áá á¨áááŁá áŞáŤ á áŤááľ (á¨áááŁá áŞáŤ á ááŽááá) á áŠá áááľáľ ááľáĽ á áľá áŚáł istio-system ááľáĽ áááá.
á˘áŤááľ ááááľá áá°ááŤáľ áĽáť á ááĽáᢠááá
áĽáá áááá
áĽá á¨áĽááá ááá á¨áá ááŞáá á áĽá áĽááá áŤááá˘
ááľáá˘áŤ ááŤáŁ;
initContainers:
- name: istio-init
args:
- -p
- "15001"
- -u
- "1337"
- -m
- REDIRECT
- -i
- '*'
- -b
- '*'
- -d
- ""
image: istio/proxy_init:1.0.0
imagePullPolicy: IfNotPresent
resources:
limits:
memory: 128Mi
securityContext:
capabilities:
add:
- NET_ADMIN
áĽá á¨áá ááŞá;
name: istio-proxy
args:
- "bash"
- "-c"
- |
exec /usr/local/bin/pilot-agent proxy sidecar
--configPath
/etc/istio/proxy
--binaryPath
/usr/local/bin/envoy
--serviceCluster
service-name
--drainDuration
45s
--parentShutdownDuration
1m0s
--discoveryAddress
istio-pilot.istio-system:15007
--discoveryRefreshDelay
1s
--connectTimeout
10s
--proxyAdminPort
"15000"
--controlPlaneAuthPolicy
NONE
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: INSTANCE_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: ISTIO_META_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: ISTIO_META_INTERCEPTION_MODE
value: REDIRECT
image: istio/proxyv2:1.0.0
imagePullPolicy: IfNotPresent
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
memory: 2048Mi
securityContext:
privileged: false
readOnlyRootFilesystem: true
runAsUser: 1337
volumeMounts:
- mountPath: /etc/istio/proxy
name: istio-envoy
ááá ááá á á°áłáŤ áááł áĽáá˛ááá á¨á áááááľ á áŤáááľáŁ áááľá°ááŽáᣠáááľá°á áŽáá˘áá˛ááᣠá˛á áᲠáááááľ ááá á á ááŚáľáŁ ááááŤááš ááá áá˝ááá˘
á áá¤áąá, á¨áá ááŞáá á¨áááŤá áá á¨ááááá áľ á áááááľ á á°áłáŤ áááł áááá á áá áľ, áááá áááśá˝ á¨á áĽáŤáŞá ááá á áĽá áĽáŤááá˝á ááŤááľ.
ááá á¨ááĽáĽá á ááŽáááá˝ á áŤááľ ááá á áᣠá áááŹá˝áá˝ áááá¸áá áĽá áŤáá˝áá á á ááľá áááá áĽáá°áá˝á áá¨áłáľ áŤáľááááᢠááá ááἠá etcd ááľáĽ á Kubernetes ááĽáśá˝ áĽá ááááŤáá˝ ááľáĽ á°á¨áá˝áˇáá˘
áĽáá˛áá á˘áľá˛áŽ (á ááá á áá¨áŤ áá áŤá) á¨áááľá°á áá á¨ááŽáĽ á˝ááł áĽá á á ááŤáł á¨áŠá áááľáľ áľáĽáľáŚá˝ ááŤá¨á áŤááá á¨á áááááľ áááľ á¨áááá¨áľ áĽá á¨ááá áá á á˝ááł á ááᢠáľááá
ááłá á¨á áá ááá ἠáá˝áá
ááŁááĽá áááľá°á áááľ á¨áá¨á°ááľá áá°áŚá˝ áἠáá áá˘
- Pod CIDR áĽá á¨á áááááľ á˛á˛á á á ááá ááááá˝ áአááá á ááŁá¸á áĽá áá°áŤá¨áĽ á¨ááŁá¸ááá˘
- ááá CIDR Pods á¨á¨áľááá á¨CIDR Pods á áááľá°á ááŤá¨á á°á°áŤá˝ ááá á ááŁá¸áá˘
- ááá á¨áŠá áááľáľ á¤áá á á ááááŽá˝ áĽááľá ááľ á°á°áŤá˝ ááá á ááŁá¸áá˘
áá
á á˘áľá˛áŽ áĽáá˛ááአá¨áá¨áłááľ á¨ááááŞáŤ áá¨á ááᢠááá áĽáá á ááá áĽá ááĽááśá˝ á á. áááłá á¨áá áľáŤááá á¨ááááá áŁá
áŞáŤáľ (á¨áááľá°á ááŞ)ᣠá¨áá ááŞááá˝á á¨áá¨á á ááŤá¨áŚá˝áŁ ááŽááá ááľá¨áᣠáááá áááá á áĽá áĽá áááá áááŁá áááᣠá¨áá¨áłá°áŤ áá´á áááááľ áĽá ááááá°ááá á áá áá á á°áŤáŠá˘
áá
áá áá á ááŁá á˝ááá˝ ááľáĽ áĽáá¸áááá. áĽáŤááá˝áá áá áá, áĽááąá ááá¸áá áĽáááŤáá.
ááá: hab.com