Traffic Director und seine Clients (Envoy-Proxys oder proxylose gRPC-Bibliotheken) tauschen Informationen über die Open Source XDS API aus. Wenn Sie Traffic Director konfigurieren (z. B. mithilfe von Ressourcen wie Weiterleitungsregeln und Back-End-Diensten), konvertiert Traffic Director diese Ressourcen in die xDS-Konfiguration, die es mit seinen Clients teilt.
xDS-Versionsunterstützung
xDS ist eine versionierte API und Traffic Director unterstützt xDS v2 und xDS v3. In der folgenden Tabelle wird die xDS API-Unterstützung nach Clienttyp beschrieben.
xDS v2 | xDS v3 | |
---|---|---|
Envoy | GA-Unterstützung mit Envoy-Versionen 1.9.1 bis 1.16.2 |
Vorschau auf Envoy-Versionen ab 1.15.0 |
Proxylose gRPC-Dienste | GA-Unterstützung mit gRPC-Versionen ab 1.30.0 |
Noch nicht unterstützte Ziele |
Beachten Sie, dass die Envoy-Community die Unterstützung für xDS v2 in neueren Versionen von Envoy eingestellt hat. Die Community plant, xDS v2 bis ans Ende des Produktzyklus von EOY 2020 zu unterstützen. Nach dem 1. Quartal 2021 wird von neuen Versionen von Envoy nur xDS v3 unterstützt. Weitere Informationen finden Sie unter Unterstützte API-Versionen von Envoy.
xDS v3-Vorschau
Traffic Director bietet Unterstützung für xDS v3-APIs, wenn Envoy manuell bereitgestellt wird. Wenn Sie diese Vorschauunterstützung testen möchten, folgen Sie den Anleitungen für die manuelle Einrichtung von Compute Engine oder Google Kubernetes Engine. Sie müssen die folgenden Änderungen an den Einrichtungsanleitungen vornehmen.
Neue Traffic Director-Berechtigungen für das Dienstkonto
Das Dienstkonto muss die Berechtigungen trafficdirector.configurations.get
und trafficdirector.endpointmetrics.report
haben. Sie können die IAM-Rolle trafficdirector.client
verwenden, die beide Berechtigungen umfasst. Die Berechtigung compute.forwardingRules.get
wird nicht mehr benötigt.
Fügen Sie dem Dienstkonto diese IAM-Rolle mit dem folgenden Befehl hinzu:
gcloud projects add-iam-policy-binding ${PROJECT} \ --member serviceAccount:${SERVICE_ACCOUNT_EMAIL} \ --role roles/trafficdirector.client
Referenzpaket für Compute Engine aktualisieren
Wenn Sie die Compute Engine-Einrichtungsanleitung verwenden, verwenden Sie das folgende Codebeispiel beim Erstellen der Instanzvorlage anstelle des Codebeispiel, das im Einrichtungsleitfaden bereitgestellt wird.
gcloud compute instance-templates create td-vm-template \ --scopes=https://www.googleapis.com/auth/cloud-platform \ --tags=http-td-tag,http-server,https-server \ --image-family=debian-9 \ --image-project=debian-cloud \ --metadata=startup-script="#! /bin/bash # Add a system user to run Envoy binaries. Login is disabled for this user sudo adduser --system --disabled-login envoy # Download and extract the Traffic Director tar.gz file sudo wget -P /home/envoy https://storage.googleapis.com/traffic-director/traffic-director-xdsv3.tar.gz sudo tar -xzf /home/envoy/traffic-director-xdsv3.tar.gz -C /home/envoy sudo cat << END > /home/envoy/traffic-director-xdsv3/sidecar.env ENVOY_USER=envoy # Exclude the proxy user from redirection so that traffic doesn't loop back # to the proxy EXCLUDE_ENVOY_USER_FROM_INTERCEPT='true' # Intercept all traffic by default SERVICE_CIDR='*' GCP_PROJECT_NUMBER=project number VPC_NETWORK_NAME=network name ENVOY_IMAGE='envoyproxy/envoy:v1.15.0' ENVOY_PORT='15001' ENVOY_ADMIN_PORT='15000' LOG_DIR='/var/log/envoy/' LOG_LEVEL='info' XDS_SERVER_CERT='/etc/ssl/certs/ca-certificates.crt' END sudo apt-get update -y sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common -y sudo curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - sudo add-apt-repository 'deb [arch=amd64] https://download.docker.com/linux/debian stretch stable' -y sudo apt-get update -y sudo apt-get install docker-ce apache2 -y sudo service apache2 restart echo '<!doctype html><html><body><h1>'`/bin/hostname`'</h1></body></html>' | sudo tee /var/www/html/index.html cd /home/envoy/traffic-director-xdsv3 sudo ./run.sh start"
Referenzpaket für Google Kubernetes Engine aktualisieren
Wenn Sie dem Google Kubernetes Engine-Einrichtungsleitfaden folgen, ersetzen Sie die folgenden Zeilen beim Schritt Sidecar-Proxy in Google Kubernetes Engine-/Kubernetes-Pods einfügen.
Alt:
wget -q -O - \ https://storage.googleapis.com/traffic-director/demo/trafficdirector_client_sample.yaml \ | kubectl apply -f -
Neu:
wget -q -O - https://storage.googleapis.com/traffic-director/demo/trafficdirector_client_sample_xdsv3.yaml sed -i "s/PROJECT_NUMBER/project number/g" trafficdirector_client_sample_xdsv3.yaml sed -i "s/NETWORK_NAME/network name/g" trafficdirector_client_sample_xdsv3.yaml kubectl apply -f trafficdirector_client_sample_xdsv3.yaml