APIs der Traffic Director xDS-Steuerungsebene

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