GNU/Linux >> Znalost Linux >  >> Linux

Kurz Istio:Začínáme se základy Istio

Úvod

Praktickým způsobem správy mikroslužeb cloudové nativní aplikace je automatizace síťových funkcí aplikace.

Istio je konfigurovatelná servisní síťová platforma fungující jako řídicí rovina, která distribuuje konfiguraci do postranních serverů proxy a bran. Je to oblíbená možnost pro připojení, monitorování a zabezpečení kontejnerů v clusteru Kubernetes.

V tomto tutoriálu se naučíte, jak nainstalovat Istio, nasadit testovací aplikaci a nastavit cluster Kubernetes pro práci s platformou.

Předpoklady

  • Cluster Kubernetes (nebo minikube)
  • nástroj příkazového řádku kubectl

Stáhněte si nejnovější verzi Istio

Chcete-li si stáhnout nejnovější verzi Istio, přejděte na stránku vydání Istio na GitHubu.

Alternativně mohou uživatelé Linuxu použít curl pro automatické stažení a extrahování nejnovější verze:

curl -L https://istio.io/downloadIstio | sh -

Příkaz rozbalí instalační soubory do složky s názvem istio-[version] :

Chcete-li stáhnout starší verzi Istio, použijte curl , ale určete verzi a architekturu procesoru pomocí následující syntaxe:

curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.6.8 TARGET_ARCH=x86_64 sh -

Instalační příručka Istio

1. Spusťte svůj cluster Kubernetes. Tento článek používá minikube:

minikube start

2. Dále spusťte instalaci Istio přesunutím se do složky s extrahovanými soubory:

cd istio-1.9.2

3. bin/ adresář obsahuje istioctl klient binární. V Linuxu přidejte klienta do cesty zadáním:

export PATH=$PWD/bin:$PATH

Takto nastavená proměnná trvá pouze do ukončení aktuální relace shellu. Chcete-li nastavit proměnnou trvale, přečtěte si, jak nastavit proměnné prostředí v Linuxu.

4. Použijte istioctl nástroj pro zahájení procesu instalace:

istioctl install --set profile=demo -y

Výstup potvrzuje úspěšnou instalaci:

5. Istio může po nasazení aplikace automaticky injektovat postranní proxy Envoy. Chcete-li to povolit, použijte kubectl pro přidání jmenného prostoru obsahujícího tuto instrukci:

kubectl label namespace default istio-injection=enabled

Tím je instalační proces Istio ukončen.

Test nasazení prostřednictvím aplikace Bookinfo

Instalační archiv Istio obsahuje všechny soubory potřebné k nasazení ukázkové aplikace s názvem Bookinfo .

1. Začněte použitím souboru bookinfo.yaml soubor pomocí kubectl :

kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml

Systém vytvoří několik nasazení, služeb a modulů:

2. Zkontrolujte běžící služby:

kubectl get services

3. Zkontrolujte, zda jsou pody připraveny:

kubectl get pods

Když se moduly zvednou, Istio s nimi nasadí postranní vozíky:

4. Počkejte, dokud se nezobrazí READY štítek pro každý pod je 2/2 . Poté spusťte následující příkaz, abyste zjistili, zda aplikace správně zobrazuje stránky HTML:

kubectl exec "$(kubectl get pod -l app=ratings -o jsonpath='{.items[0].metadata.name}')" -c ratings -- curl -sS productpage:9080/productpage | grep -o ""

Výstupem by měla být značka title stránky spolu se samotným názvem:

5. Dalším krokem je otevření aplikace pro vnější provoz. Použijte bookinfo-gateway.yaml soubor ze samples složka:

kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml

Výstup potvrzuje, že aplikace byla úspěšně spojena s bránou Istio:

6. Použijte istioctl analyzovat konfiguraci a zkontrolovat potenciální problémy:

istioctl analyze

Pokud systém nenalezne žádné problémy, zobrazí se následující zpráva:


7. Pro přístup k bráně nastavené v předchozím kroku nastavte vstupní proměnné. Nejprve exportujte INGRESS_PORT :

export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}')

8. Nyní zopakujte postup pro SECURE_INGRESS_PORT :

export SECURE_INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].nodePort}')

9. Pomocí příkazu echo zkontrolujte, zda byly porty úspěšně přiřazeny:

echo "$INGRESS_PORT" && echo "$SECURE_INGRESS_PORT"

Výstup zobrazuje čísla portů:


10. Exportujte INGRESS_HOST proměnná:

export INGRESS_HOST=$(minikube ip)

11. Zkontrolujte proměnnou pomocí echo :

echo "$INGRESS_HOST"

12. Chcete-li nasměrovat provoz na Istio Ingress Gateway, otevřete nové okno terminálu a zadejte následující příkaz:

minikube tunnel

Minikube nyní slouží jako load balancer pro Istio. Výstup ukazuje provoz minikube:


13. Vraťte se do předchozího okna terminálu a exportujte GATEWAY_URL proměnná, která se skládá z INGRESS_HOST a INGRESS_PORT proměnné:

export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT

14. Použijte echo zobrazíte celou IP adresu a číslo portu:

echo "$GATEWAY_URL"

15. Pro zobrazení externí adresy aplikace zadejte následující příkaz:

echo http://$GATEWAY_URL/productpage

16. Zkopírujte adresu získanou v předchozím kroku a vložte ji do webového prohlížeče. Web Bookinfo se úspěšně načte:

Nastavte cluster Kubernetes pro Istio

Istio přichází s řadou doplňků pro oblíbené služby Istio, jako je řídicí panel Grafana, software pro sledování transakcí Jaeger, škrabka metrik Prometheus a konzola pro správu Kiali.

1. Nainstalujte tyto doplňky použitím samples/addons složka:

kubectl apply -f samples/addons

2. Nyní vytvořte zdroj Kubernetes Ingress pro každý z doplňků. To provedete vložením následujícího textu do yaml soubor.

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: istio-system
  namespace: istio-system
  annotations:
    kubernetes.io/ingress.class: istio
spec:
  rules:
  - host: my-istio-dashboard.io
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          serviceName: grafana
          servicePort: 3000
  - host: my-istio-tracing.io
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          serviceName: tracing
          servicePort: 9411
  - host: my-istio-logs-database.io
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          serviceName: prometheus
          servicePort: 9090
  - host: my-kiali.io
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          serviceName: kiali
          servicePort: 20001

3. Uložte soubor a použijte konfiguraci pomocí kubectl:

kubectl apply -f [file-name]

Doplňky jsou nyní nakonfigurovány a připraveny k použití.


Linux
  1. Začínáme se Zsh

  2. Začínáme s ls

  3. Začínáme se Sambou pro interoperabilitu

  1. Začínáme s GnuCash

  2. Začínáme s PostgreSQL na Linuxu

  3. Začínáme s SSH v Linuxu

  1. Začínáme s Etcher.io

  2. Začínáme s regulárními výrazy

  3. Začínáme s Tmux