Skip to end of metadata
Go to start of metadata

Background

Objective: To set up the Yona server on minikube with Istio tracing

Requirements

Procedure

  1. Likely want to clear out minikube - minikube stop, minikube delete, minikube start
    1. See requirements for minikube - https://preliminary.istio.io/docs/setup/kubernetes/platform-setup/minikube/

  2. Install helm to cluster, setup yona namespace for istio, add Yona repo to local helm

    helm init
    kubectl create namespace yona
    kubectl label namespace yona istio-injection=enabled
    helm repo add yona http://jump.ops.yona.nu/helm-charts/
    helm repo update
  3. Install Istio

    helm install istio-1.0.2/install/kubernetes/helm/istio --name istio --namespace istio-system --set prometheus.enabled=false,tracing.enabled=true,gateways.istio-ingressgateway.type=NodePort,gateways.istio-egressgateway.type=NodePort,global.proxy.includeIPRanges="10.96.0.0/12"

    Note global.proxy.includeIPRanges="10.96.0.0/12" is the services IP range of minikube

  4. Deploy Yona server:

    helm install yona/yona --version 1.2.891 --namespace yona --name yona --set istio.enabled=true

    Can see chart versions with "helm search yona", version should be 1.2.<buildnumber>

  5. Watch progress, liquibase update job should come up and seed the database, each pod should have 2/2 (One for the app, one injected by Istio)

    kubectl get pods -w -n yona
  6. Wait for it to succeed, the pods will crash while liquibase is being seeded and eventually load properly

  7. Running `minikube service list` will get a list of accessible NodePorts;

    minikube service list
    |--------------|--------------------------|--------------------------------|
    |  NAMESPACE   |           NAME           |              URL               |
    |--------------|--------------------------|--------------------------------|
    | default      | kubernetes               | No node port                   |
    | istio-system | istio-citadel            | No node port                   |
    | istio-system | istio-egressgateway      | No node port                   |
    | istio-system | istio-ingress            | http://192.168.99.101:32000    |
    |              |                          | http://192.168.99.101:31557    |
    | istio-system | istio-ingressgateway     | http://192.168.99.101:31380    |
    |              |                          | http://192.168.99.101:31390    |
    |              |                          | http://192.168.99.101:31400    |
    | istio-system | istio-pilot              | No node port                   |
    | istio-system | istio-policy             | No node port                   |
    | istio-system | istio-sidecar-injector   | No node port                   |
    | istio-system | istio-statsd-prom-bridge | No node port                   |
    | istio-system | istio-telemetry          | No node port                   |
    | istio-system | tracing                  | http://192.168.99.101:31613    |
    | istio-system | zipkin                   | No node port                   |
    | kube-system  | default-http-backend     | http://192.168.99.101:30001    |
    | kube-system  | kube-dns                 | No node port                   |
    | kube-system  | kubernetes-dashboard     | http://192.168.99.101:30000    |
    | kube-system  | tiller-deploy            | No node port                   |
    | yona         | admin                    | http://192.168.99.101:31000    |
    | yona         | admin-actuator           | http://192.168.99.101:31010    |
    | yona         | analysis                 | http://192.168.99.101:31001    |
    | yona         | analysis-actuator        | http://192.168.99.101:31011    |
    | yona         | app                      | http://192.168.99.101:31002    |
    | yona         | app-actuator             | http://192.168.99.101:31012    |
    | yona         | batch                    | http://192.168.99.101:31003    |
    | yona         | batch-actuator           | http://192.168.99.101:31013    |
    | yona         | hazelcast                | http://192.168.99.101:30571    |
    | yona         | ldap                     | http://192.168.99.101:31389    |
    | yona         | yona-mariadb             | No node port                   |
    |--------------|--------------------------|--------------------------------|
    
  8. Standard urls work, for example: http://192.168.99.101:31002/swagger-ui/index.html (IP will likely be different)

  9. To enable an endpoint for the jaeger-ui tracing, apply the following nodeport:

    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: jaeger
        chart: tracing-0.1.0
        release: istio
      name: tracing-nodeport
      namespace: istio-system
    spec:
      ports:
      - name: query-http
        nodePort: 30363
        port: 80
        protocol: TCP
        targetPort: 16686
      selector:
        app: jaeger
      type: NodePort

    Then connect to nodeport 30363

    (Optional) Cleanup script for deleting Yona install, only using "helm delete" leaves some stuff behind

    helm delete yona --purge && kubectl -n yona delete secret -l release=yona && kubectl -n yona delete job -l release=yona && kubectl -n yona delete cm -l release=yona && kubectl -n yona delete pvc -l release=yona && echo "All cleanly purged"

Verification

  • Cluster running, can access Jaeger and Swagger UIs

 

  • No labels