Skip to content

Observability for the Istio service mesh including not only network usage but also resource usage

License

Notifications You must be signed in to change notification settings

soda-infra/aladdin

Repository files navigation

Aladdin

Introduction

Aladdin provide Network Visualization & Kubernetes Monitoring for micro services

Infrasturcture Overview

Aladdin-infrastructure

Kubernetes Overview

Aladdin-kubernetes

Description

Aladdin is a project that modified and improved the Kiali project. It covers various metrics as well as network metrics used in Kiali.

Aladdin works with Istio, Node Exporter, Kube-state-metrics, cAdvisor to visualize service mesh topology, infrastructure, kubernetes cluster.

Getting Started

Install helm

curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get > install-helm.sh
chmod u+x install-helm.sh
./install-helm.sh
kubectl -n kube-system create serviceaccount tiller
kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller
helm init --service-account tiller

Download istio

git clone https://github.com/soda-infra/istio
cd istio
git checkout release-1.2

Install istio-init

helm install install/kubernetes/helm/istio-init --name istio-init --namespace istio-system

Verify istio-init (아래 명령 결과가 23이 나오면 완료)

kubectl get crds | grep 'istio.io\|certmanager.k8s.io' | wc -l

Create kiali secret (username: admin, password: admin)

cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Secret
metadata:
  name: kiali
  namespace: istio-system
  labels:
    app: kiali
type: Opaque
data:
  username: YWRtaW4=
  passphrase: YWRtaW4=
EOF

Install istio

helm install install/kubernetes/helm/istio \
--name istio \
--namespace istio-system \
--set tracing.enabled=true \
--set global.mtls.enabled=true \
--set grafana.enabled=true \
--set kiali.enabled=true \
--set servicegraph.enabled=true

Install aladdin-requirements

git clone https://github.com/soda-infra/aladdin-requirements
helm install aladdin-requirements --name aladdin-requirements

Loading istio example

kubectl label namespace default istio-injection=enabled
kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}')
export SECURE_INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].nodePort}')
export INGRESS_HOST=$(kubectl get po -l istio=ingressgateway -n istio-system -o jsonpath='{.items[0].status.hostIP}')
export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT
kubectl apply -f samples/bookinfo/networking/destination-rule-all-mtls.yaml

Verify

curl -s http://${GATEWAY_URL}/productpage | grep -o "<title>.*</title>"

Check kiali port (kiali 포트로 접속)

kubectl get svc -A

Make traffic

cat >> ~/makeTraffic.sh <<EOF
for ((i=1;i<=10000000;i++)); do
    curl -v --header "Connection: keep-alive" "http://127.0.0.1:31380/productpage";
    sleep 5;
done
EOF
sudo chmod +x makeTraffic.sh

Platform Version in Aladdin

  • Kubernetes - v1.15.0

  • Istio - v1.2.0

  • Kiali - v1.1.0 (see kiali tag)

  • Kiali-ui - v1.2.0

💥 Wiki for Aladdin

한글화되어있는 Aladdin wiki문서입니다.

Default ID/PW for Aladdin

ID : admin

PW : admin

License

Apache License 2.0

About

Observability for the Istio service mesh including not only network usage but also resource usage

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published