This article explains how to install Istio and it’s add-ons on Cloud Provider OpenStack with Load-balancer service(Octavia).
This is the second part, Installing Istio.
There are two ways to install istio. In this article, we follows Quick Start Evaluation Install without using Helm, since we just evaluate Istio.
Download the release
$ curl -L https://git.io/getLatestIstio | ISTIO_VERSION=1.3.3 sh -
The following is shown and end with command prompt.
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 3013 100 3013 0 0 2769 0 0:00:01 0:00:01 --:--:-- 173k
Downloading istio-1.3.3 from https://github.com/istio/istio/releases/download/1.3.3/istio-1.3.3-linux.tar.gz ... % Total % Received
% Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 614 0 614 0 0 1900 0 --:--:-- --:--:-- --:--:-- 1900
100 36.3M 100 36.3M 0 0 4315k 0 0:00:08 0:00:08 --:--:-- 5414k
Istio 1.3.3 Download Complete!
Istio has been successfully downloaded into the istio-1.3.3 folder on your system.
Next Steps:
See https://istio.io/docs/setup/kubernetes/install/ to add Istio to your Kubernetes cluster.
To configure the istioctl client tool for your workstation,
add the /home/ubuntu/istio-1.3.3/bin directory to your environment path variable with:
export PATH="$PATH:/home/ubuntu/istio-1.3.3/bin"
Begin the Istio pre-installation verification check by running:
istioctl verify-install
Need more information? Visit https://istio.io/docs/setup/kubernetes/install/
$
Let’s follow the instructions shown above.
$ export PATH="$PATH:/home/ubuntu/istio-1.3.3/bin"
$ istioctl verify-install
Successful message should be shown like the following.
Checking the cluster to make sure it is ready for Istio installation...
#1. Kubernetes-api
-----------------------
Can initialize the Kubernetes client.
Can query the Kubernetes API Server.
#2. Kubernetes-version
-----------------------
Istio is compatible with Kubernetes: v1.15.3.
#3. Istio-existence
-----------------------
Istio will be installed in the istio-system namespace.
#4. Kubernetes-setup
-----------------------
Can create necessary Kubernetes configurations: Namespace,ClusterRole,ClusterRoleBinding,CustomResourceDefinition,Role,ServiceAccount,Service,Deployments,ConfigMap.
#5. Sidecar-Injector
-----------------------
This Kubernetes cluster supports automatic sidecar injection. To enable automatic sidecar injection see https://istio.io/docs/setup/kubernetes/additional-setup/sidecar-injection/#deploying-an-app
-----------------------
Install Pre-Check passed! The cluster is ready for Istio installation.
Installing Istio CRDs
:~$ cd istio-1.3.3
:~/istio-1.3.3$ export PATH=$PWD/bin:$PATH
:~/istio-1.3.3$ for i in install/kubernetes/helm/istio-init/files/crd*yaml; do kubectl apply -f $i; done
customresourcedefinition.apiextensions.k8s.io/virtualservices.networking.istio.io created
customresourcedefinition.apiextensions.k8s.io/destinationrules.networking.istio.io created
customresourcedefinition.apiextensions.k8s.io/serviceentries.networking.istio.io created
customresourcedefinition.apiextensions.k8s.io/gateways.networking.istio.io created
customresourcedefinition.apiextensions.k8s.io/envoyfilters.networking.istio.io created
customresourcedefinition.apiextensions.k8s.io/clusterrbacconfigs.rbac.istio.io created
customresourcedefinition.apiextensions.k8s.io/policies.authentication.istio.io created
customresourcedefinition.apiextensions.k8s.io/meshpolicies.authentication.istio.io created
customresourcedefinition.apiextensions.k8s.io/httpapispecbindings.config.istio.io created
customresourcedefinition.apiextensions.k8s.io/httpapispecs.config.istio.io created
customresourcedefinition.apiextensions.k8s.io/quotaspecbindings.config.istio.io created
customresourcedefinition.apiextensions.k8s.io/quotaspecs.config.istio.io created
customresourcedefinition.apiextensions.k8s.io/rules.config.istio.io created
customresourcedefinition.apiextensions.k8s.io/attributemanifests.config.istio.io created
customresourcedefinition.apiextensions.k8s.io/rbacconfigs.rbac.istio.io created
customresourcedefinition.apiextensions.k8s.io/serviceroles.rbac.istio.io created
customresourcedefinition.apiextensions.k8s.io/servicerolebindings.rbac.istio.io created
customresourcedefinition.apiextensions.k8s.io/adapters.config.istio.io created
customresourcedefinition.apiextensions.k8s.io/instances.config.istio.io created
customresourcedefinition.apiextensions.k8s.io/templates.config.istio.io created
customresourcedefinition.apiextensions.k8s.io/handlers.config.istio.io created
customresourcedefinition.apiextensions.k8s.io/sidecars.networking.istio.io created
customresourcedefinition.apiextensions.k8s.io/authorizationpolicies.rbac.istio.io created
customresourcedefinition.apiextensions.k8s.io/clusterissuers.certmanager.k8s.io created
customresourcedefinition.apiextensions.k8s.io/issuers.certmanager.k8s.io created
customresourcedefinition.apiextensions.k8s.io/certificates.certmanager.k8s.io created
customresourcedefinition.apiextensions.k8s.io/orders.certmanager.k8s.io created
customresourcedefinition.apiextensions.k8s.io/challenges.certmanager.k8s.io created
Installing the demo profile
$ kubectl apply -f install/kubernetes/istio-demo.yaml
namespace/istio-system created
customresourcedefinition.apiextensions.k8s.io/virtualservices.networking.istio.io unchanged
customresourcedefinition.apiextensions.k8s.io/destinationrules.networking.istio.io unchanged
customresourcedefinition.apiextensions.k8s.io/serviceentries.networking.istio.io unchanged
customresourcedefinition.apiextensions.k8s.io/gateways.networking.istio.io unchanged
customresourcedefinition.apiextensions.k8s.io/envoyfilters.networking.istio.io unchanged
customresourcedefinition.apiextensions.k8s.io/clusterrbacconfigs.rbac.istio.io unchanged
customresourcedefinition.apiextensions.k8s.io/policies.authentication.istio.io unchanged
.....
instance.config.istio.io/attributes created
destinationrule.networking.istio.io/istio-policy created
destinationrule.networking.istio.io/istio-telemetry created
Verify installation
:~/istio-1.3.3$ kubectl get svc -n istio-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
grafana ClusterIP 10.233.22.253 <none> 3000/TCP 2m49s
istio-citadel ClusterIP 10.233.12.250 <none> 8060/TCP,15014/TCP 2m49s
istio-egressgateway ClusterIP 10.233.26.207 <none> 80/TCP,443/TCP,15443/TCP 2m49s
istio-galley ClusterIP 10.233.36.243 <none> 443/TCP,15014/TCP,9901/TCP 2m49s
istio-ingressgateway LoadBalancer 10.233.50.231 10.0.0.213 15020:30474/TCP,80:31380/TCP,443:31390/TCP,31400:31400/TCP,15029:31241/TCP,15030:30585/TCP,15031:31475/TCP,15032:32366/TCP,15443:30889/TCP 2m49s
istio-pilot ClusterIP 10.233.23.43 <none> 15010/TCP,15011/TCP,8080/TCP,15014/TCP 2m49s
istio-policy ClusterIP 10.233.44.135 <none> 9091/TCP,15004/TCP,15014/TCP 2m49s
istio-sidecar-injector ClusterIP 10.233.10.98 <none> 443/TCP,15014/TCP 2m49s
istio-telemetry ClusterIP 10.233.12.249 <none> 9091/TCP,15004/TCP,15014/TCP,42422/TCP 2m49s
jaeger-agent ClusterIP None <none> 5775/UDP,6831/UDP,6832/UDP 2m49s
jaeger-collector ClusterIP 10.233.23.10 <none> 14267/TCP,14268/TCP 2m49s
jaeger-query ClusterIP 10.233.44.204 <none> 16686/TCP 2m49s
kiali ClusterIP 10.233.38.170 <none> 20001/TCP 2m49s
prometheus ClusterIP 10.233.63.59 <none> 9090/TCP 2m49s
tracing ClusterIP 10.233.16.87 <none> 80/TCP 2m49s
zipkin ClusterIP 10.233.31.122 <none> 9411/TCP 2m49s
:~/istio-1.3.3$
:~/istio-1.3.3$ kubectl get pods -n istio-system
NAME READY STATUS RESTARTS AGE
grafana-59d57c5c56-m762w 1/1 Running 0 3m24s
istio-citadel-66f699cf68-24h6c 1/1 Running 0 3m23s
istio-egressgateway-7fbcf68b68-x99v5 1/1 Running 0 3m24s
istio-galley-fd94bc888-mhpp7 1/1 Running 0 3m24s
istio-grafana-post-install-1.3.3-l8524 0/1 Completed 0 3m25s
istio-ingressgateway-587c9fbc85-khd8z 1/1 Running 0 3m24s
istio-pilot-74cb5d88bc-44lqh 2/2 Running 0 3m24s
istio-policy-5865b8c696-tp4b6 2/2 Running 3 3m24s
istio-security-post-install-1.3.3-qmcf4 0/1 Completed 0 3m25s
istio-sidecar-injector-d8856c48f-nxqwb 1/1 Running 0 3m23s
istio-telemetry-95689668-p5ww4 2/2 Running 2 3m24s
istio-tracing-6bbdc67d6c-m9fdc 1/1 Running 0 3m23s
kiali-8c9d6fbf6-5ks85 1/1 Running 0 3m24s
prometheus-7d7b9f7844-s8wt6 1/1 Running 0 3m23s