Questo argomento mostra come installare Cloud Service Mesh, che viene preinstallato con un gateway in entrata. Con Cloud Service Mesh, puoi configurare una risorsa Ingress di Kubernetes 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 Cloud Service Mesh è costituita da due parti principali:
- Installazione di una versione specifica del control plane gestito dal cliente di Cloud Service Mesh e di Ingress Gateway.
- Etichettando gli spazi dei nomi con un'etichetta di revisione e ridistribuendo i workload per inserire un proxy sidecar.
Se devi utilizzare solo un oggetto Ingress utilizzando un controller Ingress, non devi inserire un proxy sidecar nei pod del tuo workload. Tuttavia, se vuoi usufruire dei vantaggi di sicurezza offerti da Cloud Service Mesh e 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 seguenti attività:
- 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 Cloud Console.
- Configura il cluster per utilizzare Workload Identity con Google Cloud.
Se i tuoi cluster di utenti hanno un accesso in uscita a internet limitato, consenti l'accesso ai seguenti domini del repository dei container:
docker.ioquay.io
Dalla directory
anthos-aws, utilizzaanthos-gkeper passare al contesto del cluster utente. Sostituisci CLUSTER_NAME con il nome del tuo cluster utente.cd anthos-aws env HTTPS_PROXY=http://localhost:8118 \ anthos-gke aws clusters get-credentials CLUSTER_NAME
Installazione di Anthos Service Mesh
Segui i passaggi descritti in Installare Cloud 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 di
hello-appe un ClusterIP per il deployment. Copia il seguente codice 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: 8080Applica il codice YAML al tuo cluster con
kubectl apply.env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f hello-app.yamlCrea un ingresso Kubernetes per l'applicazione di esempio. Copia il seguente codice YAML in un file denominato
hello-app-ingress.yamlapiVersion: 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: 8080Crea l'oggetto Ingress applicando la configurazione con
kubectl apply.env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f hello-app-ingress.yamlControlla lo stato del gateway con
kubectl get svc.env HTTPS_PROXY=http://localhost:8118 \ kubectl get ingress hello-appIl campo
ADDRESSdeve contenere un nome di dominio ELB. SeADDRESSrimanepending, verifica l'etichettatura di VPC e subnet.Puoi controllare l'URL del gateway Ingress componendo l'host e la porta. Per ottenere l'URL del gateway, esegui i seguenti 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_URLL'ultimo comando stampa l'endpoint dell'ingresso.
Se hai creato un Ingress pubblico, puoi visualizzare la
hello-apppagina web predefinita incurlvisitandohttp://$INGRESS_URL/.curl $INGRESS_URL/
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 Cloud Service Mesh, consulta la sezione Disinstallare Cloud Service Mesh.
Passaggi successivi
Scopri di più su: