You can (and often should) customize Istio installs rather than relying on defaults. Istio provides several installation profiles (for example:Documentation Index
Fetch the complete documentation index at: https://notes.kodekloud.com/llms.txt
Use this file to discover all available pages before exploring further.
demo, ambient, default, minimal, remote, empty, preview) that determine which control-plane components are included.

istioctl included a subcommand that emitted a full IstioOperator manifest for a given profile. That helper was removed—today you author the IstioOperator resource yourself. The IstioOperator CR is the canonical way to customize control-plane installs; many examples are available in the official docs: https://istio.io/latest/docs/setup/install/operator/.
Below are practical examples and notes you can reuse. They show the most common customizations you will need for installs, upgrades, exam tasks, and day-to-day operations.
Minimal IstioOperator skeleton
Start from a small, clear IstioOperator manifest and adjust as needed:istioctl command line:
Disabling Pilot (istiod)
If you need to disable Pilot (istiod) entirely, setpilot.enabled: false. This is rarely recommended unless you fully understand the consequences.
Disabling Pilot (istiod) removes the control-plane component that distributes service discovery and configuration to Envoy sidecars. Only disable it if you have an alternative management/control-plane strategy.
Note: Pilot/istiod is the control-plane component that distributes service discovery and configuration to proxies (Envoy). The data plane proxy itself is
proxyv2 (Envoy).Adjusting Pilot (istiod) resources and autoscaling
You can override Kubernetes resources and HPA settings for components using thek8s block under each component. Example for Pilot:
Example: custom profile, hub, tag, and revision
On the exam you may be asked to install a specific profile (for exampleminimal or empty), set hub/tag, and use revision for control-plane revisioning:
Key areas of an IstioOperator
The IstioOperator CR has three primary areas you should know. The table below summarizes their purpose and common examples.| Area | Purpose | Example |
|---|---|---|
global / top-level | Set profile, image registry/hub, tag, revision, and global namespace | profile: empty, hub: docker.io/istio, tag: 1.19.6, revision: 1-19-6 |
meshConfig | Control-plane and proxy configuration (access logs, tracing, proxy defaults) | meshConfig.accessLogFile: /dev/stdout, enableTracing: true |
components | Enable/disable control-plane components and customize their Kubernetes resources via k8s | ingressGateways, egressGateways, pilot, cni |
meshConfig and enabling gateways
A typical customization enabling an egress gateway and settingmeshConfig values:
Proxy-related defaults (values)
Many proxy-related defaults are configured under thevalues section. Example:
Helm alternative
If you prefer Helm, inspect default chart values, edit them, and install/upgrade with-f:
- Modify your IstioOperator and run
istioctl upgrade -f <file>, or - Use
helm upgradefor Helm-based installs.
Typical install output
When installing withistioctl install -f default.yaml, you should see output like:
Uninstall
To remove Istio and purge state:Quick validation commands
After installing or upgrading, validate the control plane and gateways:Study and practice tips
- For the Istio Certified Associate (ICA) exam, practice creating a small IstioOperator manifest, change one option (for example enable an egress gateway or adjust Pilot CPU/memory), and apply it with
istioctl install -foristioctl upgrade -f. - Review the Istio docs operator guide and examples: https://istio.io/latest/docs/setup/install/operator/
- Try both
istioctland Helm workflows so you’re comfortable with either during real-world tasks or exam scenarios.