Istio
https://gyazo.com/f62ab6dcc680a1a5922581d333ec1181
Istio
service mesh on KubernetesKubernetes.icon
data plane は EnvoyEnvoy.icon
architecture。古い話 < v1.5 で、v1.5 から monolithic な istiod に統合された
Pilot
EnvoyEnvoy.iconの policy を管理する
Mixer
observability
認可→Galley へ分割
Citadel
認證用證明書管理
Galley
control plane としての機能
data plane を構築する
sidecar injection
automatic sidecar injection. Using Kubernetes's MutatingWebhook admission controller
Istio / Demystifying Istio's Sidecar Injection Model
istio-init と云ふ init container が各 pod に附いてくる。iptables で通信を istio-proxy container へ向ける
そも Istio 以前に Kubernetes は node の iptables を弄り囘して pod 閒の通信を掌握してゐるのであった < kube-proxy pod
Kubernetes は通信自體は node 本來の通信機能に任せる。そこに Envoy を挾んで通信設定だけでなく通信實體も掌握するのが Istio
SDN (software defined network)
Software Defined Networking - Wikipedia
非同期に行はれる二種類の處理を繋ぐには四種類の channel が要る - c4se記:さっちゃんですよ☆
詰まり Elixir の code にもこの四種類の channel が有る訣である。
producer -> consumer : 生成した data を渡す
consumer -> 外界 : 處理結果を渡す
consumer -> 外界 : 終了を報せる
外界 -> consumer : 終了する
これを見ると actor model は、VM (や分散處理 library) が便利な仕組みを作り易い、しかし channel を明示して扱ふやり方に比べると 處理を行ふ事 と 處理を行ふ場所 とを complect してゐる事が解る。これは Erlang が採擇し Clojure が避けたものだ。
channel は channel の口と路とを complect してゐる。actor model では分離されてゐる、抽象されてゐる
actor model は他 actor からの message と runtime からの message とを complect してゐる。channel では分離されてゐる、それぞれ channel を作る
istio-proxy container が sidecar として各 pod へ附いてくる。中身は pilot-agent と Envoy
data plane を設定する
traffic management
proxy
假想 service
circuit braker
fault injection
timeout
retry
deploy
A/B testing
canary release
staged rollouts with percentage-based traffic splits
data plane からの問ひ合はせに答へる
security
zero-trust
AuthorizationPolicy
Open Policy Agent (OPA)Open Policy Agent (OPA).icon
data plane を觀測する
health check
observability
M-T-L
metric
tracing
distributed tracing
log
access log
Kiali: Service mesh observability and configuration