ããã«ã¡ã¯ï¼ Microservices Platform Network ãã¼ã ã® hatappi ã§ãã
ã¡ã«ã«ãªã§ã¯ Service Mesh ã®å®è£
ã¨ã㦠Istio ãæ¡ç¨ãã¦ãã¾ãã
ç§é Microservices Platform Network ãã¼ã (ä»¥ä¸ Network ãã¼ã ) ã®å½¹å²ã®1ã¤ã¨ãã¦ãã® Istio ã®ç®¡çãããã Istio ã®ãã¼ã¸ã§ã³ã¢ãããåãã¤ã¯ããµã¼ãã¹ã® Istio ã®å°å
¥æ¯æ´ãä»çµã¿ã¥ãããè¡ã£ã¦ãã¾ãã
ã¡ã«ã«ãªã Istio ãæ¡ç¨ããèæ¯ãç¥ãããæ¹ã¯ Adopting Istio for a multi-tenant Kubernetes cluster in Production ã«æ¸ããã¦ããã®ã§ãã¡ããã覧ãã ããã
Istio ã¯å·çæç¹ã§ã¯ææ°ã®ãã¼ã¸ã§ã³ã 1.11 ã¨ãªã£ã¦ããã Istio 1.9 ã 10æãIstio 1.10 ã11æã« End of Life ãè¿ãã¾ãã
ãã®ãã Istio ã管çããã¦ããæ¹ã®ä¸ã«ã¯ 1.10 ã¸ã®ã¢ããã°ã¬ã¼ããæ¤è¨ããã¦ããæ¹ãããã®ã§ã¯ãªãã§ããããã
ã¡ã«ã«ãªã§ã¯ç¾å¨ Istio 1.10 ãæ¬çªã§ç¨¼åãã¦ãã¾ããIstio 1.10 ã¸ã¯ Istio 1.9 ããã¢ããã°ã¬ã¼ãããã®ã§ãããã¢ããã°ã¬ã¼ãã®éã«1.10ã§ã®å¤æ´ç¹ã®ï¼ã¤ã® Inbound Fowarding ã®å¤æ´ã«ãã£ã¦åé¡ãçºçããã®ã§ããã®è¨äºã§ã¯ããã®åé¡ãå ±æããããããªãèµ·ããã®ãã®è©³ç´°ãæ¸ãã¦ãã¾ãã
Inbound Fowarding ã®å¤æ´ã«ã¤ãã¦
Istio 1.10 ã® Release announcement ã® Inbound Fowarding ã®å¤æ´ã«ã¤ãã¦æ¸ãããç®æã¯ä¸è¨ã«ãªãã¾ãã
https://istio.io/latest/news/releases/1.10.x/announcing-1.10/#sidecar-networking-changes
Istio ã使ç¨ããªãå ´åãé常 Pod ä¸ã§èµ·åããã¢ããªã±ã¼ã·ã§ã³ã¯ lo
㨠eth0
ã®2ã¤ã®ãããã¯ã¼ã¯ã¤ã³ã¿ã¼ãã§ã¼ã¹ããã£ã¦ããã lo
ã«ã¯ 127.0.0.1
, eth0
ã«ã¯ Pod ã® IP ã¢ãã¬ã¹ãå²ãå½ã¦ããã¦ãã¾ãã
ãã㦠Pod ã¸ã®ãªã¯ã¨ã¹ã㯠eth0
ãéãã¦ã¢ããªã±ã¼ã·ã§ã³ã«å°éãã¾ãã
Istio ã使ç¨ããå ´åãIstio 1.9 以åã¯ãµã¤ãã«ã¼ã¨ãã¦èµ·åãã¦ãã istio-proxy ã§ãã Envoy ã¯ãªã¯ã¨ã¹ãã lo
ã«ãªãã¤ã¬ã¯ããã¦ãã¾ããã
ããã Istio 1.10 ã® Inbound Fowarding ã®å¤æ´ã«ãã£ã¦ eth0
ã«ãªãã¤ã¬ã¯ãããããã«ãªãã¾ããã
â» Istio 1.10 æç¹ã§ã¯ PILOT_ENABLE_INBOUND_PASSTHROUGH=false
ãè¨å®ãããã¨ã§ä»ã¾ã§éã lo
ã«ãªãã¤ã¬ã¯ããããã¨ãå¯è½ã§ãã
ãã®éããå³ã§ç¤ºããã®ãä¸è¨ã«ãªãã¾ãã
Istio 1.9 以å | Istio 1.10 以éã |
---|---|
ãããããªããã®å¤æ´ãå¿ è¦ãªã®ã§ããããï¼
ä¾ãã°ä¸è¨ã®ãã㪠Go ã§æ¸ããã HTTP Server ããã£ãã¨ãã¾ãã
package main
import (
"io"
"log"
"net/http"
)
func main() {
http.HandleFunc("/hello", func(w http.ResponseWriter, req *http.Request) {
io.WriteString(w, "Hello, world!\n")
})
log.Fatal(http.ListenAndServe(":8080", nil))
}
http.ListenAndServe
ã®ç¬¬1å¼æ°ã« :8080
ãæå®ããã¦ããã¯ã¤ã«ãã«ã¼ãã« bind ããããã ã¢ããªã±ã¼ã·ã§ã³ã¯ lo
, eth0
ã®ä¸¡æ¹ã«ãããªã¯ã¨ã¹ããåãåããã¨ãã§ãã¾ãã
ããã 127.0.0.1:8080
ã®å ´å㯠lo
ããã [pod ip]:8080
ã®å ´å㯠eth0
ããã®ã¿ãªã¯ã¨ã¹ããåãä»ããããã«ãªãã¾ãã
Istio ããªãå ´åã® Pod ã§ã¯é常 eth0
ãéãã¦ã¢ããªã±ã¼ã·ã§ã³ã«ãªã¯ã¨ã¹ãããããããã lo
ã«ã®ã¿ bind ãã¦ããã¢ããªã±ã¼ã·ã§ã³ã«ä»ã® Pod ããã®ãªã¯ã¨ã¹ãã¯å°éãã¾ããã
ããã Istio 1.9 以åã§ã¯ãªã¯ã¨ã¹ãã¯ãlo
ã«ãªãã¤ã¬ã¯ãããããã lo
ã«ã®ã¿ bind ãã¦ããã¢ããªã±ã¼ã·ã§ã³ã«ä»ã® Pod ããã®ãªã¯ã¨ã¹ããå°éã§ãã¾ããã
ããã«ãã£ã¦èµ·ããåé¡ã¯ä¾ãã°ã¢ããªã±ã¼ã·ã§ã³ã管çç¨API ã Pod ã§ã®ã¿å±éããããã«æå³ã㦠lo
ã«bind ãã¦ããå ´åã§ã Istio 1.9 以åã¯ä»ã® Pod ãããªã¯ã¨ã¹ããã§ãã¦ãã¾ãã¾ãã
ããã¾ã§ã®è©±ãä»ã® Pod ãããªã¯ã¨ã¹ããå¯è½ãã©ããã§ãã¼ãã«ã«ã¾ã¨ãã¾ããã
Istio ãªã | Istio 1.9 以å | Istio 1.10 以é | |
---|---|---|---|
ã¯ã¤ã«ãã«ã¼ã | ⯠| ⯠| ⯠|
lo | â | ⯠| â |
eth0 | ⯠| â | ⯠|
表ãè¦ã¦ããã ãã¨åããããã«ä»åã®å¤æ´ã«ãã£ã¦ Istio 1.10 以é㯠Istio ãªãã®å ´åã¨æåãå¤ãããªããããèªç¥è² è·ãæ¸ãä»ã¾ã§ããã Istio ãæ¡ç¨ããããªã£ãã®ã§ã¯ãªãã§ããããã
ããã¾ã§ Istio 1.10 ããå¤æ´ã«ãªã£ã Inbound Fowarding ã®å
容ãè¦ã¦ãã¾ããã
次ã«ãã®å¤æ´ã«ãã£ã¦ç§éã®ãµã¼ãã¹ã«èµ·ããåé¡ãå
±æãã¦ããã¾ãã
èµ·ããåé¡
ä»åã®å¤æ´ã«ãã£ã¦ã¢ããªã±ã¼ã·ã§ã³ãåããªããªãã±ã¼ã¹ã¨ãã¦ã¯ãã¢ããªã±ã¼ã·ã§ã³ã lo
ã«ã®ã¿ bind ãã¦ããå ´åã§ãã
Istio ã§ã¯ãããäºåã«ãã§ãã¯ããããã®ã³ãã³ããç¨æãã¦ãã istioctl experimental precheck
ãå®è¡ãã¾ãã
該å½ãã Pod ãããå ´åã«ã¯ IST0143 ã¨ãã message code ãåºåããã¾ãã
該å½ãã Pod ããã£ãå ´åã®è§£æ±ºæ¹æ³ã¯å
¬å¼ã®ããã¥ã¡ã³ãã«è¨è¼ããã¦ãã¾ãã®ã§ãã¡ããã覧ãã ããã
ã¡ã«ã«ãªã§ã¯ãã®ã³ãã³ãã®å®è¡ã§è©²å½ãã Pod ã¯ããã¾ããã§ããã
ãã®ããéçºç°å¢ã§ 1.10 ã«ã¢ããã°ã¬ã¼ãããã®ã§ãããä¸é¨ã®ã¢ããªã±ã¼ã·ã§ã³ã§åé¡ãçºçãã¾ããã
ä¸è¨ã¯å®éã®ã³ã¼ãã¨ã¯å ¨ãç°ãªããã®ã§ãããåé¡ãåç¾ããã³ã¼ãã§ãã
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
host, _, _ := net.SplitHostPort(r.RemoteAddr)
ip := net.ParseIP(host)
_, ipnet, _ := net.ParseCIDR("127.0.0.1/32")
if ipnet.Contains(ip) {
// something
}
})
åã Pod å
ã«ãã Envoy ããªã¯ã¨ã¹ããã¢ããªã±ã¼ã·ã§ã³ã«ãªãã¤ã¬ã¯ããããã fowarded IP 㯠127.0.0.1
ã«ãªãã¾ãã
ãã®ããä¸è¨ã®ã³ã¼ãã§ã¯ // something
ãå¦çããã¾ãã
ããã Istio 1.10 ã§ã¯ // something
ã¯å¦çãããªããªãã¾ããã
ã¢ããªã±ã¼ã·ã§ã³ã®ãã°ãè¦ãã¨ãã fowarded IP ã 127.0.0.1
ãã 127.0.0.6
ã«ãªã£ã¦ãããã¨ããããã¾ããã
解決ç
RFC ã§ã¯ 127.0.0.0/8
㯠loopback address ã«ãªãã¾ãã
https://datatracker.ietf.org/doc/html/rfc6890#page-6
ãã®ãã net.ParseCIDR("127.0.0.1/32")
ã¨ãªã£ã¦ããé¨åã net.ParseCIDR("127.0.0.0/8")
ã¨å¤æ´ããã®ã¯çã«ããªã£ã¦ãããã§ãã
ããã§åé¡ã¯è§£æ±ºã¨ãªãã®ã§ãããï¼ã¤çåãæ®ãã¾ãã
ãªã fowarded IP ã 127.0.0.1
ãã 127.0.0.6
ã«å¤ãã£ãã®ã§ããããï¼
fowarded IP ã 127.0.0.1
ããã127.0.0.6
ã«å¤æ´ãããçç±
ã¾ã㯠Envoy ã®è¨å®ã Istio 1.9 㨠Istio 1.10 ã§ã©ã®ããã«å¤ãã£ãã®ãã確èªãã¾ãã
Istio 1.9 㨠1.10 㧠istioctl proxy-config cluster --output json [pod name]
ãå®è¡ããçµæã®å·®åãä¸è¨ã«è¨è¼ãã¦ãã¾ãã
ã¾ãä»å㯠8080 port ã« bind ããã¢ããªã±ã¼ã·ã§ã³ã使ã£ã¦æ¤è¨¼ããã®ã§ã 8080 port ã«é¢é£ããè¨å®ã®ã¿ãæç²ãã¦ãã¾ãã
â diff <(cat prior-istio1.10 | jq --sort-keys) <(cat istio1.10 | jq --sort-keys)
14a15
> "cleanup_interval": "60s",
16,34c17
< "load_assignment": {
< "cluster_name": "inbound|8080||",
< "endpoints": [
< {
< "lb_endpoints": [
< {
< "endpoint": {
< "address": {
< "socket_address": {
< "address": "127.0.0.1",
< "port_value": 8080
< }
< }
< }
< }
< ]
< }
< ]
< },
---
> "lb_policy": "CLUSTER_PROVIDED",
49c32,38
< "type": "STATIC"
---
> "type": "ORIGINAL_DST",
> "upstream_bind_config": {
> "source_address": {
> "address": "127.0.0.6",
> "port_value": 0
> }
> }
ã¾ã注ç®ããã®ã type ã STATIC
ãã ORIGINAL_DST
ã«å¤æ´ã«ãªã£ãç¹ã§ãã
eth0
ã« bind ããã¦ãã Envoy 㯠STATIC
ã®å ´åã¯ãªã¯ã¨ã¹ãã load_assignment
ã®è¨å®ã«å¾ã£ã¦ lo
ã«ãªãã¤ã¬ã¯ããã¦ãã¾ããããORIGINAL_DST
ã«ãã£ã¦ eth0
ã«ãã®ã¾ã¾ãªãã¤ã¬ã¯ãããããã«ãªãã¾ããã
ããã¦ä»å fowarded IP ã 127.0.0.6
ã«ãªã£ãçç±ãç¥ãããã«éè¦ãªã®ã Istio 1.10 ã§è¿½å ããã upstream_bind_config
ã§ãã
ãã®è¨å®ã«ãã£ã¦ Envoy ã upstream ã¨æ¥ç¶ã確ç«ããã¨ãã« 127.0.0.6
ã使ç¨ãããããã«ãªãã¾ãã
ããã§ãªã fowarded IP ã 127.0.0.6
ã«å¤ãã£ãã®ããè¨å®ã®å·®åãã確èªãããã¨ãã§ãã¾ããã
ãããèå¿ã®ãªããã®å¤æ´ãããå¿
è¦ããã£ãã®ãã¯åãã£ã¦ãã¾ããã
ããã«èª¿æ»ãè¡ãããã®æ©è½ãå®è£
ãããæã® Design Doc ãçºè¦ãã¾ããã
ããã«ã¯åé ã§è§£èª¬ãããã㪠Inbound Fowarding ãå¤æ´ããèæ¯ãè¨è¨ã移è¡è¨ç»ãªã©ãè¨è¼ããã¦ãã¾ãã
https://docs.google.com/document/d/1j-5_XpeMTnT9mV_8dbSOeU7rfH-5YNtN_JJFZ2mmQ_w/
ãã®ä¸ã«ä»å 127.0.0.6
ã«ããçç±ãè¨è¼ããã¦ãã¾ããã
Inbound clusters will be changed from STATIC to ORIGINAL_DST. Additionally, the UpstreamBindConfig will be modified to the "magic" 127.0.0.6 address. This is to avoid iptables loops; we have some special logic that will allow calls from Envoy to go back to themselves so that for calls from app -> app, we hit outbound and inbound paths. The 127.0.0.6 address allows short-circuiting this by returning early if the source IP is 127.0.0.6.
https://docs.google.com/document/d/1j-5_XpeMTnT9mV_8dbSOeU7rfH-5YNtN_JJFZ2mmQ_w/edit#heading=h.b4lo2pn1czhy
Envoy ã«ã¯èªåèªèº«ãå¼ã³åºããã¸ãã¯ãããã仮㫠127.0.0.1
ã使ã£ã¦ãã¾ã㨠iptables ã§ã«ã¼ããèµ·ãã¾ãããããé²ãããã« 127.0.0.6
ã¨ãã IP address ã使ç¨ããããã§ãã
ããã§ãªã 127.0.0.6
ã«å¤æ´ããå¿
è¦ããã£ãã®ãåããã¾ããã
è¨äºã¨ãã¦ã¯ããã§çµããã§ãè¯ãã®ã§ããããªã 127.0.0.1
ã使ã㨠iptables ã§ã«ã¼ããèµ·ããã®ããç¥ããã¨ãã§ããã¨ãåæã«ã©ã®ããã« Pod å
ã§ãªã¯ã¨ã¹ããã¢ããªã±ã¼ã·ã§ã³ã¸å°éããã®ããç解ãããã¨ãã§ããã¨æã£ãã®ã§ã iptables ãè¦ã¦ä»åã®åé¡ãç解ãããã¨ã«ãã¾ããã
iptables ããç解ãã Inbound Fowarding ã®å¤æ´
iptables ãè¦ã¦ããåã«ç¾ç¶ã®ãã¤ã³ãããããããã¾ãã
- Istio 1.10 ãã Envoy ã¯
lo
ããeth0
ã«ãªã¯ã¨ã¹ãããªãã¤ã¬ã¯ãããããã«ãªã£ã - Envoy ã fowarding ããéã® IP address ã
127.0.0.1
ãã127.0.0.6
ã«ãªã£ã
ä¸è¨ã®åºå㯠Istio ã使ç¨ãã¦ãã Pod å ã® iptables 㧠nat table ã®å Chain ã¨ãã®ã«ã¼ã«ã表示ãããã®ã§ãã
Chain PREROUTING (policy ACCEPT 49 packets, 2940 bytes)
pkts bytes target prot opt in out source destination
1876 113K ISTIO_INBOUND tcp -- any any anywhere anywhere
Chain INPUT (policy ACCEPT 1876 packets, 113K bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 1908 packets, 115K bytes)
pkts bytes target prot opt in out source destination
1846 111K ISTIO_OUTPUT tcp -- any any anywhere anywhere
Chain POSTROUTING (policy ACCEPT 1908 packets, 115K bytes)
pkts bytes target prot opt in out source destination
Chain ISTIO_INBOUND (1 references)
pkts bytes target prot opt in out source destination
0 0 RETURN tcp -- any any anywhere anywhere tcp dpt:15008
0 0 RETURN tcp -- any any anywhere anywhere tcp dpt:ssh
5 300 RETURN tcp -- any any anywhere anywhere tcp dpt:15090
43 2580 RETURN tcp -- any any anywhere anywhere tcp dpt:15021
1 60 RETURN tcp -- any any anywhere anywhere tcp dpt:15020
1827 110K ISTIO_IN_REDIRECT tcp -- any any anywhere anywhere
Chain ISTIO_IN_REDIRECT (3 references)
pkts bytes target prot opt in out source destination
1827 110K REDIRECT tcp -- any any anywhere anywhere redir ports 15006
Chain ISTIO_OUTPUT (1 references)
pkts bytes target prot opt in out source destination
0 0 RETURN all -- any lo 127.0.0.6 anywhere
0 0 ISTIO_IN_REDIRECT all -- any lo anywhere !localhost owner UID match 1337
0 0 RETURN all -- any lo anywhere anywhere ! owner UID match 1337
1846 111K RETURN all -- any any anywhere anywhere owner UID match 1337
0 0 ISTIO_IN_REDIRECT all -- any lo anywhere !localhost owner GID match 1337
0 0 RETURN all -- any lo anywhere anywhere ! owner GID match 1337
0 0 RETURN all -- any any anywhere anywhere owner GID match 1337
0 0 RETURN all -- any any anywhere localhost
0 0 ISTIO_REDIRECT all -- any any anywhere 10.33.0.0/16
0 0 ISTIO_REDIRECT all -- any any anywhere 10.32.128.0/20
0 0 RETURN all -- any any anywhere anywhere
Chain ISTIO_REDIRECT (2 references)
pkts bytes target prot opt in out source destination
0 0 REDIRECT tcp -- any any anywhere anywhere redir ports 15001
Istio ã¯ãµã¤ãã«ã¼ã¨ãã¦èµ·åããã³ã³ããã ãã§ãªã Init Containers 㧠ISTIO_INBOUND
ãªã© Istio åºæã® Chain ã iptables ã«è¨å®ããã³ã³ããã追å ãã¾ãã
ãããã追å ããããã¨ã«ãã£ã¦ã¢ããªã±ã¼ã·ã§ã³ã®å¤æ´ãªãã« inbound, outbound ã®ä¸¡æ¹ã Istio çµç±ã«ãããã¨ãã§ãã¾ãã
ãã®ä¸è¦§ãè¦ã¦ãèªåã¯ãªãã«ã¼ããã¦ãã¾ãã®ãç解ã§ããªãã£ãã®ã§å³ãæ¸ãã¦æ´çãã¦ã¿ã¾ããã
ããããã¯ä¸è¨ã®ã±ã¼ã¹ã«ããã¦ãä»ã® Pod ãããªã¯ã¨ã¹ããããæã« iptables ã®ã©ã®ã«ã¼ã«ãè©ä¾¡ããã¦ãã£ã¦æçµçã«ã¢ããªã±ã¼ã·ã§ã³ã«ãªã¯ã¨ã¹ããå°éããããè¦ã¦ããã¾ãã
- Istio 1.9
- Istio 1.10 (fowarded IP: 127.0.0.6)
- Istio 1.10 (fowarded IP: 127.0.0.1)
Istio 1.9
ãªã¯ã¨ã¹ãã¯ã¾ã PREROUTING -> ISTIO_INBOUND -> ISTIO_IN_REDIRECT ã¨é çªã«éã Envoy ã¸ã¨ãªãã¤ã¬ã¯ãããã¾ãã
ISTIO_INBOUND 㨠ISTIO_IN_REDIRECT 㧠port ã 150 ããã¯ãã¾ãã«ã¼ã«ãè¨è¼ããã¦ãã¾ãããããã㯠Envoy ã listen ãã¦ãããport ã§ãã
ããããã®ç¨éã¯å
¬å¼ããã¥ã¡ã³ããã覧ãã ããã
https://istio.io/latest/docs/ops/deployment/requirements/#ports-used-by-istio
Envoy ã«ãªã¯ã¨ã¹ããå°éå¾ Envoy ã¯ããã 127.0.0.1
ã¸ã¨ãªãã¤ã¬ã¯ããã¾ãã
OUTPUT -> ISTIO_OUTPUT -> POSTROUTING ã¨ã«ã¼ã«ãè©ä¾¡ããã¦æçµçã«ã¢ããªã±ã¼ã·ã§ã³ã¸ã¨ãªã¯ã¨ã¹ããå°éãã¾ãã
ããã§éè¦ãªã®ã ISTIO_OUTPUT ã§ãã
owner UID match 1337
ã¨æ¸ããã¦ãã¾ããã ãã㯠UID ã 1337 ã®æã«ä¸è´ããã«ã¼ã«ã«ãªã£ã¦ãã¾ãã
UID 1337 㯠istio-proxy
ã¨ããã¦ã¼ã¶ã¼ã§ãã
Envoy 㯠127.0.0.1
ã¸ã¨ãªãã¤ã¬ã¯ãããã®ã§ destination 㯠localhost ã®ãã ISTIO_OUTPUT ã®4ã¤ç®ã®ã«ã¼ã«ãä¸è´ãããã RETURN
ãããã¢ããªã±ã¼ã·ã§ã³ã¸ã¨ãªã¯ã¨ã¹ããå°éãã¾ãã
Istio 1.10 (fowarded IP: 127.0.0.6)
Istio 1.10 ããå¤æ´ã«ãªã£ã Inbound Forwarding ãè¦ã¦ããã¾ãã
Envoy ã«å°éããã¾ã§ã¯ Istio 1.9 ã¨å¤ããã¾ããã
ããããå
ã® Envoy ã eth0
ã«ãªãã¤ã¬ã¯ãã fowarded IP ã 127.0.0.6
ã«ãªãé¨åã Istio 1.9 ã¨ç°ãªãã¾ãã
ãã®å¤æ´ã«ãã£ã¦ ISTIO_OUTPUT ã§ä¸è´ããã«ã¼ã«ãå¤ããã¾ãã
ã«ã¼ã«ä¸è¦§ãè¦ã¦ããã ãã¨å¯ä¸ source ã 127.0.0.6
ã®æã«ä¸è´ããã«ã¼ã«ãåå¨ãã¾ãã
ããã« Istio 1.10 ã§ã¯è©²å½ãããã RETURN
ãããã¢ããªã±ã¼ã·ã§ã³ã¸ã¨ãªã¯ã¨ã¹ããå°éãã¾ãã
Istio 1.9 ã®æã¨æ¯ã¹ãã¨è©ä¾¡ãããã«ã¼ã«ã¯ç°ãªãã¾ããã 1.9 㨠1.10 ã§éã chain ã®æ°ã¯å¤ãããªããã¨ããããã¾ãã
Istio 1.10 (fowarded IP: 127.0.0.1)
æå¾ã« Istio 1.10 㧠fowarded IP ã 127.0.0.1 ã®å ´åã«ãªãã«ã¼ããèµ·ããã®ããè¦ã¦ããã¾ãã
ä»å㯠Envoy ã 127.0.0.6
ã§ã¯ãªã 127.0.0.1
ã使ãã®ã§å
ç¨ä¸è´ãã ISTIO_OUTPUT ã®1çªæåã®ã«ã¼ã«ã«ã¯ä¸è´ãã¾ããã
ãã®ä»£ããã«2çªç®ã®ã«ã¼ã«ã«ä¸è´ãã¾ãã
ãã®çµæ ISTIO_OUTPUT ã§ã¯ RETURN
ãããã« ISTIO_IN_REDIRECT ãè©ä¾¡ããåã³ Envoy ã¸ã¨ãªã¯ã¨ã¹ããæ»ãã¾ãã
ããã Design Doc ã®ä¸ã§è§¦ãããã¦ãã iptables ã®ã«ã¼ãã ã¨æããã¾ãã
ã¾ã¨ã
ä»å㯠Istio 1.10 ããå¤æ´ããã Inbound Forwarding ãã¡ã«ã«ãªå ã§èµ·ããåé¡ã®èª¿æ»ãããªããç解ãæçµçã«ã¯ iptables ã確èªãã¾ããã
ä»åã®ããã«ç§é Network ãã¼ã ã¯ã¡ã«ã«ãªã§ Istio ã管çããç«å ´ã¨ãã¦æ°ããæ©è½ãå¤æ´ãå
¥ã£ãæã«ããã ãªãªã¼ã¹ãã¼ããè¦ã¦å
容ãææ¡ããã ãã§ãªããµã¼ãã¹ã«ã©ãå½±é¿ãããã®ãæ³åãã¦ããå¿
è¦ãããã¾ãã
ããã¯ç°¡åãªãã¨ã§ã¯ãªãã§ããã楽ãããã¨ã ã¨å人çã«ã¯æã£ã¦ãã¾ãï¼
ããééã£ã¦ããç®æãªã©ãçºè¦ãããæ¹ã¯ hatappi ã¾ã§ DM ãã¦ããã ããã¨ç§ã®åå¼·ã«ããªãã®ã§ããæ°è»½ã«ãé£çµ¡ããã ããã¨å¬ããã§ãï¼
æå¾ã¾ã§èªãã§ããã ããããã¨ããããã¾ããï¼