mirror of https://github.com/istio/istio.io.git
119 lines
28 KiB
HTML
119 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="Kubernetes Native Sidecars in Istio"><meta name=description content="Demoing the new SidecarContainers feature with Istio."><meta name=author content="John Howard (Google)"><meta name=keywords content="microservices,services,mesh,istio,sidecars,kubernetes"><meta property="og:title" content="Kubernetes Native Sidecars in Istio"><meta property="og:type" content="website"><meta property="og:description" content="Demoing the new SidecarContainers feature with Istio."><meta property="og:url" content="/v1.21/blog/2023/native-sidecars/"><meta property="og:image" content="https://raw.githubusercontent.com/istio/istio.io/master/static/img/istio-social.png"><meta property="og:image:alt" content="The Istio sailboat logo"><meta property="og:image:width" content="4096"><meta property="og:image:height" content="2048"><meta property="og:site_name" content="Istio"><meta name=twitter:card content="summary_large_image"><meta name=twitter:site content="@IstioMesh"><title>Istioldie 1.21 / Kubernetes Native Sidecars in Istio</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.21/blog/feed.xml><link rel=alternate type=application/rss+xml title="Istio News" href=/v1.21/news/feed.xml><link rel=alternate type=application/rss+xml title="Istio Blog and News" href=/v1.21/feed.xml><link rel="shortcut icon" href=/v1.21/favicons/favicon.ico><link rel=apple-touch-icon href=/v1.21/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/v1.21/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/v1.21/favicons/favicon-32x32.png sizes=32x32><link rel=icon type=image/png href=/v1.21/favicons/android-36x36.png sizes=36x36><link rel=icon type=image/png href=/v1.21/favicons/android-48x48.png sizes=48x48><link rel=icon type=image/png href=/v1.21/favicons/android-72x72.png sizes=72x72><link rel=icon type=image/png href=/v1.21/favicons/android-96x96.png sizes=96xW96><link rel=icon type=image/png href=/v1.21/favicons/android-144x144.png sizes=144x144><link rel=icon type=image/png href=/v1.21/favicons/android-192x192.png sizes=192x192><link rel=icon type=image/svg+xml href=/v1.21/favicons/favicon.svg><link rel=icon type=image/png href=/v1.21/favicons/favicon.png><link rel=mask-icon href=/v1.21/favicons/safari-pinned-tab.svg color=#466BB0><link rel=manifest href=/v1.21/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.21/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.21/js/themes_init.min.js></script></head><body class="language-unknown archive-site"><script>const branchName="release-1.21",docTitle="Kubernetes Native Sidecars in Istio",iconFile="/v1.21//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.21/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.21/ 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.21/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.21/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.21/img/icons.svg#dropdown-arrow"/></svg></a><ul class=main-navigation-links-dropdown><li class=main-navigation-links-dropdown-item><a href=/v1.21/about/service-mesh class=main-navigation-links-link>Service mesh</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.21/about/solutions class=main-navigation-links-link>Solutions</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.21/about/case-studies class=main-navigation-links-link>Case studies</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.21/about/ecosystem class=main-navigation-links-link>Ecosystem</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.21/about/deployment class=main-navigation-links-link>Deployment</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.21/about/faq class=main-navigation-links-link>FAQ</a></li></ul></li><li class=main-navigation-links-item><a href=/v1.21/blog/ class=main-navigation-links-link><span>Blog</span></a></li><li class=main-navigation-links-item><a href=/v1.21/news/ class=main-navigation-links-link><span>News</span></a></li><li class=main-navigation-links-item><a href=/v1.21/get-involved/ class=main-navigation-links-link><span>Get involved</span></a></li><li class=main-navigation-links-item><a href=/v1.21/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.21/img/icons.svg#magnifier"/></svg></button>
|
|
<a href=/v1.21/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.21/img/icons.svg#menu-close"/></svg></button></form></nav></header><div class=banner-container></div><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=header-content><h1>Kubernetes Native Sidecars in Istio</h1><p>Demoing the new SidecarContainers feature with Istio.</p></div><p class=post-author>Aug 15, 2023 <span>| </span>By John Howard - Google</p><div><p>If you have heard anything about service meshes, it is that they work using the sidecar pattern: a proxy server is deployed alongside your application code.
|
|
The sidecar pattern is just that: a pattern.
|
|
Up until this point, there has been no formal support for sidecar containers in Kubernetes at all.</p><p>This has caused a number of problems: what if you have a job that terminates by design, but a sidecar container that doesn’t?
|
|
This exact use case is the <a href=https://github.com/kubernetes/kubernetes/issues/25908>most popular ever on the Kubernetes issue tracker</a>.</p><p>A formal proposal for adding sidecar support in Kubernetes was raised in 2019. With many stops and starts along the way,
|
|
and after a reboot of the project last year, formal support for sidecars is being released to Alpha in Kubernetes 1.28.
|
|
Istio has implemented support for this feature, and in this post you can learn how to take advantage of it.</p><h2 id=sidecar-woes>Sidecar woes</h2><p>Sidecar containers give a lot of power, but come with some issues.
|
|
While containers within a pod can share some things, their <em>lifecycle’s</em> are entirely decoupled.
|
|
To Kubernetes, both of these containers are functionally the same.</p><p>However, in Istio they are not the same - the Istio container is required for the primary application container to run,
|
|
and has no value without the primary application container.</p><p>This mismatch in expectation leads to a variety of issues:</p><ul><li>If the application container starts faster than Istio’s container, it cannot access the network.
|
|
This wins the <a href=https://github.com/istio/istio/issues/11130>most +1’s</a> on Istio’s GitHub by a landslide.</li><li>If Istio’s container shuts down before the application container, the application container cannot access the network.</li><li>If an application container intentionally exits (typically from usage in a <code>Job</code>), Istio’s container will still run and keep the pod running indefinitely.
|
|
This is also a <a href=https://github.com/istio/istio/issues/11659>top GitHub issue</a>.</li><li><code>InitContainers</code>, which run before Istio’s container starts, cannot access the network.</li></ul><p>Countless hours have been spent in the Istio community and beyond to work around these issues - to limited success.</p><h2 id=fixing-the-root-cause>Fixing the root cause</h2><p>While increasingly-complex workarounds in Istio can help alleviate the pain for Istio users, ideally all of this would just work - and not just for Istio.
|
|
Fortunately, the Kubernetes community has been hard at work to address these directly in Kubernetes.</p><p>In Kubernetes 1.28, a new feature to add native support for sidecars was merged, closing out over 5 years of ongoing work.
|
|
With this merged, all of our issues can be addressed without workarounds!</p><p>While we are on the “GitHub issue hall of fame”, <a href=https://github.com/kubernetes/kubernetes/issues/25908>these</a> two <a href=https://github.com/kubernetes/kubernetes/issues/65502>issues</a> account for #1 and #6 all time issues in Kubernetes - and have finally been closed!</p><p>A special thanks goes to the huge group of individuals involved in getting this past the finish line.</p><h2 id=trying-it-out>Trying it out</h2><p>While Kubernetes 1.28 was just released, the new <code>SidecarContainers</code> feature is Alpha (and therefore, off by default), and the support for the feature in Istio is not yet shipped, we can still try it out today - just don’t try this in production!</p><p>First, we need to spin up a Kubernetes 1.28 cluster, with the <code>SidecarContainers</code> feature enabled:</p><pre><code class=language-shell data-expandlinks=true data-repo=istio>$ cat <<EOF | kind create cluster --name sidecars --image gcr.io/istio-testing/kind-node:v1.28.0 --config=-
|
|
kind: Cluster
|
|
apiVersion: kind.x-k8s.io/v1alpha4
|
|
featureGates:
|
|
SidecarContainers: true
|
|
EOF
|
|
</code></pre><p>Then we can download the latest Istio 1.19 pre-release (as 1.19 is not yet out). I used Linux here.
|
|
This is a pre-release of Istio, so again - do not try this in production!
|
|
When we install Istio, we will enable the feature flag for native sidecar support and turn on access logs to help demo things later.</p><pre><code class=language-shell data-expandlinks=true data-repo=istio>$ TAG=1.19.0-beta.0
|
|
$ curl -L https://github.com/istio/istio/releases/download/$TAG/istio-$TAG-linux-amd64.tar.gz | tar xz
|
|
$ ./istioctl install --set values.pilot.env.ENABLE_NATIVE_SIDECARS=true -y --set meshConfig.accessLogFile=/dev/stdout
|
|
</code></pre><p>And finally we can deploy a workload:</p><pre><code class=language-shell data-expandlinks=true data-repo=istio>$ kubectl label namespace default istio-injection=enabled
|
|
$ kubectl apply -f samples/sleep/sleep.yaml
|
|
</code></pre><p>Let’s look at the pod:</p><pre><code class=language-shell data-expandlinks=true data-repo=istio>$ kubectl get pods
|
|
NAME READY STATUS RESTARTS AGE
|
|
sleep-7656cf8794-8fhdk 2/2 Running 0 51s
|
|
</code></pre><p>Everything looks normal at first glance…
|
|
If we look under the hood, we can see the magic, though.</p><pre><code class=language-shell data-expandlinks=true data-repo=istio>$ kubectl get pod -o "custom-columns="\
|
|
"NAME:.metadata.name,"\
|
|
"INIT:.spec.initContainers[*].name,"\
|
|
"CONTAINERS:.spec.containers[*].name"
|
|
|
|
NAME INIT CONTAINERS
|
|
sleep-7656cf8794-8fhdk istio-init,istio-proxy sleep
|
|
</code></pre><p>Here we can see all the <code>containers</code> and <code>initContainers</code> in the pod.</p><p>Surprise! <code>istio-proxy</code> is now an <code>initContainer</code>.</p><p>More specifically, it is an <code>initContainer</code> with <code>restartPolicy: Always</code> set (a new field, enabled by the <code>SidecarContainers</code> feature).
|
|
This tells Kubernetes to treat it as a sidecar.</p><p>This means that later containers in the list of <code>initContainers</code>, and all normal <code>containers</code> will not start until the proxy container is ready.
|
|
Additionally, the pod will terminate even if the proxy container is still running.</p><h3 id=init-container-traffic>Init container traffic</h3><p>To put this to the test, let’s make our pod actually do something.
|
|
Here we deploy a simple pod that sends a request in an <code>initContainer</code>.
|
|
Normally, this would fail.</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: v1
|
|
kind: Pod
|
|
metadata:
|
|
name: sleep
|
|
spec:
|
|
initContainers:
|
|
- name: check-traffic
|
|
image: istio/base
|
|
command:
|
|
- curl
|
|
- httpbin.org/get
|
|
containers:
|
|
- name: sleep
|
|
image: istio/base
|
|
command: ["/bin/sleep", "infinity"]
|
|
</code></pre><p>Checking the proxy container, we can see the request both succeeded and went through the Istio sidecar:</p><pre><code class=language-shell data-expandlinks=true data-repo=istio>$ kubectl logs sleep -c istio-proxy | tail -n1
|
|
[2023-07-25T22:00:45.703Z] "GET /get HTTP/1.1" 200 - via_upstream - "-" 0 1193 334 334 "-" "curl/7.81.0" "1854226d-41ec-445c-b542-9e43861b5331" "httpbin.org" ...
|
|
</code></pre><p>If we inspect the pod, we can see our sidecar now runs <em>before</em> the <code>check-traffic</code> <code>initContainer</code>:</p><pre><code class=language-shell data-expandlinks=true data-repo=istio>$ kubectl get pod -o "custom-columns="\
|
|
"NAME:.metadata.name,"\
|
|
"INIT:.spec.initContainers[*].name,"\
|
|
"CONTAINERS:.spec.containers[*].name"
|
|
|
|
NAME INIT CONTAINERS
|
|
sleep istio-init,istio-proxy,check-traffic sleep
|
|
</code></pre><h3 id=exiting-pods>Exiting pods</h3><p>Earlier, we mentioned that when applications exit (common in <code>Jobs</code>), the pod would live forever.
|
|
Fortunately, this is addressed as well!</p><p>First we deploy a pod that will exit after one second and doesn’t restart:</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: v1
|
|
kind: Pod
|
|
metadata:
|
|
name: sleep
|
|
spec:
|
|
restartPolicy: Never
|
|
containers:
|
|
- name: sleep
|
|
image: istio/base
|
|
command: ["/bin/sleep", "1"]
|
|
</code></pre><p>And we can watch its progress:</p><pre><code class=language-shell data-expandlinks=true data-repo=istio>$ kubectl get pods -w
|
|
NAME READY STATUS RESTARTS AGE
|
|
sleep 0/2 Init:1/2 0 2s
|
|
sleep 0/2 PodInitializing 0 2s
|
|
sleep 1/2 PodInitializing 0 3s
|
|
sleep 2/2 Running 0 4s
|
|
sleep 1/2 Completed 0 5s
|
|
sleep 0/2 Completed 0 12s
|
|
</code></pre><p>Here we can see the application container exited, and shortly after Istio’s sidecar container exits as well.
|
|
Previously, the pod would be stuck in <code>Running</code>, while now it can transition to <code>Completed</code>.
|
|
No more zombie pods!</p><h2 id=what-about-ambient-mode>What about ambient mode?</h2><p>Last year, Istio announced <a href=/v1.21/blog/2022/introducing-ambient-mesh/>ambient mode</a> - a new data plane mode for Istio that doesn’t rely on sidecar containers.
|
|
So with ambient mode coming, does any of this even matter?</p><p>I would say a resounding “Yes”!</p><p>While the impacts of sidecar are lessened when ambient mode is used for a workload, I expect that almost all large scale Kubernetes users have some sort of sidecar in their deployments.
|
|
This could be Istio workloads they don’t want to migrate to ambient, that they haven’t <em>yet</em> migrated, or things unrelated to Istio.
|
|
So while there may be fewer scenarios where this matters, it still is a huge improvement for the cases where sidecars are used.</p><p>You may wonder the opposite - if all our sidecar woes are addressed, why do we need ambient mode at all?
|
|
There are still a variety of benefits ambient brings with these sidecar limitations addressed.
|
|
For example, <a href=/v1.21/blog/2023/waypoint-proxy-made-simple/>this blog post</a> goes into details about why decoupling proxies from workloads is advantageous.</p><h2 id=try-it-out-yourself>Try it out yourself</h2><p>We encourage the adventurous readers to try this out themselves in testing environments!
|
|
Feedback for these experimental and alpha features is critical to ensure they are stable and meeting expectations before promoting them.
|
|
If you try it out, let us know what you think in the <a href=/v1.21/get-involved/>Istio Slack</a>!</p><p>In particular, the Kubernetes team is interested in hearing more about:</p><ul><li>Handling of shutdown sequence, especially when there are multiple sidecars involved.</li><li>Backoff restart handling when sidecar containers are crashing.</li><li>Edge cases they have not yet considered.</li></ul></div><nav class=pagenav><div class=left><a title="Announcing the newest Istio Steering Committee members." href=/v1.21/blog/2023/steering-election-results/ class=next-link><svg class="icon left-arrow"><use xlink:href="/v1.21/img/icons.svg#left-arrow"/></svg>Istio Announces Winners of 2023 Steering Committee Election</a></div><div class=right><a title="Accelerate connection balancing using DLB connection balancing configuration in Istio gateways." href=/v1.21/blog/2023/dlb-connection-balancing/ class=next-link>Using Accelerated Offload Connection Load Balancing in Istio<svg class="icon right-arrow"><use xlink:href="/v1.21/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.21/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.21/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.21/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.21/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.21/img/icons.svg#twitter"/></svg></a></div><hr class=footer-separator role=separator><div class="info footer-info"><a class=logo href=/v1.21/ 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.21/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://www.linuxfoundation.org/legal/trademark-usage>Trademarks
|
|
</a>|
|
|
<a class=footer-policies-link href=https://github.com/istio/istio.io/edit/release-1.21/content/en/index>Edit this Page on GitHub</a></li></ul><div class=footer-base><span class=footer-base-copyright>© 2024 the Istio Authors.</span>
|
|
<span class=footer-base-version>Version
|
|
Archive
|
|
1.21.2</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/native-sidecars/"),!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/native-sidecars/"),!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.21/img/icons.svg#top"/></svg></button></div></body></html> |