Skip to content

Instantly share code, notes, and snippets.

@arun-gupta
Last active November 28, 2018 09:10
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • 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
@jmazzitelli
Copy link

There is an issue with Kiali v0.9 - some pages will give you errors because of some roles that the helm chart is not giving to the kiali SA.
You will want to make these changes to the Kiali helm chart before installing: https://github.com/istio/istio/pull/9608/files
If you use the demo.yaml (which I don't think you are, but just in case), you will need to make those changes in the demo yaml file instead.

@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