[Yandex Cloud documentation](../../../index.md) > [Yandex Managed Service for Kubernetes](../../index.md) > [Step-by-step guides](../index.md) > Installing applications from Cloud Marketplace > Installing Istio

# Installing Istio


[Istio](https://istio.io/latest/about/service-mesh/) implements a _service mesh_, a low-latency infrastructure layer that manages large-scale network communications between services in a Managed Service for Kubernetes cluster.

Istio provides:

* Encrypted inter-service communication in a cluster.
* Authentication across services.
* Load balancing for HTTP, TCP, RPC, and WebSocket traffic.
* Detailed traffic monitoring based on extensive routing rules.

The application contains [Istio ingress gateway](https://istio.io/latest/docs/tasks/traffic-management/ingress/ingress-control/), a component for setting up an entry point for external traffic.

{% note info %}

To use Istio, you need a node group with at least 6 GB of RAM.

{% endnote %}

## Getting started {#before-you-begin}

1. If you do not have the Yandex Cloud CLI yet, [install and initialize it](../../../cli/quickstart.md#install).

   The folder used by default is the one specified when [creating](../../../cli/operations/profile/profile-create.md) the CLI profile. To change the default folder, use the `yc config set folder-id <folder_ID>` command. You can also specify a different folder for any command using `--folder-name` or `--folder-id`. If you access a resource by its name, the search will be limited to the default folder. If you access a resource by its ID, the search will be global, i.e., through all folders based on access permissions.

1. [Make sure](../connect/security-groups.md) the security groups for the Managed Service for Kubernetes cluster and its node groups are configured correctly. If a rule is missing, [add it](../../../vpc/operations/security-group-add-rule.md).

    {% note warning %}
    
    The configuration of security groups determines performance and availability of the cluster and the services and applications running in it.
    
    {% endnote %}

1. [Install kubect](https://kubernetes.io/docs/tasks/tools/install-kubectl) and [configure it to work with the new cluster](../connect/index.md#kubectl-connect).

## Installation from Yandex Cloud Marketplace {#marketplace-install}

1. In the [management console](https://console.yandex.cloud), select a folder.
1. Navigate to **Managed Service for&nbsp;Kubernetes**.
1. Click the name of your cluster and select the ![image](../../../_assets/console-icons/shopping-cart.svg) **Marketplace** tab.
1. Under **Application available for installation**, select [Istio](https://yandex.cloud/en/marketplace/products/yc/istio) and click **Go to install**.
1. Configure the application:
   * **Namespace**: Create a new [namespace](../../concepts/index.md#namespace), e.g., `istio-space`. If you leave the default namespace, Istio may work incorrectly.
   * **Application name**: Specify the application name.
   * **Install add-ons**: Select this option to automatically install the add-ons: [Kiali](https://kiali.io/) management console, Grafana, Prometheus, and [Loki](https://yandex.cloud/en/marketplace/products/yc/loki).
1. Click **Install**.
1. Wait for the application status to change to `Deployed`.

## Installation using a Helm chart {#helm-install}

1. [Install Helm](https://helm.sh/docs/intro/install/) v3.8.0 or higher.
1. [Install kubect](https://kubernetes.io/docs/tasks/tools/install-kubectl) and [configure it to work with the new cluster](../connect/index.md#kubectl-connect).
1. To install a [Helm chart](https://helm.sh/docs/topics/charts/) with Istio, run this command:

   ```bash
   helm pull oci://cr.yandex/yc-marketplace/yandex-cloud/istio/istio \
     --version 1.21.2-1 \
     --untar && \
   helm install \
     --namespace <namespace> \
     --create-namespace \
   istio ./istio/
   ```

   If you set `namespace` to the default namespace, Istio may work incorrectly. We recommend specifying a value different from all the existing namespaces, e.g., `istio-space`.

   {% note info %}
   
   If you are using a Helm version below 3.8.0, add the `export HELM_EXPERIMENTAL_OCI=1 && \` string at the beginning of the command to enable [Open Container Initiative](https://opencontainers.org/) (OCI) support in the Helm client.
   
   {% endnote %}

## See also {#see-also}

* [Istio documentation](https://istio.io/latest/docs/)