You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+5-11Lines changed: 5 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,7 @@
17
17
Istio is an open source service mesh that layers transparently onto existing distributed applications. Istio’s powerful features provide a uniform and more efficient way to secure, connect, and monitor services. Istio is the path to load balancing, service-to-service authentication, and monitoring – with few or no service code changes.
18
18
19
19
- For in-depth information about how to use Istio, visit [istio.io](https://istio.io)
20
-
- To ask questions and get assistance from our community, visit [Github Discussions](https://github.com/istio/istio/discussions)
20
+
- To ask questions and get assistance from our community, visit [GitHub Discussions](https://github.com/istio/istio/discussions)
21
21
- To learn how to participate in our overall community, visit [our community page](https://istio.io/about/community)
22
22
23
23
In this README:
@@ -55,15 +55,10 @@ Istio is composed of these components:
55
55
> simplifies and enhances how microservices in an application talk to each
56
56
> other over the network provided by the underlying platform.
57
57
58
-
-**Istiod** - The Istio control plane. It provides service discovery, configuration and certificate management. It consists of the following sub-components:
58
+
***Ztunnel** - A lightweight data plane proxy written in Rust,
59
+
used in Ambient mesh mode to provide secure connectivity and observability for workloads without sidecar proxies.
59
60
60
-
-**Pilot** - Responsible for configuring the proxies at runtime.
61
-
62
-
-**Citadel** - Responsible for certificate issuance and rotation.
63
-
64
-
-**Galley** - Responsible for validating, ingesting, aggregating, transforming and distributing config within Istio.
65
-
66
-
-**Operator** - The component provides user friendly options to operate the Istio service mesh.
61
+
-**Istiod** - The Istio control plane. It provides service discovery, configuration and certificate management.
67
62
68
63
## Repositories
69
64
@@ -88,8 +83,7 @@ contains platform-specific code to populate the
88
83
when the application topology changes, as well as translate
89
84
[routing rules](https://istio.io/latest/docs/reference/config/networking/) into proxy specific configuration.
90
85
91
-
- [security](security/). This directory contains [security](https://istio.io/latest/docs/concepts/security/) related code,
92
-
including Citadel (acting as Certificate Authority), citadel agent, etc.
86
+
- [security](security/). This directory contains [security](https://istio.io/latest/docs/concepts/security/) related code.
93
87
94
88
-[istio/proxy](https://github.com/istio/proxy). The Istio proxy contains
95
89
extensions to the [Envoy proxy](https://github.com/envoyproxy/envoy) (in the form of
Copy file name to clipboardExpand all lines: RELEASE_BRANCHES.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -55,7 +55,7 @@ for including it in the “.0” release. Otherwise, the PRs will not be merged
55
55
* Behavioral changes should be highly scrutinized, while typo fixes don't require that level of scrutiny.
56
56
* It is preferable that cherry-picks are done by the istio-testing bot.
57
57
* Automated cherry-picks do not need subject-matter experts to approve if discussed in the original PR.
58
-
* To trigger the bot cherry pick, either;
58
+
* To trigger the bot cherry pick, either:
59
59
* Apply the correct `cherrypick/release-X.XX` label to the PR, and the bot should pick it up.
60
60
* Use an explicit PR comment command: `/cherry-pick release-X.XX`
61
61
* It is strongly preferred to always apply the correct `cherrypick/` label manually to aid search and tracking, even if you use the comment command method.
Copy file name to clipboardExpand all lines: architecture/ambient/ztunnel.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -186,7 +186,7 @@ Additionally, `splice` will be used to make this proxying more efficient when po
186
186
187
187
For traffic in the mesh, things are a bit more complex:
188
188
189
-
1. If the destination has a waypoint proxy, we must send to it to the waypoint (using HBONE).
189
+
1. If the destination has a waypoint proxy, we must send it to the waypoint (using HBONE).
190
190
When we do this, we will want to preserve the original destination Service IP, as the waypoint can do a better job picking a backend pod than we can.
191
191
Note: the application itself may have already resolved the Service IP to a specific pod if it has Kubernetes native routing built in; since we don't have the Service information in this case we will use the destination IP we received (a pod). Most notably, sidecar proxies behave this way.
192
192
1. If the destination is on our node, we "fast path" the request and convert this into an inbound request.
Copy file name to clipboardExpand all lines: architecture/networking/controllers.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,7 +31,7 @@ Aside from this, there are a few conveniences and workarounds built-in to the cl
31
31
*All Istio Kubernetes usage should use this library and not operate on Kubernetes clients directly.*
32
32
33
33
**`kclient.Client`** is a higher level wrapper around a Kubernetes resource, and is built up of sub-parts `kclient.Reader`, `kclient.Writer`, and `kclient.Informer`.
34
-
Typically, the whole `kclient.Client` is used,though.
34
+
Typically, the whole `kclient.Client` is used,though.
35
35
36
36
Functionality offered by `kclient` includes:
37
37
* Typed clients (via generics) and more ergonomic APIs
@@ -61,7 +61,7 @@ With a few exceptions, Istio controllers typically are split in two phases: cons
61
61
62
62
Construction should create informers (via `kclient.New`), setup a queue (via `controllers.NewQueue`), and register event handlers on the informers.
63
63
Often, these handlers are adding something to the queue like `client.AddEventHandler(controllers.ObjectHandler(queue.AddObject))`.
64
-
Construction should NOT actually start running all of these things, do I/O, or block in anyway.
64
+
Construction should NOT actually start running all of these things, do I/O, or block in any way.
65
65
66
66
Running the controller actually starts processing things.
Copy file name to clipboardExpand all lines: architecture/security/istio-agent.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ At a high level, the Istio agent acts as an intermediate proxy between Istiod an
10
10
at two levels. For distributing workload certificates, Envoy will send [SDS](https://www.envoyproxy.io/docs/envoy/latest/configuration/security/secret)
11
11
requests to the agent, causing the agent to submit a CSR to the configured CA (generally Istiod). For other configuration,
12
12
Envoy will send [ADS](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/operations/dynamic_configuration#aggregated-xds-ads)
13
-
requests to the agent, which will be forwarded to the configured discovery server (general Istiod).
13
+
requests to the agent, which will be forwarded to the configured discovery server (generally Istiod).
Copy file name to clipboardExpand all lines: cni/README.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,11 +4,11 @@ The Istio CNI Node Agent is responsible for several things
4
4
5
5
- Install an Istio CNI plugin binary on each node's filesystem, updating that node's CNI config in e.g (`/etc/cni/net.d`), and watching the config and binary paths to reinstall if things are modified.
6
6
- In sidecar mode, the CNI plugin can configure sidecar networking for pods when they are scheduled by the container runtime, using iptables. The CNI handling the netns setup replaces the current Istio approach using a `NET_ADMIN` privileged `initContainers` container, `istio-init`, injected in the pods along with `istio-proxy` sidecars. This removes the need for a privileged, `NET_ADMIN` container in the Istio users' application pods.
7
-
- In ambient mode, the CNI plugin does not configure any networking, but is only responsible for synchronously pushing new pod events back up to an ambient watch server which runs as part of the Istio CNI node agent. The ambient server will find the pod netns and configure networking inside that pod via iptables. The ambient server will additionally watch enabled namespaces, and enroll already-started-but-newly-enrolled pods in a similar fashion.
7
+
- In ambient mode, the CNI plugin does not configure any networking but is only responsible for synchronously pushing new pod events back up to an ambient watch server which runs as part of the Istio CNI node agent. The ambient server will find the pod netns and configure networking inside that pod via iptables. The ambient server will additionally watch enabled namespaces and enroll already-started-but-newly-enrolled pods in a similar fashion.
8
8
9
9
## Development
10
10
11
-
The Istio cni-plugin has a hard dependency on Linux. Some efforts have been made to allow non-funtional builds on non-Linux OSes but these are not universal. For most any reasonable intents and purposes only building on Linux is supported. If you are on a non-Linux development environment use `make shell`.
11
+
The Istio cni-plugin has a hard dependency on Linux. Some efforts have been made to allow non-functional builds on non-Linux OSes but these are not universal. For most any reasonable intents and purposes only building on Linux is supported. If you are on a non-Linux development environment use `make shell`.
12
12
13
13
Most any Linux architecture supported by Go should work. Istio is only tested on AMD64 and ARM64.
14
14
@@ -35,7 +35,7 @@ Broadly, `istio-cni` accomplishes ambient redirection by instructing ztunnel to
35
35
36
36
and setting up iptables rules to funnel traffic thru that socket "tube" to ztunnel and back.
37
37
38
-
This effectively behaves like ztunnel is an in-pod sidecar, without actually requiring the injection of ztunnel as a sidecar into the pod manifest, or mutatating the application pod in any way.
38
+
This effectively behaves like ztunnel is an in-pod sidecar, without actually requiring the injection of ztunnel as a sidecar into the pod manifest, or mutating the application pod in any way.
39
39
40
40
Additionally, it does not require any network rules/routing/config in the host network namespace, which greatly increases ambient mode compatibility with 3rd-party CNIs. In virtually all cases, this "in-pod" ambient CNI is exactly as compatible with 3rd-party CNIs as sidecars are/were.
41
41
@@ -71,8 +71,8 @@ The annotation based control is currently only supported in 'sidecar' mode. See
71
71
72
72
- redirectMode allows TPROXY may to be set, required envoy has extra permissions. Default is redirect.
0 commit comments