Deploy Istio Using DKP
Follow these steps to prepare DKP to run Istio:
Review the list of available applications to obtain the current APP ID and version for Istio and it’s dependencies – you need this information to execute the following commands.
Install Istio’s dependencies with an
AppDeployment
resource. Replace the<APPID>
and<APPID-version>
variables with the information of the application:
The required value for the--app
flag consists of the APP ID and version in theAPPID-version
format.CODEdkp create appdeployment <APPID> --app <APPID-version> --workspace ${WORKSPACE_NAME}
Install Istio. Replace
<APPID-version>
with the version of Istio you want to deploy:CODEdkp create appdeployment istio --app <APPID-version> --workspace ${WORKSPACE_NAME}
Create the resource in the workspace you just created, which instructs Kommander to deploy the
AppDeployment
to theKommanderCluster
s in the same workspace.Observe that the
dkp create
command must be run with theWORKSPACE_NAME
instead of theWORKSPACE_NAMESPACE
flag.
Download the Istio Command Line Utility
Follow these steps to download and run Istio:
Pull a copy of the corresponding Istio command line to your system. Replace
<your_istio_version_here>
with the Istio version you want to deploy:CODEcurl -L https://istio.io/downloadIstio | ISTIO_VERSION=<your_istio_version_here> sh -
Change to the Istio directory and set your PATH environment variable by running the following commands:
CODEcd istio* export PATH=$PWD/bin:$PATH
Run the following
istioctl
command and view the subsequent output:CODEistioctl version
CODEclient version: <your_istio_version_here> control plane version: <your_istio_version_here> data plane version: <your_istio_version_here> (1 proxies)
Deploy a Sample Application on Istio
The Istio bookinfo
sample application is composed of four separate microservices that demonstrate various Istio features.
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 theKUBECONFIG
environment variable, or using the--kubeconfig
flag, in accordance with Kubernetes conventions.CODEkubectl apply -f <(istioctl kube-inject -f samples/bookinfo/platform/kube/bookinfo.yaml) kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
Get the URL of the load balancer created on AWS for this service by running the following command:
CODEkubectl get svc istio-ingressgateway -n istio-system
The command displays output similar to the following:
CODENAME 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
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
Follow the steps in the Istio BookInfo Application documentation to understand the different Istio features.
For more information, see Istio’s official documentation.