mirror of https://github.com/istio/istio.io.git
106 lines
28 KiB
HTML
106 lines
28 KiB
HTML
<!doctype html><html lang=en itemscope itemtype=https://schema.org/WebPage><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=theme-color content="#466BB0"><meta name=title content="Support for Dual Stack Kubernetes Clusters"><meta name=description content="Experimental support for Dual Stack Kubernetes Clusters."><meta name=author content="Steve Zhang (Intel), Alex Xu (Intel), Iris Ding (Intel), Jacob Delgado (F5), Ying-chun Cai (formerly F5)"><meta name=keywords content="microservices,services,mesh,dual-stack"><meta property="og:title" content="Support for Dual Stack Kubernetes Clusters"><meta property="og:type" content="website"><meta property="og:description" content="Experimental support for Dual Stack Kubernetes Clusters."><meta property="og:url" content="/v1.17/blog/2023/experimental-dual-stack/"><meta property="og:image" content="https://raw.githubusercontent.com/istio/istio.io/master/static/img/istio-social.svg"><meta property="og:image:alt" content="Istio Logo"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="600"><meta property="og:site_name" content="Istio"><meta name=twitter:card content="summary"><meta name=twitter:site content="@IstioMesh"><title>Istioldie 1.17 / Support for Dual Stack Kubernetes Clusters</title><script async src="https://www.googletagmanager.com/gtag/js?id=UA-98480406-2"></script>
|
|
<script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}gtag("js",new Date),gtag("config","UA-98480406-2")</script><link rel=alternate type=application/rss+xml title="Istio Blog" href=/v1.17/blog/feed.xml><link rel=alternate type=application/rss+xml title="Istio News" href=/v1.17/news/feed.xml><link rel=alternate type=application/rss+xml title="Istio Blog and News" href=/v1.17/feed.xml><link rel="shortcut icon" href=/v1.17/favicons/favicon.ico><link rel=apple-touch-icon href=/v1.17/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/v1.17/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/v1.17/favicons/favicon-32x32.png sizes=32x32><link rel=icon type=image/png href=/v1.17/favicons/android-36x36.png sizes=36x36><link rel=icon type=image/png href=/v1.17/favicons/android-48x48.png sizes=48x48><link rel=icon type=image/png href=/v1.17/favicons/android-72x72.png sizes=72x72><link rel=icon type=image/png href=/v1.17/favicons/android-96x96.png sizes=96xW96><link rel=icon type=image/png href=/v1.17/favicons/android-144x144.png sizes=144x144><link rel=icon type=image/png href=/v1.17/favicons/android-192x192.png sizes=192x192><link rel=icon type=image/svg+xml href=/v1.17/favicons/favicon.svg><link rel=icon type=image/png href=/v1.17/favicons/favicon.png><link rel=mask-icon href=/v1.17/favicons/safari-pinned-tab.svg color=#466bb0><link rel=manifest href=/v1.17/manifest.json><meta name=apple-mobile-web-app-title content="Istio"><meta name=application-name content="Istio"><meta name=msapplication-config content="/browserconfig.xml"><meta name=msapplication-TileColor content="#466BB0"><meta name=theme-color content="#466BB0"><link rel=stylesheet href=/v1.17/css/all.css><link rel=preconnect href=https://fonts.googleapis.com><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css2?family=Barlow:ital,wght@0,400;0,500;0,600;0,700;1,400;1,600&display=swap"><script src=/v1.17/js/themes_init.min.js></script></head><body class="language-unknown archive-site"><script>const branchName="release-1.17",docTitle="Support for Dual Stack Kubernetes Clusters",iconFile="/v1.17/img/icons.svg",buttonCopy="Copy to clipboard",buttonPrint="Print",buttonDownload="Download"</script><script src="https://www.google.com/cse/brand?form=search-form" defer></script>
|
|
<script src=/v1.17/js/all.min.js data-manual defer></script><header class=main-navigation><nav class="main-navigation-wrapper container-l"><div class=main-navigation-header><a id=brand href=/v1.17/ aria-label=logotype><span class=logo><svg xmlns="http://www.w3.org/2000/svg" width="128" height="60" viewBox="0 0 128 60"><path d="M58.434 48.823A.441.441.0 0158.3 48.497V22.583a.444.444.0 01.134-.326.446.446.0 01.327-.134h3.527a.447.447.0 01.325.134.447.447.0 01.134.326v25.914a.443.443.0 01-.134.326.444.444.0 01-.325.134h-3.527a.444.444.0 01-.327-.134z"/><path d="m70.969 48.477a6.556 6.556.0 01-2.818-1.955 4.338 4.338.0 01-1-2.78v-.345a.443.443.0 01.134-.326.444.444.0 01.326-.135h3.374a.444.444.0 01.326.135.445.445.0 01.134.326v.077a2.014 2.014.0 001.054 1.667 4.672 4.672.0 002.664.709 4.446 4.446.0 002.492-.633 1.862 1.862.0 00.958-1.591 1.426 1.426.0 00-.786-1.322 12.7 12.7.0 00-2.549-.939l-1.457-.46a21.526 21.526.0 01-3.3-1.227 6.57 6.57.0 01-2.262-1.783 4.435 4.435.0 01-.92-2.894 5.081 5.081.0 012.109-4.275 8.993 8.993.0 015.558-1.591 10.445 10.445.0 014.1.748 6.3 6.3.0 012.722 2.07 5 5 0 01.958 3.009.441.441.0 01-.134.326.441.441.0 01-.325.134h-3.258a.441.441.0 01-.326-.134.443.443.0 01-.134-.326 1.974 1.974.0 00-.978-1.667 4.647 4.647.0 00-2.665-.671 4.741 4.741.0 00-2.435.556 1.724 1.724.0 00-.938 1.553 1.512 1.512.0 00.9 1.4 15.875 15.875.0 003.01 1.055l.843.229a27.368 27.368.0 013.412 1.246 6.67 6.67.0 012.338 1.763 4.387 4.387.0 01.958 2.933 4.988 4.988.0 01-2.146 4.275 9.543 9.543.0 01-5.712 1.552 11.626 11.626.0 01-4.227-.709z"/><path d="m97.039 32.837a.443.443.0 01-.326.135h-3.911a.169.169.0 00-.191.192v9.239a2.951 2.951.0 00.632 2.108 2.7 2.7.0 002.013.652h1.15a.444.444.0 01.325.134.441.441.0 01.134.326v2.875a.471.471.0 01-.459.5l-1.994.039a8 8 0 01-4.524-1.035q-1.495-1.035-1.533-3.91V33.166A.17.17.0 0088.164 32.974H85.978A.441.441.0 0185.652 32.839.441.441.0 0185.518 32.513V29.83a.441.441.0 01.134-.326.444.444.0 01.326-.135h2.186a.169.169.0 00.191-.192v-4.485a.438.438.0 01.134-.326.44.44.0 01.325-.134h3.336a.443.443.0 01.325.134.442.442.0 01.135.326v4.485a.169.169.0 00.191.192h3.911a.446.446.0 01.326.135.446.446.0 01.134.326v2.683a.446.446.0 01-.133.324z"/><path d="m101.694 25.917a2.645 2.645.0 01-.767-1.955 2.65 2.65.0 01.767-1.955 2.65 2.65.0 011.955-.767 2.65 2.65.0 011.955.767 2.652 2.652.0 01.767 1.955 2.647 2.647.0 01-.767 1.955 2.646 2.646.0 01-1.955.767 2.645 2.645.0 01-1.955-.767zm-.211 22.906a.441.441.0 01-.134-.326V29.79a.444.444.0 01.134-.326.446.446.0 01.326-.134h3.527a.446.446.0 01.326.134.445.445.0 01.134.326v18.707a.443.443.0 01-.134.326.443.443.0 01-.326.134h-3.527a.443.443.0 01-.326-.134z"/><path d="m114.019 47.734a8.1 8.1.0 01-3.047-4.255 14.439 14.439.0 01-.652-4.37 14.3 14.3.0 01.614-4.371A7.869 7.869.0 01114 30.56a9.072 9.072.0 015.252-1.5 8.543 8.543.0 015.041 1.5 7.985 7.985.0 013.009 4.14 12.439 12.439.0 01.69 4.37 13.793 13.793.0 01-.651 4.37 8.255 8.255.0 01-3.028 4.275 8.475 8.475.0 01-5.1 1.553 8.754 8.754.0 01-5.194-1.534zm7.629-3.1a4.536 4.536.0 001.476-2.262 11.335 11.335.0 00.383-3.221 10.618 10.618.0 00-.383-3.22 4.169 4.169.0 00-1.457-2.243 4.066 4.066.0 00-2.531-.785 3.942 3.942.0 00-2.453.785 4.376 4.376.0 00-1.5 2.243 11.839 11.839.0 00-.383 3.22 11.84 11.84.0 00.383 3.221 4.222 4.222.0 001.476 2.262 4.075 4.075.0 002.549.8 3.8 3.8.0 002.44-.809z"/><path d="m15.105 32.057v15.565a.059.059.0 01-.049.059L.069 50.25A.06.06.0 01.005 50.167l14.987-33.47a.06.06.0 01.114.025z"/><path d="m17.631 23.087v24.6a.06.06.0 00.053.059l22.449 2.507a.06.06.0 00.061-.084L17.745.032a.06.06.0 00-.114.024z"/><path d="m39.961 52.548-24.833 7.45a.062.062.0 01-.043.0L.079 52.548a.059.059.0 01.026-.113h39.839a.06.06.0 01.017.113z"/></svg></span></a><button id=hamburger class=main-navigation-toggle aria-label="Open navigation"><svg class="icon menu-hamburger"><use xlink:href="/v1.17/img/icons.svg#menu-hamburger"/></svg></button>
|
|
<button id=menu-close class=main-navigation-toggle aria-label="Close navigation"><svg class="icon menu-close"><use xlink:href="/v1.17/img/icons.svg#menu-close"/></svg></button></div><div id=header-links class=main-navigation-links-wrapper><ul class=main-navigation-links><li class=main-navigation-links-item><a class="main-navigation-links-link has-dropdown"><span>About</span><svg class="icon dropdown-arrow"><use xlink:href="/v1.17/img/icons.svg#dropdown-arrow"/></svg></a><ul class=main-navigation-links-dropdown><li class=main-navigation-links-dropdown-item><a href=/v1.17/about/service-mesh class=main-navigation-links-link>Service mesh</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.17/about/solutions class=main-navigation-links-link>Solutions</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.17/about/case-studies class=main-navigation-links-link>Case studies</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.17/about/ecosystem class=main-navigation-links-link>Ecosystem</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.17/about/deployment class=main-navigation-links-link>Deployment</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.17/about/faq class=main-navigation-links-link>FAQ</a></li></ul></li><li class=main-navigation-links-item><a href=/v1.17/blog/ class=main-navigation-links-link><span>Blog</span></a></li><li class=main-navigation-links-item><a href=/v1.17/news/ class=main-navigation-links-link><span>News</span></a></li><li class=main-navigation-links-item><a href=/v1.17/get-involved/ class=main-navigation-links-link><span>Get involved</span></a></li><li class=main-navigation-links-item><a href=/v1.17/docs/ class=main-navigation-links-link><span>Documentation</span></a></li></ul><div class=main-navigation-footer><button id=search-show class=search-show title='Search this site' aria-label=Search><svg class="icon magnifier"><use xlink:href="/v1.17/img/icons.svg#magnifier"/></svg></button>
|
|
<a href=/v1.17/docs/setup/getting-started class="btn btn--primary" id=try-istio>Try Istio</a></div></div><form id=search-form class=search name=cse role=search><input type=hidden name=cx value=002184991200833970123:iwwf17ikgf4>
|
|
<input type=hidden name=ie value=utf-8>
|
|
<input type=hidden name=hl value=en>
|
|
<input type=hidden id=search-page-url value=/search>
|
|
<input id=search-textbox class="search-textbox form-control" name=q type=search aria-label='Search this site' placeholder=Search>
|
|
<button id=search-close title='Cancel search' type=reset aria-label='Cancel search'><svg class="icon menu-close"><use xlink:href="/v1.17/img/icons.svg#menu-close"/></svg></button></form></nav></header><div class=banner-container><a href=/v1.17/news/releases/1.17.x/announcing-1.17.3/ class=banner data-title="Latest Release-2023-06-06 00:00:00 +0000 UTC" data-period-start=1686009600000 data-period-end=1686614400000 data-max-impressions=3 data-timeout><div class=content><p>Istio 1.17.3 is now available! Click here to learn more</p></div><div class=frame></div></a></div><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=header-content><h1>Support for Dual Stack Kubernetes Clusters</h1><p>Experimental support for Dual Stack Kubernetes Clusters.</p></div><p class=post-author>Mar 10, 2023 <span>|</span> By Steve Zhang - Intel, Alex Xu - Intel, Iris Ding - Intel, Jacob Delgado - F5, Ying-chun Cai - formerly F5</p><div><p>Over the past year, both Intel and F5 have collaborated on an effort to bring support for
|
|
<a href=https://kubernetes.io/docs/concepts/services-networking/dual-stack/>Kubernetes Dual-Stack networking</a> to Istio.</p><h2 id=background>Background</h2><p>The journey has taken us longer than anticipated and we continue to have work to do. The team initially started with a design based
|
|
on a reference implementation from F5. The design led to an <a href="https://docs.google.com/document/d/1oT6pmRhOw7AtsldU0-HbfA0zA26j9LYiBD_eepeErsQ/edit?usp=sharing">RFC</a> that caused us to re-examine our approach. Notably, there were concerns about memory and performance issues that the community wanted
|
|
to be addressed before implementation. The original design had to duplicate Envoy configuration for listeners, clusters, routes and endpoints. Given that many people already experience Envoy memory and CPU consumption issues, early feedback wanted us to completely re-evaluate this approach. Many proxies transparently handle outbound dual-stack traffic regardless of how the traffic was originated. Much of the earliest feedback was to implement the same behavior in Istio and Envoy.</p><h2 id=redefining-dual-stack-support>Redefining Dual Stack Support</h2><p>Much of the feedback provided by the community for the original RFC was to update Envoy to better support dual-stack use cases
|
|
internally instead of supporting this within Istio. This has led us to a <a href="https://docs.google.com/document/d/15LP2XHpQ71ODkjCVItGacPgzcn19fsVhyE7ruMGXDyU/edit?usp=sharing">new design</a> where we have taken lessons learned as well as feedback and have applied them to fit a simplified design.</p><h2 id=support-for-dual-stack-in-istio-117>Support for Dual Stack in Istio 1.17</h2><p>We have worked with the Envoy community to address numerous concerns which is a reason why dual-stack enablement has
|
|
taken us a while to implement. We have implemented <a href=https://github.com/envoyproxy/envoy/issues/16804>matched IP Family for outbound listener</a>
|
|
and <a href=https://github.com/envoyproxy/envoy/issues/11184>supported multiple addresses per listener</a>. Alex Xu has also
|
|
been working fervently to get long outstanding issues resolved, with the ability for Envoy to have a
|
|
<a href=https://github.com/envoyproxy/envoy/issues/21640>smarter way to pick endpoints for dual-stack</a>. Some of these improvements
|
|
to Envoy, such as the ability to <a href=https://github.com/envoyproxy/envoy/pull/23496>enable socket options on multiple addresses</a>,
|
|
have landed in the Istio 1.17 release (e.g. <a href=https://github.com/istio/istio/pull/41618>extra source addresses on inbound clusters</a>).</p><p>The Envoy API changes made by the team can be found at their site at <a href="https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/listener/v3/listener.proto.html?highlight=additional_addresses">Listener addresses</a> and <a href=https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/address.proto#config-core-v3-bindconfig>bind config</a>. Making sure we can have proper support at both the downstream and upstream connection for Envoy is important for realizing
|
|
dual-stack support.</p><p>In total the team has submitted over a dozen PRs to Envoy and are working on at least a half dozen more to make Envoy adoption of
|
|
dual stack easier for Istio.</p><p>Meanwhile, on the Istio side you can track the progress in <a href=https://github.com/istio/istio/issues/40394>Issue #40394</a>.
|
|
Progress has slowed down a bit lately as we continue working with Envoy on various issues, however, we are happy to
|
|
announce experimental support for dual stack in Istio 1.17!</p><h2 id=a-quick-experiment-using-dual-stack>A Quick Experiment using Dual Stack</h2><ol><li><p>Enable dual stack experimental support on Istio 1.17.0+ with the following:</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ istioctl install -f - <<EOF
|
|
apiVersion: install.istio.io/v1alpha1
|
|
kind: IstioOperator
|
|
spec:
|
|
meshConfig:
|
|
defaultConfig:
|
|
proxyMetadata:
|
|
ISTIO_AGENT_DUAL_STACK: "true"
|
|
values:
|
|
pilot:
|
|
env:
|
|
ISTIO_DUAL_STACK: "true"
|
|
EOF
|
|
</code></pre></li><li><p>Create three namespaces:</p><ul><li><code>dual-stack</code>: <code>tcp-echo</code> will listen on both an IPv4 and IPv6 address.</li><li><code>ipv4</code>: <code>tcp-echo</code> will listen on only an IPv4 address.</li><li><code>ipv6</code>: <code>tcp-echo</code> will listen on only an IPv6 address.</li></ul><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ kubectl create namespace dual-stack
|
|
$ kubectl create namespace ipv4
|
|
$ kubectl create namespace ipv6
|
|
</code></pre></li><li><p>Enable sidecar injection on all of those namespaces as well as the default namespace:</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ kubectl label --overwrite namespace default istio-injection=enabled
|
|
$ kubectl label --overwrite namespace dual-stack istio-injection=enabled
|
|
$ kubectl label --overwrite namespace ipv4 istio-injection=enabled
|
|
$ kubectl label --overwrite namespace ipv6 istio-injection=enabled
|
|
</code></pre></li><li><p>Create <code>tcp-echo</code> deployments in the namespaces:</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ kubectl apply --namespace dual-stack -f https://raw.githubusercontent.com/istio/istio/release-1.17/samples/tcp-echo/tcp-echo-dual-stack.yaml
|
|
$ kubectl apply --namespace ipv4 -f https://raw.githubusercontent.com/istio/istio/release-1.17/samples/tcp-echo/tcp-echo-ipv4.yaml
|
|
$ kubectl apply --namespace ipv6 -f https://raw.githubusercontent.com/istio/istio/release-1.17/samples/tcp-echo/tcp-echo-ipv6.yaml
|
|
</code></pre></li><li><p>Create sleep deployment in the default namespace:</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.17/master/samples/sleep/sleep.yaml
|
|
</code></pre></li><li><p>Verify the traffic:</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ kubectl exec -it "$(kubectl get pod -l app=sleep -o jsonpath='{.items[0].metadata.name}')" -- sh -c "echo dualstack | nc tcp-echo 9000"
|
|
hello dualstack
|
|
$ kubectl exec -it "$(kubectl get pod -l app=sleep -o jsonpath='{.items[0].metadata.name}')" -- sh -c "echo ipv4 | nc tcp-echo.ipv4 9000"
|
|
hello ipv4
|
|
$ kubectl exec -it "$(kubectl get pod -l app=sleep -o jsonpath='{.items[0].metadata.name}')" -- sh -c "echo ipv6 | nc tcp-echo.ipv6 9000"
|
|
hello ipv6
|
|
</code></pre></li></ol><p>Now you can experiment with dual-stack services in your environment!</p><h2 id=important-changes-to-listeners-and-endpoints>Important Changes to Listeners and Endpoints</h2><p>For the above experiment, you’ll notice changes are made to listeners and routes:</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ istioctl proxy-config listeners "$(kubectl get pod -n dual-stack -l app=tcp-echo -o jsonpath='{.items[0].metadata.name}')" -n dual-stack --port 9000
|
|
</code></pre><p>You will see listeners are now bound to multiple addresses, but only for dual stack services. Other services will only
|
|
be listening on a single IP address.</p><pre><code class=language-json data-expandlinks=true data-repo=istio>"name": "fd00:10:96::f9fc_9000",
|
|
"address": {
|
|
"socketAddress": {
|
|
"address": "fd00:10:96::f9fc",
|
|
"portValue": 9000
|
|
}
|
|
},
|
|
"additionalAddresses": [
|
|
{
|
|
"address": {
|
|
"socketAddress": {
|
|
"address": "10.96.106.11",
|
|
"portValue": 9000
|
|
}
|
|
}
|
|
}
|
|
],
|
|
</code></pre><p>Virtual inbound addresses are now also configured to listen on both <code>0.0.0.0</code> and <code>[::]</code>.</p><pre><code class=language-json data-expandlinks=true data-repo=istio>"name": "virtualInbound",
|
|
"address": {
|
|
"socketAddress": {
|
|
"address": "0.0.0.0",
|
|
"portValue": 15006
|
|
}
|
|
},
|
|
"additionalAddresses": [
|
|
{
|
|
"address": {
|
|
"socketAddress": {
|
|
"address": "::",
|
|
"portValue": 15006
|
|
}
|
|
}
|
|
}
|
|
],
|
|
</code></pre><p>Envoy’s endpoints now are configured to route to both IPv4 and IPv6:</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ istioctl proxy-config endpoints "$(kubectl get pod -n sleep -l app=tcp-echo -o jsonpath='{.items[0].metadata.name}')" --port 9000
|
|
ENDPOINT STATUS OUTLIER CHECK CLUSTER
|
|
10.244.0.19:9000 HEALTHY OK outbound|9000||tcp-echo.ipv4.svc.cluster.local
|
|
10.244.0.26:9000 HEALTHY OK outbound|9000||tcp-echo.dual-stack.svc.cluster.local
|
|
fd00:10:244::1a:9000 HEALTHY OK outbound|9000||tcp-echo.dual-stack.svc.cluster.local
|
|
fd00:10:244::18:9000 HEALTHY OK outbound|9000||tcp-echo.ipv6.svc.cluster.local
|
|
</code></pre><h2 id=get-involved>Get Involved</h2><p>Plenty of work remains, and you are welcome to help us with the remaining tasks needed for dual stack support to get to
|
|
Alpha <a href=https://github.com/istio/enhancements/blob/master/features/dual-stack-support.md>here</a>.</p><p>For instance, Iris Ding (Intel) and Li Chun (Intel) are already working with the community for getting redirection of
|
|
network traffic for ambient, and we are hoping to have ambient support dual stack for its upcoming alpha release in
|
|
Istio 1.18.</p><p>We would love your feedback and if you are eager to work with us please stop by our slack channel, #dual-stack within
|
|
the <a href=https://slack.istio.io/>Istio Slack</a>.</p><p><em>Thank you to the team that has worked on Istio dual-stack!</em></p><ul><li>Intel: <a href=https://github.com/zhlsunshine>Steve Zhang</a>, <a href=https://github.com/soulxu>Alex Xu</a>, <a href=https://github.com/irisdingbj>Iris Ding</a></li><li>F5: <a href=https://github.com/jacob-delgado>Jacob Delgado</a></li><li><a href=https://github.com/ycai-aspen>Yingchun Cai</a> (formerly of F5)</li></ul></div><nav class=pagenav><div class=left><a title="An alternative approach to redirecting application pod traffic to the per-node ztunnel." href=/v1.17/blog/2023/ambient-ebpf-redirection/ class=next-link><svg class="icon left-arrow"><use xlink:href="/v1.17/img/icons.svg#left-arrow"/></svg>Using eBPF for traffic redirection in Istio ambient mode</a></div><div class=right><a title="A purpose-built per-node proxy for Istio ambient mesh." href=/v1.17/blog/2023/rust-based-ztunnel/ class=next-link>Introducing Rust-Based Ztunnel for Istio Ambient Service Mesh<svg class="icon right-arrow"><use xlink:href="/v1.17/img/icons.svg#right-arrow"/></svg></a></div></nav></article><footer class=footer><div class="footer-wrapper container-l"><div class="user-links footer-links"><a class=channel title='GitHub is where development takes place on Istio code' href=https://github.com/istio/community aria-label=GitHub><svg class="icon github"><use xlink:href="/v1.17/img/icons.svg#github"/></svg></a><a class=channel title="Access our team drive if you'd like to take a look at the Istio technical design documents" href=https://groups.google.com/forum/#!forum/istio-team-drive-access aria-label="team drive"><svg class="icon drive"><use xlink:href="/v1.17/img/icons.svg#drive"/></svg></a><a class=channel title='Interactively discuss issues with the Istio community on Slack' href=https://slack.istio.io aria-label=slack><svg class="icon slack"><use xlink:href="/v1.17/img/icons.svg#slack"/></svg></a><a class=channel title='Stack Overflow is where you can ask questions and find curated answers on deploying, configuring, and using Istio' href=https://stackoverflow.com/questions/tagged/istio aria-label="Stack Overflow"><svg class="icon stackoverflow"><use xlink:href="/v1.17/img/icons.svg#stackoverflow"/></svg></a><a class=channel title='Follow us on Twitter to get the latest news' href=https://twitter.com/IstioMesh aria-label=Twitter><svg class="icon twitter"><use xlink:href="/v1.17/img/icons.svg#twitter"/></svg></a></div><hr class=footer-separator role=separator><div class="info footer-info"><a class=logo href=/v1.17/ aria-label=logotype><svg xmlns="http://www.w3.org/2000/svg" width="128" height="60" viewBox="0 0 128 60"><path d="M58.434 48.823A.441.441.0 0158.3 48.497V22.583a.444.444.0 01.134-.326.446.446.0 01.327-.134h3.527a.447.447.0 01.325.134.447.447.0 01.134.326v25.914a.443.443.0 01-.134.326.444.444.0 01-.325.134h-3.527a.444.444.0 01-.327-.134z"/><path d="m70.969 48.477a6.556 6.556.0 01-2.818-1.955 4.338 4.338.0 01-1-2.78v-.345a.443.443.0 01.134-.326.444.444.0 01.326-.135h3.374a.444.444.0 01.326.135.445.445.0 01.134.326v.077a2.014 2.014.0 001.054 1.667 4.672 4.672.0 002.664.709 4.446 4.446.0 002.492-.633 1.862 1.862.0 00.958-1.591 1.426 1.426.0 00-.786-1.322 12.7 12.7.0 00-2.549-.939l-1.457-.46a21.526 21.526.0 01-3.3-1.227 6.57 6.57.0 01-2.262-1.783 4.435 4.435.0 01-.92-2.894 5.081 5.081.0 012.109-4.275 8.993 8.993.0 015.558-1.591 10.445 10.445.0 014.1.748 6.3 6.3.0 012.722 2.07 5 5 0 01.958 3.009.441.441.0 01-.134.326.441.441.0 01-.325.134h-3.258a.441.441.0 01-.326-.134.443.443.0 01-.134-.326 1.974 1.974.0 00-.978-1.667 4.647 4.647.0 00-2.665-.671 4.741 4.741.0 00-2.435.556 1.724 1.724.0 00-.938 1.553 1.512 1.512.0 00.9 1.4 15.875 15.875.0 003.01 1.055l.843.229a27.368 27.368.0 013.412 1.246 6.67 6.67.0 012.338 1.763 4.387 4.387.0 01.958 2.933 4.988 4.988.0 01-2.146 4.275 9.543 9.543.0 01-5.712 1.552 11.626 11.626.0 01-4.227-.709z"/><path d="m97.039 32.837a.443.443.0 01-.326.135h-3.911a.169.169.0 00-.191.192v9.239a2.951 2.951.0 00.632 2.108 2.7 2.7.0 002.013.652h1.15a.444.444.0 01.325.134.441.441.0 01.134.326v2.875a.471.471.0 01-.459.5l-1.994.039a8 8 0 01-4.524-1.035q-1.495-1.035-1.533-3.91V33.166A.17.17.0 0088.164 32.974H85.978A.441.441.0 0185.652 32.839.441.441.0 0185.518 32.513V29.83a.441.441.0 01.134-.326.444.444.0 01.326-.135h2.186a.169.169.0 00.191-.192v-4.485a.438.438.0 01.134-.326.44.44.0 01.325-.134h3.336a.443.443.0 01.325.134.442.442.0 01.135.326v4.485a.169.169.0 00.191.192h3.911a.446.446.0 01.326.135.446.446.0 01.134.326v2.683a.446.446.0 01-.133.324z"/><path d="m101.694 25.917a2.645 2.645.0 01-.767-1.955 2.65 2.65.0 01.767-1.955 2.65 2.65.0 011.955-.767 2.65 2.65.0 011.955.767 2.652 2.652.0 01.767 1.955 2.647 2.647.0 01-.767 1.955 2.646 2.646.0 01-1.955.767 2.645 2.645.0 01-1.955-.767zm-.211 22.906a.441.441.0 01-.134-.326V29.79a.444.444.0 01.134-.326.446.446.0 01.326-.134h3.527a.446.446.0 01.326.134.445.445.0 01.134.326v18.707a.443.443.0 01-.134.326.443.443.0 01-.326.134h-3.527a.443.443.0 01-.326-.134z"/><path d="m114.019 47.734a8.1 8.1.0 01-3.047-4.255 14.439 14.439.0 01-.652-4.37 14.3 14.3.0 01.614-4.371A7.869 7.869.0 01114 30.56a9.072 9.072.0 015.252-1.5 8.543 8.543.0 015.041 1.5 7.985 7.985.0 013.009 4.14 12.439 12.439.0 01.69 4.37 13.793 13.793.0 01-.651 4.37 8.255 8.255.0 01-3.028 4.275 8.475 8.475.0 01-5.1 1.553 8.754 8.754.0 01-5.194-1.534zm7.629-3.1a4.536 4.536.0 001.476-2.262 11.335 11.335.0 00.383-3.221 10.618 10.618.0 00-.383-3.22 4.169 4.169.0 00-1.457-2.243 4.066 4.066.0 00-2.531-.785 3.942 3.942.0 00-2.453.785 4.376 4.376.0 00-1.5 2.243 11.839 11.839.0 00-.383 3.22 11.84 11.84.0 00.383 3.221 4.222 4.222.0 001.476 2.262 4.075 4.075.0 002.549.8 3.8 3.8.0 002.44-.809z"/><path d="m15.105 32.057v15.565a.059.059.0 01-.049.059L.069 50.25A.06.06.0 01.005 50.167l14.987-33.47a.06.06.0 01.114.025z"/><path d="m17.631 23.087v24.6a.06.06.0 00.053.059l22.449 2.507a.06.06.0 00.061-.084L17.745.032a.06.06.0 00-.114.024z"/><path d="m39.961 52.548-24.833 7.45a.062.062.0 01-.043.0L.079 52.548a.059.059.0 01.026-.113h39.839a.06.06.0 01.017.113z"/></svg></a><div class=footer-languages><a tabindex=-1 lang=en id=switch-lang-en class="footer-languages-item active"><svg class="icon tick"><use xlink:href="/v1.17/img/icons.svg#tick"/></svg>English</a>
|
|
<a tabindex=-1 lang=zh id=switch-lang-zh class=footer-languages-item>中文</a></div></div><ul class=footer-policies><li class=footer-policies-item><a class=footer-policies-link href=https://www.linuxfoundation.org/legal/terms>Terms and Conditions</a> |
|
|
<a class=footer-policies-link href=https://www.linuxfoundation.org/legal/privacy-policy>Privacy policy</a> |
|
|
<a class=footer-policies-link href=https://github.com/istio/istio.io/edit/release-1.17/content/en/blog/2023/experimental-dual-stack/index.md>Edit this Page on GitHub</a></li></ul><div class=footer-base><span class=footer-base-copyright>© 2023 the Istio Authors.</span>
|
|
<span class=footer-base-version>Version
|
|
Archive
|
|
1.17.3</span><ul class=footer-base-releases><li class=footer-base-releases-item><a tabindex=-1 class=footer-base-releases-link onclick='return navigateToUrlOrRoot("https://istio.io/blog/2023/experimental-dual-stack/"),!1'>current release</a></li><li class=footer-base-releases-item><a tabindex=-1 class=footer-base-releases-link onclick='return navigateToUrlOrRoot("https://preliminary.istio.io/blog/2023/experimental-dual-stack/"),!1'>next release</a></li><li class=footer-base-releases-item><a tabindex=-1 class=footer-base-releases-link href=https://istio.io/archive>older releases</a></li></ul></div></div></footer><div id=scroll-to-top-container aria-hidden=true><button id=scroll-to-top title='Back to top' tabindex=-1><svg class="icon top"><use xlink:href="/v1.17/img/icons.svg#top"/></svg></button></div></body></html> |