Skip to content

HPrinz/microservices-demo

 
 

Repository files navigation

Hipster Shop - Istio Demo

Setup

Tools installieren

  1. gcloud installieren

    curl https://sdk.cloud.google.com | bash
    exec -l $SHELL
  2. kubectl installieren

    gcloud components install kubectl

Cluster auf GKE aufsetzen

  1. Google Cloud Benutzerkonto auf https://cloud.google.com/ erstellen

  2. Den folgenden Befehl in Konsole ausführen, um sich zu authentifizieren

    gcloud init
  3. Die Region & Zone für das Rechenzentrum wählen

    gcloud config set compute/region europe-west3 # Frankfurt
    gcloud config set compute/zone europe-west3-c
  4. Cluster mit dem Namen istio-demo erstellen

    gcloud container clusters create istio-demo \
       --num-nodes=3 --cluster-version latest \
       --machine-type n1-standard-2 --enable-autoupgrade \
       --scopes cloud-platform
  5. Dem aktuellen Nutzer Admin-Rechte für das Cluster geben (notwendig für Istio)

    kubectl create clusterrolebinding cluster-admin-binding \
         --clusterrole=cluster-admin \
         --user=$(gcloud config get-value core/account)

Istio installieren

  1. Istio herunterladen
export ISTIO_VERSION=1.1.3
curl -L https://git.io/getLatestIstio | sh -
export ISTIO=$PWD/istio-$ISTIO_VERSION
export PATH=$PATH:$ISTIO/bin
  1. Kubernetes Namespace für Istio erstellen
kubectl create namespace istio-system
  1. CRDs installieren
for i in $ISTIO/install/kubernetes/helm/istio-init/files/crd*yaml; do kubectl apply -f $i; done
  1. Kiali Passwort und Benutzername festlegen und in Kubernetes Secrets ablegen
KIALI_USERNAME=$(read '?Kiali Username: ' uval && echo -n $uval | base64)
KIALI_PASSPHRASE=$(read -s "?Kiali Passphrase: " pval && echo -n $pval | base64)

cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Secret
metadata:
  name: kiali
  namespace: istio-system
  labels:
    app: kiali
type: Opaque
data:
  username: $KIALI_USERNAME
  passphrase: $KIALI_PASSPHRASE
EOF
  1. Eine Istio-Installationskonfiguration für Kubernets mit helm auf Basis von values.yaml erstellen
helm template $ISTIO/install/kubernetes/helm/istio --values istio-values.yaml \
 --namespace istio-system --name istio > custom-istio.yaml
  1. Die Konfiguration auf dem Cluster anwenden
 kubectl apply -f custom-istio.yaml
  1. Dem Standard-Namespace default für automatische Injektion von Sidecars markieren
 kubectl label namespace default istio-injection=enabled
  1. Die Kubernetes Konfiguration für das Deployment des Hipster Shops anwenden
kubectl apply -f kubernetes-manifests
  1. Die Eintritts-IP-Adresse des istio-ingressgateways herausfinden und ausgeben
INGRESS_HOST="$(kubectl -n istio-system get service istio-ingressgateway \
-o jsonpath='{.status.loadBalancer.ingress[0].ip}')"
echo "$INGRESS_HOST"
  1. Alle eingehenden Verbindungen und die ausgehende Verbindung zur EZB mit Istio-Konfiguration erlauben
kubectl apply -f istio-explore/01_setup/frontend-gateway.yaml
kubectl apply -f istio-explore/01_setup/whitelist-egress-currencyprovider.yaml

Weitere Istio-Konfigurationen im Ordner istio-explore

About

Sample cloud-native application composed of 10 microservices showcasing Kubernetes, Istio, gRPC, OpenCensus and Skaffold.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 50.9%
  • Python 21.1%
  • Go 14.5%
  • HTML 4.1%
  • Shell 2.5%
  • JavaScript 2.5%
  • Other 4.4%