1. Review the list of available applications to obtain the current APP ID and version for Istio and it’s dependencies, as you will need this information to execute the following commands.

  2. Install Istio’s dependencies with an AppDeployment resource. Replace the <APPID> and <APPID-version> variables with the information of the application:
    Note: The required value for the --app flag consists of the APP ID and version in the APPID-version format.

    dkp create appdeployment <APPID> --app <APPID-version> --workspace ${WORKSPACE_NAME}
    CODE
  3. Enable the deployment of Istio to your managed or attached cluster:

    dkp create appdeployment istio --app istio-1.16.2 --workspace ${WORKSPACE_NAME}
    CODE
  • Create the resource in the workspace you just created, which instructs Kommander to deploy the AppDeployment to the KommanderClusters in the same workspace.

  • Observe that the dkp create command must be run with the WORKSPACE_NAME instead of the WORKSPACE_NAMESPACE flag.

Download the Istio Command Line Utility

  1. Pull a copy of the corresponding Istio command line to your system:

    curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.16.2 sh -
    CODE
  2. Change to the Istio directory and set your PATH environment variable by running the following commands:

    cd istio*
    export PATH=$PWD/bin:$PATH
    CODE
  3. Run the following istioctl command and view the subsequent output:

    istioctl version
    CODE

    client version: <your istio version here>
    control plane version: <your istio version here>
    data plane version: <your istio version here> (1 proxies)
    CODE

Deploy a Sample Application on Istio

The Istio bookinfo sample application is composed of four separate microservices that demonstrate various Istio features.

  1. Deploy the sample bookinfo application on the Kubernetes cluster by running the following commands:

    IMPORTANT: Ensure your dkp configuration references the cluster where you deployed Istio by setting the KUBECONFIG environment variable, or using the --kubeconfig flag, in accordance with Kubernetes conventions.

    kubectl apply -f <(istioctl kube-inject -f samples/bookinfo/platform/kube/bookinfo.yaml)
    kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
    CODE
  2. Get the URL of the load balancer created on AWS for this service by running the following command:

    kubectl get svc istio-ingressgateway -n istio-system
    CODE

    The command displays output similar to the following:

    NAME                   TYPE           CLUSTER-IP    EXTERNAL-IP                                                               PORT(S)                                                                                                                                      AGE
    istio-ingressgateway   LoadBalancer   10.0.29.241   a682d13086ccf11e982140acb7ee21b7-2083182676.us-west-2.elb.amazonaws.com   15020:30380/TCP,80:31380/TCP,443:31390/TCP,31400:31400/TCP,15029:30756/TCP,15030:31420/TCP,15031:31948/TCP,15032:32061/TCP,15443:31232/TCP   110s
    CODE
  3. Open a browser and navigate to the external IP address for the load balancer to access the application.

    For example, the external IP address in the sample output is a682d13086ccf11e982140acb7ee21b7-2083182676.us-west-2.elb.amazonaws.com, enabling you to access the application using the following URL: http://a682d13086ccf11e982140acb7ee21b7-2083182676.us-west-2.elb.amazonaws.com/productpage

  4. Follow the steps in the Istio BookInfo Application documentation to understand the different Istio features.

For more information, see Istio’s official documentation.