Questo argomento mostra come installare Anthos Service Mesh, preinstallato in un gateway Ingress. Con Anthos Service Mesh, puoi configurare una risorsa Kubernetes Ingress per i tuoi deployment se hai bisogno di un controller Ingress. Questo argomento fornisce un esempio che mostra come configurare una risorsa Deployment e Ingress di esempio.
L'installazione di Anthos Service Mesh è costituita da due parti principali:
- Installazione di una versione specifica del piano di controllo gestito dal cliente di Anthos Service Mesh e del gateway Ingress.
- Etichetta gli spazi dei nomi con un'etichetta di revisione e riesegui il deployment dei carichi di lavoro per inserire un proxy collaterale.
Se hai bisogno di utilizzare un oggetto Ingress solo con un controller Ingress, non devi inserire un proxy sidecar nei pod del carico di lavoro. Tuttavia, se vuoi usufruire dei vantaggi per la sicurezza offerti da Anthos Service Mesh e vuoi utilizzare le funzionalità di routing del traffico, devi inserire i proxy sidecar.
Prima di iniziare
Prima di iniziare a utilizzare GKE su AWS, assicurati di aver eseguito le attività seguenti:
- Completa i Prerequisiti.
- Installa un servizio di gestione.
- Crea un cluster utente.
- Registra il cluster con Connect seguendo i passaggi descritti in Connessione al cluster con la console Cloud.
- Configura il cluster in modo da utilizzare Workload Identity con Google Cloud.
Se i cluster utente hanno limitato l'accesso in uscita a internet, consenti l'accesso ai seguenti domini del repository di container:
docker.io
quay.io
Dalla directory
anthos-aws
, usaanthos-gke
per passare al cluster utente.cd anthos-aws env HTTPS_PROXY=http://localhost:8118 \ anthos-gke aws clusters get-credentials CLUSTER_NAME
Sostituisci CLUSTER_NAME con il nome del tuo cluster utente.
Installazione di Anthos Service Mesh
Segui i passaggi descritti in Installare Anthos Service Mesh.
Creazione di un deployment di esempio
In questa sezione installerai un'applicazione di esempio e creerai un endpoint Ingress per l'applicazione.
Crea un deployment
hello-app
e un ClusterIP per il deployment. Copia il seguente YAML in un file denominatohello-app.yaml
.apiVersion: apps/v1 kind: Deployment metadata: labels: app: hello-app name: hello-app spec: selector: matchLabels: app: hello-app replicas: 3 template: metadata: labels: app: hello-app spec: containers: - name: hello image: "gcr.io/google-samples/hello-app:2.0" --- apiVersion: v1 kind: Service metadata: labels: app: hello-app name: hello-app spec: type: ClusterIP selector: app: hello-app ports: - protocol: TCP port: 8080 targetPort: 8080
Applica il codice YAML al tuo cluster con
kubectl apply
.env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f hello-app.yaml
Crea un Ingress Kubernetes per l'applicazione di esempio. Copia il seguente YAML in un file denominato
hello-app-ingress.yaml
apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: annotations: kubernetes.io/ingress.class: istio labels: app: hello-app name: hello-app spec: rules: - host: http: paths: - backend: serviceName: hello-app servicePort: 8080
Crea la risorsa Ingress applicando la configurazione con
kubectl apply
.env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f hello-app-ingress.yaml
Controlla lo stato del gateway con
kubectl get svc
.env HTTPS_PROXY=http://localhost:8118 \ kubectl get ingress hello-app
Il campo
ADDRESS
deve avere un nome di dominio ELB. SeADDRESS
rimanepending
, conferma l'etichettatura tra VPC e subnet.Puoi controllare l'URL del gateway Ingress componendo l'host e la porta. Per ottenere l'URL del gateway, esegui questi comandi:
export INGRESS_URL=$(env HTTPS_PROXY=http://localhost:8118 \ kubectl get ingress hello-app -o jsonpath='{.status.loadBalancer.ingress[0].hostname}') echo "Your hello-app Ingress URL is: http://"$INGRESS_URL
L'ultimo comando visualizza l'endpoint del tuo Ingress.
Se hai creato una risorsa Ingress pubblica, puoi visualizzare la pagina web predefinita di
hello-app
incurl
visitandohttp://$INGRESS_URL/
.curl $INGRESS_URL/
esegui la pulizia
Rimuovi i componenti hello-app
con kubectl delete
.
env HTTPS_PROXY=http://localhost:8118 \
kubectl delete -f hello-app.yaml &&\
kubectl delete -f hello-app-ingress.yaml
Se vuoi rimuovere Anthos Service Mesh, consulta Disinstallare Anthos Service Mesh.
Passaggi successivi
Scopri di più su: