Referenz

Auf dieser Seite werden die verfügbaren Argumente für das Skript beschrieben und Details zu den Änderungen angezeigt, die das Skript an Ihrem Projekt und dem GKE-Cluster vornimmt.

Optionen

-p|--project_id CLUSTER_PROJECT_ID
Die Projekt-ID, in der der Cluster erstellt wurde.
-n|--cluster_name CLUSTER_NAME
Der Name des Clusters.
-l|--cluster_location CLUSTER_LOCATION
Entweder die Zone (bei Einzelzonenclustern) oder die Region (bei regionalen Clustern), in der der Cluster erstellt wurde.
-m|--mode {install|migrate|upgrade}

Sie können --mode install für neue Installationen, Upgrades oder Migrationen von Istio verwenden. Wenn Sie --mode install für Upgrades oder Migrationen verwenden, lässt install_asm das Upgrade bzw. die Migration unabhängig von der Version der Steuerungsebene im Cluster zu. Die Flags migrate und upgrade lassen nur Upgrades oder Migrationen von der vorherigen Nebenversion oder einer früheren Patchversion zu.

Wenn Sie --mode install für Upgrades oder Migrationen verwenden, müssen Sie dieselbe Zertifizierungsstelle (CA) angeben, die derzeit im Cluster aktiviert ist. Das Ändern der Zertifizierungsstelle führt zu Ausfallzeiten. Mit dem Flag --upgrade können Sie die Zertifizierungsstelle nicht ändern, wodurch unbeabsichtigte Ausfallzeiten verhindert werden.

Wenn Sie von Istio migrieren, können Sie die Zertifizierungsstelle ändern und die Anthos Service Mesh-Zertifizierungsstelle (Mesh CA) aktivieren. Wenn Sie keine Ausfallzeiten für die Migration zu Mesh CA planen können, gibt es weiterhin einen Migrationspfad zu Mesh CA, aber es sind zusätzliche Schritte erforderlich. Weitere Informationen finden Sie unter Zu Mesh CA migrieren.

-c|--ca {mesh_ca|citadel}

Bei neuen Installationen müssen Sie diese Option nicht auswählen, wenn Sie Mesh-CA verwenden möchten, da das Skript standardmäßig Mesh CA verwendet. Bei Upgrades muss diese Option nicht angegeben werden, da das Skript die Änderung der Zertifizierungsstelle nicht zulässt. Für Migrationen geben Sie citadel oder mesh_ca an. Wenn Sie Ausfallzeiten für die Migration einplanen können, empfehlen wir die Verwendung von mesh_ca. Weitere Informationen dazu, welche CA verwendet werden soll, finden Sie unter Zertifizierungsstelle auswählen. Weitere Optionen, die Sie bei der Verwendung von Istio CA angeben müssen, finden Sie unter Optionen für benutzerdefiniertes Istio CA-Zertifikat.

--co|--custom_overlay YAML_FILE

Der Name der YAML-Datei für die benutzerdefinierte Ressource IstioOperator, um eine Funktion zu aktivieren, die nicht standardmäßig aktiviert ist. Das Skript muss die YAML-Datei finden können, sodass sich die Datei im selben Verzeichnis wie das Skript befindet. Sie können aber auch einen relativen Pfad angeben. Wenn Sie mehrere Dateien hinzufügen möchten, geben Sie --co|--custom_overlay und den Dateinamen ein. Beispiel: --co overlay_file1.yaml --co overlay_file2.yaml --co overlay_file3.yaml

-o|--option OPTION_FILE

Der Name einer YAML-Datei aus dem Paket anthos-service-mesh, das die CR IstioOperator enthält, um ein optionales Feature zu aktivieren. Wenn Sie eine dieser Dateien einschließen, müssen Sie das Paket anthos-service-mesh nicht zuerst herunterladen und die Erweiterung .yaml nicht angeben. Wenn Sie eine der Dateien ändern müssen, laden Sie das Paket anthos-service-mesh herunter, nehmen Sie die Änderungen vor und verwenden Sie die Option --custom_overlay. Wenn Sie mehrere Dateien hinzufügen möchten, geben Sie -o|--option und den Dateinamen ein. Beispiel: -o option_file1 -o option_file2 -o option_file3

-D|--output_dir DIR_PATH

Wenn keine Angabe erfolgt, erstellt das Skript ein temporäres Verzeichnis, in das die Dateien und Konfigurationen für die Installation von Anthos Service Mesh heruntergeladen werden. Verwenden Sie das Flag --output-dir, um einen relativen Pfad zu einem Verzeichnis anzugeben, das stattdessen verwendet werden soll. Nach Abschluss enthält das angegebene Verzeichnis die Unterverzeichnisse asm und istio-1.10.6-asm.2. Das Verzeichnis asm enthält die Konfiguration für die Installation. Das Verzeichnis istio-1.10.6-asm.2 enthält den extrahierten Inhalt der Installationsdatei, die istioctl, Beispiele und Manifeste enthält. Wenn Sie --output-dir angeben und das Verzeichnis bereits die erforderlichen Dateien enthält, verwendet das Skript diese Dateien, anstatt sie noch einmal herunterzuladen.

-r|--revision_name REVISION NAME>

Ein Überarbeitungslabel ist ein Schlüssel/Wert-Paar, das auf der Steuerungsebene festgelegt wird. Der Schlüssel des Überarbeitungslabels ist immer istio.io/rev. Standardmäßig legt das Skript den Wert für das Überarbeitungslabel anhand der Anthos Service Mesh-Version fest, z. B. asm-1106-2. Fügen Sie diese Option ein, wenn Sie den Standardwert überschreiben und einen eigenen Wert angeben möchten. Das Argument REVISION NAME muss ein DNS-1035-Label sein und aus alphanumerischen Zeichen in Kleinbuchstaben oder - bestehen, mit einem Buchstaben beginnen und mit einem alphanumerischen Zeichen enden (z. B. my-name' oder abc-123). Der für die Validierung verwendete Regex lautet: '[a-z]([-a-z0-9]*[a-z0-9])?')

-s|--service_account ACCOUNT

Der Name eines Dienstkontos, das zum Installieren von Anthos Service Mesh verwendet wird. Wenn nicht angegeben, wird das aktive Nutzerkonto in der aktuellen gcloud-Konfiguration verwendet. Wenn Sie das aktive Nutzerkonto ändern müssen, führen Sie gcloud auth login aus.

-k|--key_file FILE_PATH

Die Schlüsseldatei für ein Dienstkonto. Lassen Sie diese Option weg, wenn Sie kein Dienstkonto verwenden.

Optionen für das benutzerdefinierte Citadel-Zertifikat

Wenn Sie --ca citadel angegeben haben und eine benutzerdefinierte Zertifizierungsstelle nutzen, verwenden Sie die folgenden Optionen:

  • --ca_cert FILE_PATH: Zwischenzertifikat
  • --ca_key FILE_PATH: Schlüssel für das Zwischenzertifikat
  • --root_cert FILE_PATH: Root-Zertifikat
  • --cert_chain FILE_PATH: Zertifikatskette

Weitere Informationen finden Sie unter Vorhandene CA-Zertifikate einbinden.

Flags zur Aktivierung

Über die Flags, die mit --enable starten, kann das Skript die erforderlichen Google APIs aktivieren, die erforderlichen IAM-Berechtigungen (Identity and Access Management) festlegen und Ihre Cluster aktualisieren. Sie können Ihr Projekt und Ihre Cluster bei Bedarf selbst aktualisieren, bevor Sie das Skript ausführen, wie unter Projekt einrichten und Cluster einrichten des Installationsleitfadens für mehrere Projekte beschrieben. Keines dieser Flags ist mit --only_validate kompatibel und das Skript wird in diesem Fall mit einem Fehler beendet.

-e|--enable_all
Das Skript kann alle unten beschriebenen Aktivierungsaktionen ausführen.
--enable_cluster_roles
Das Skript kann den GCP-Nutzer oder das Dienstkonto, der bzw. das Skript ausführt, an die Rolle cluster-admin in Ihrem Cluster binden. Das Skript ermittelt das Nutzerkonto mit dem Befehl gcloud config get-value core/account. Wenn Sie das Skript lokal mit einem Nutzerkonto ausführen möchten, müssen Sie vor der Ausführung den Befehl gcloud auth login aufrufen. Wenn Sie das Nutzerkonto ändern müssen, führen Sie den Befehl gcloud config set core/account GCP_EMAIL_ADDRESS aus. Dabei ist GCP_EMAIL_ADDRESS das Konto, mit dem Sie sich bei Google Cloud anmelden.
--enable_cluster_labels
Das Skript kann die erforderlichen Clusterlabels festlegen.
--enable_gcp_components

Das Skript kann die folgenden von Google Cloud verwalteten Dienste und Komponenten aktivieren:

--enable_gcp_apis

Das Skript kann alle erforderlichen Google APIs aktivieren.

--enable_gcp_iam_roles

Das Skript kann die erforderlichen IAM-Berechtigungen festlegen.

--enable_registration

Erlauben Sie dem Skript, den Cluster für das Projekt zu registrieren, in dem sich der Cluster befindet. Wenn Sie dieses Flag nicht hinzufügen, führen Sie die Schritte unter Cluster registrieren aus, um den Cluster manuell zu registrieren. Im Gegensatz zu den anderen Aktivierungs-Flags ist --enable_registration nur in --enable_all enthalten, wenn Sie eine Option wie --option vm oder --option hub-meshca angeben, für die eine Cluster-Registrierung erforderlich ist. Andernfalls müssen Sie dieses Flag separat angeben.

Weitere Flags

--dry_run
Befehle drucken, aber nicht ausführen
--only_validate
Führen Sie die Validierung durch, aber aktualisieren Sie nicht das Projekt oder den Cluster und installieren Sie nicht Anthos Service Mesh. Dieses Flag ist nicht mit den Flags zur Aktivierung kompatibel. Das Skript wird mit einem Fehler beendet, wenn Sie --only_validate mit einem Flag zur Aktivierung angeben.
--print_config
Anstatt die Anthos Service Mesh zu installieren, drucken Sie die gesamte kompilierte YAML als Standardausgabe (stdout). Alle anderen Ausgaben werden in Standardfehler (stderr) geschrieben, auch wenn sie normalerweise an stdout gesendet würden. Das Skript überspringt alle Validierungen und die Einrichtung, wenn Sie dieses Flag angeben.
--disable_canonical_service
Standardmäßig stellt das Skript den Canonical Service-Controller in Ihrem Cluster bereit. Wenn Sie nicht möchten, dass das Skript den Controller bereitstellt, geben Sie --disable_canonical_service an. Weitere Informationen finden Sie unter Canonical Service-Controller aktivieren und deaktivieren.
-h|--help
Eine Hilfemeldung mit den Optionen und Flags anzeigen und den Vorgang beenden.
-v|--verbose
Gibt bei Ausführung des Skripts den Befehl aus, der als Nächstes ausgeführt wird. Mit dem Flag --verbose gibt das Skript den Befehl auch nach der Ausführung aus.
--version
Gibt die Version von install_asm aus und beendet den Vorgang. Wenn der Befehl keine Version ausgibt, laden Sie die neueste Version von install_asm_1.10 herunter.

Grundlegendes zum Skript

Obwohl Sie das Skript von einem sicheren Speicherort in Cloud Source Repositories herunterladen, steht das Skript auch auf GitHub zur Verfügung, damit Sie das Skript vor dem Download prüfen können. Das Skript prüft, ob Ihr Projekt und Ihr Cluster die Anforderungen von Anthos Service Mesh erfüllen, automatisiert alle Schritte, die Sie zum Konfigurieren Ihres Projekts und Clusters manuell ausführen würden und installiert dann Anthos Service Mesh mit dem Befehl istioctl install.

Mit Anthos Service Mesh 1.10.6 verwenden Sie die Version des install_asm-Skripts aus dem Zweig release-1.10-asm. Eine Erklärung zur Versionsverwaltung und zum Releaseprozess finden Sie unter Versionsverwaltung/Release.

Validierung

validate_dependencies() {
  validate_node_pool
  validate_k8s
  validate_expected_control_plane

  if [[ "${MODE}" = "migrate" ]]; then
    validate_istio_version
  elif [[ "${MODE}" = "upgrade" ]]; then
    validate_asm_version
    validate_ca_consistency
  fi
}

Das Skript install_asm prüft Folgendes:

  • Die Projekt-ID, den Clusternamen und den Clusterstandort, die Sie als Parameterwerte eingegeben haben, sind gültig.
  • Der Cluster erfüllt den mindestens erforderlichen Maschinentyp und die Anzahl der Knoten.

Projekt einrichten

Erforderliche Rollen

Wenn Sie das Flag --enable_all oder --enable_gcp_iam_roles angegeben haben, legt das Skript die erforderlichen IAM-Berechtigungen fest.

required_iam_roles() {
  # meshconfig.admin - required for init, stackdriver, UI elements, etc.
  # servicemanagement.admin/serviceusage.serviceUsageAdmin - enables APIs
  if can_modify_gcp_components || \
     can_modify_cluster_labels || \
     can_modify_cluster_roles; then
    echo roles/container.admin
  fi
  if can_modify_gcp_components; then
    echo roles/meshconfig.admin
  fi
  if can_modify_gcp_apis; then
    echo roles/servicemanagement.admin
    echo roles/serviceusage.serviceUsageAdmin
  fi
  if can_modify_gcp_iam_roles; then
    echo roles/resourcemanager.projectIamAdmin
  fi
  if is_sa; then
    echo roles/iam.serviceAccountAdmin
  fi
  if can_register_cluster; then
    echo roles/gkehub.admin
  fi
  if [[ "${CA}" = "gcp_cas" ]]; then
    echo roles/privateca.admin
  fi
  if [[ "${_CI_I_AM_A_TEST_ROBOT}" -eq 1 ]]; then
    echo roles/compute.admin
    echo roles/iam.serviceAccountKeyAdmin
  fi
}

Erforderliche Google APIs

Wenn Sie das Flag --enable_all oder --enable_apis angegeben haben, aktiviert das Skript die erforderlichen APIs:

required_apis() {
    cat << EOF
container.googleapis.com
monitoring.googleapis.com
logging.googleapis.com
cloudtrace.googleapis.com
meshtelemetry.googleapis.com
meshconfig.googleapis.com
iamcredentials.googleapis.com
gkeconnect.googleapis.com
gkehub.googleapis.com
cloudresourcemanager.googleapis.com
stackdriver.googleapis.com
EOF
  case "${CA}" in
   mesh_ca)
     echo meshca.googleapis.com
     ;;
   gcp_cas)
     echo privateca.googleapis.com
     ;;
    *);;
  esac

  if [[ "${_CI_I_AM_A_TEST_ROBOT}" -eq 1 ]]; then
    echo compute.googleapis.com
  fi
}

Cluster einrichten

Das Skript führt die folgenden Aktualisierungen Ihres Clusters durch, wenn Sie das Flag --enable_all oder eine der unten aufgeführten detaillierteren Flags für die Aktivierung angegeben haben:

Cluster-Update Flag
Aktiviert die Komponente Workload Identity, mit der GKE-Anwendungen sicher auf Google Cloud-Dienste zugreifen können. --enable_gcp_components
Aktiviert Cloud Monitoring und Cloud Logging in GKE. --enable_gcp_components
Legt das Label mesh_id auf dem Cluster fest. Dies ist erforderlich, damit Messwerte auf den Anthos Service Mesh-Seiten in der Google Cloud Console angezeigt werden. --enable_cluster_labels
Legt ein Label wie asmv=asm-1106-2 fest, damit Sie sehen können, dass der Cluster vom Skript geändert wurde. --enable_cluster_labels
Bindet den GCP-Nutzer oder das Dienstkonto, von dem das Skript ausgeführt wird, an die Clusteradministrator-Rolle für Ihren Cluster. --enable_cluster_roles

Nächste Schritte