Menurut dokumentasi, Istio adalah aplikasi yang membantu anda untuk menghubungkan, mengamankan, mengontrol dan memantau services (microservices). Istio mengatasi permasalahan kerumitan transisi dari aplikasi monolitik ke aplikasi terdistribusi dengan arsitektur microservices.
Apa itu Istio?
Menurut dokumentasi, Istio adalah aplikasi yang membantu anda untuk menghubungkan, mengamankan, mengontrol dan memantau services (microservices). Istio mengatasi permasalahan kerumitan transisi dari aplikasi monolitik ke aplikasi terdistribusi dengan arsitektur microservices.
Ketika aplikasi berkembang kerumitan microservices semakin bertambah dan menyulitkan untuk mengelola dan memahami keterkaitan antara services satu dengan services lainnya. Dari sinilah istilah services mesh muncul. Istilah ini menggambarkan jaringan microservices yang membentuk suatu aplikasi dan interaksi antara services tsb.
Dengan Istio dapat dilakukan hal-hal berikut:
- Load balancing otomatis untuk HTTP, TCP, WebSocket dan gRPC.
- Traffic management dengan routing rules, retries, failovers, circuit breaker, fault injection.
- Metriks dan monitoring.
- Mengatur keamanan komunikasi antar services.
- Deployment dengan berbagai macam cara: rollout, A/B, canary dsb.
Instalasi Istio dengan Helm
Kali ini kita akan melakukan installasi Istio dengan helm charts. Jika anda belum memasang Helm pada kluster Kubernetes anda, silakan melihat artikel ini. Diasumsikan anda sudah memiliki kluster Kubernetes yang berjalan baik di lokal ataupun di Azure Kubernetes Services (AKS) ataupun Google Kubernetes Engine (GKE).
Tambahkan repo Istio terlebih dahulu:
$ helm repo add istio.io https://storage.googleapis.com/istio-release/releases/1.1.7/charts/
Periksa hasil dari penambahan repo Istio tsb:
helm repo list
Output:
NAME URL stable https://kubernetes-charts.storage.googleapis.com local http://127.0.0.1:8879/charts istio.io https://storage.googleapis.com/istio-release/releases/1.1.7/charts/
Kemudian lakukan instalasi Custom Resource Definition Istio (CRD) dengan chart istio-init:
$ helm install --name istio-init --namespace istio-system istio.io/istio-init
Anda akan mendapatkan output seperti berikut:
NAME: istio-init LAST DEPLOYED: Sun Jul 14 23:22:36 2019 NAMESPACE: istio-system STATUS: DEPLOYED
Sekarang lakukan instalasi Istio dengan helm chart. Sebaiknya turut diinstall juga grafana, aplikasi untuk menampilkan dashboard serta monitoring metriks serta kiali, aplikasi untuk melihat visualisasi keterkaitan antar microservices. Aktifkan pilihan konfigurasi dengan
--set grafana.enabled=true
atau--set kiali.enabled=true
.$ helm install --name istio --namespace istio-system --set grafana.enabled=true istio.io/istio
Periksa pods yang muncul dari hasil instalasi Istio:
kubectl get pods -n istio-system
Jika berhasil maka terlihat seperti berikut:
NAME READY STATUS RESTARTS AGE grafana-85689d5548-6zbtc 1/1 Running 0 15h grafana-85689d5548-ctzvg 1/1 Running 0 15h istio-citadel-5fdf5ccf85-mkt2l 1/1 Running 0 15h istio-egressgateway-6f887d4d46-vkvjh 1/1 Running 0 15h istio-galley-88c6c64b7-49hmz 1/1 Running 0 15h istio-ingressgateway-7646456c5c-hdvrl 1/1 Running 0 1d istio-init-crd-10-sh7dn 0/1 Completed 0 6m istio-init-crd-11-64nlt 0/1 Completed 0 6m istio-pilot-65bd87cb4c-8s4zp 2/2 Running 0 1d istio-policy-55cdb54666-hvshp 2/2 Running 0 15h istio-sidecar-injector-596f6bf5d5-qbl6k 1/1 Running 0 1d istio-telemetry-7dbb44954f-k2vgc 2/2 Running 0 15h istio-tracing-d444f578-mc4b4 1/1 Running 1 1d kiali-5bdc5b4d69-89lqn 1/1 Running 0 15h kiali-5bdc5b4d69-cc624 1/1 Running 0 1d prometheus-6c56b9bf49-46z97 1/1 Running 0 15h
Istio menggunakan mekanisme sidecar untuk memasang Envoy proxy pada tiap pod yang dijalankan di Kubernetes. Untuk melakukan otomatisasi hal ini perlu ditambahkan label istio-injection=true untuk namespace yang dituju:
kubectl label namespace default istio-injection=enabled
Kemudian periksa hasil dari pelabelan tsb
kubectl get namespaces -L istio-injection
Output:
NAME STATUS AGE ISTIO-INJECTION default Active 31d enabled istio-system Active 31d kube-public Active 31d kube-system Active 31d
Instalasi Istio sudah berhasil. Di artikel selanjutnya kita akan membahas bagaimana melakukan konfigurasi Istio untuk berbagai keperluan.
Dengan pengalaman PT Quorum Nusa Prestasi yang luas dalam industri Teknologi Informasi, kami mendorong klien kami untuk membuka bisnis mereka terhadap peluang baru dan mewujudkan impian. Perusahaan perangkat lunak ada untuk memecahkan masalah dan membantu kehidupan, dan ini adalah prioritas utama kami.
Hubungi kami dengan menekan tombol contact us diatas atau klik disini!