Skip to content

Instantly share code, notes, and snippets.

@arun-gupta
Last active November 28, 2018 09:10
Show Gist options
  • Save arun-gupta/0f7d7ff57af49d8195c2d2a29abb9232 to your computer and use it in GitHub Desktop.
Save arun-gupta/0f7d7ff57af49d8195c2d2a29abb9232 to your computer and use it in GitHub Desktop.
Kiali on EKS

Kiali on Amazon EKS

Create EKS cluster

  • brew install weaveworks/tap/eksctl or brew upgrade weaveworks/tap/eksctl
  • eksctl create cluster --name myeks --nodes=4

Install Istio 1.0.x

  • curl -LO https://github.com/istio/istio/releases/download/1.0.3/istio-1.0.3-osx.tar.gz

  • Install Helm:

    kubectl -n kube-system create sa tiller
    kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller
    helm init --service-account tiller
    
  • Install Istio (with Jaeger and Grafana):

    helm install \
      --wait \
      --name istio \
      --namespace istio-system \
      --set grafana.enabled=true \
      --set tracing.enabled=true \
      install/kubernetes/helm/istio
    

Install Kiali

  • Create credentials to authenticate Kiali:

    USERNAME=$(echo -n 'admin' | base64)
    PASSPHRASE=$(echo -n 'mysecret' | base64)
    NAMESPACE=istio-system
    cat <<EOF | kubectl apply -f -
    apiVersion: v1
    kind: Secret
    metadata:
      name: kiali
      namespace: $NAMESPACE
      labels:
        app: kiali
    type: Opaque
    data:
      username: $USERNAME
      passphrase: $PASSPHRASE
    EOF
    
  • Generate template for Kiali:

    helm template \
      --set kiali.enabled=true \
      --set "kiali.dashboard.jaegerURL=http://$(kubectl get svc tracing -n istio-system -o jsonpath='{.spec.clusterIP}'):80" \
      --set "kiali.dashboard.grafanaURL=http://$(kubectl get svc grafana -n istio-system -o jsonpath='{.spec.clusterIP}'):3000" \
      install/kubernetes/helm/istio \
      --name istio --namespace istio-system > ./kiali.yaml
    
  • kubectl apply -f ./kiali.yaml

BookInfo

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_HOST=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')
export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].port}')
export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT
open http://${GATEWAY_URL}/productpage

Get Service Graph

  • kubectl -n istio-system get svc kiali
@theute
Copy link

theute commented Nov 14, 2018

I also got this error with Istio 1.1 Snapshot 2:
Error: found in requirements.yaml, but missing in charts/ directory: sidecarInjectorWebhook, security, ingress, gateways, mixer, nodeagent, pilot, grafana, prometheus, servicegraph, tracing, galley, kiali, certmanager

I did the following:

helm init --client-only
helm repo add istio.io "https://storage.googleapis.com/istio-prerelease/daily-build/master-latest-daily/charts"
helm dep update install/kubernetes/helm/istio

And then it worked.

The doc needs improvement for the changed in the coming 1.1 version:
istio/istio.io#2876

And I created a JIRA to see if we can simplify this kind of installation like we do with our operator: https://maistra.io/docs/install/
https://issues.jboss.org/browse/KIALI-1939

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment