Skip to content

soda-infra/aladdin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

139 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

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

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors