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}
Geben Sie install ein, wenn Sie eine neue Installation von Anthos Service Mesh durchführen. Geben Sie migrate ein, wenn Sie von Istio migrieren. Geben Sie upgrade ein, um eine vorhandene Anthos Service Mesh-Installation auf eine neue Version zu aktualisieren.
-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 Citadel angeben müssen, finden Sie unter Optionen für ein benutzerdefiniertes Zertifikat für Citadel.
--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, die die CR IstioOperator enthält, um eine optionale Funktion 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
-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.
-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. Mit dem Flag --output-dir geben Sie stattdessen ein vorhandenes Verzeichnis an. Nach Abschluss enthält das angegebene Verzeichnis die Unterverzeichnisse asm und istio-1.8.6-asm.8. Das Verzeichnis asm enthält die Konfiguration für die Installation. Das Verzeichnis istio-1.8.6-asm.8 enthält den extrahierten Inhalt der Installationsdatei, die istioctl, Beispiele und Manifeste enthält.

Optionen für das benutzerdefinierte Citadel-Zertifikat

Wenn Sie 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 Flags zur Aktivierung ist --enable-registration nicht in --enable_all enthalten. Sie geben dieses Flag separat an.

Weitere Flags

-v|--verbose
Befehle vor und nach der Ausführung drucken
--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.
--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.8 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.8.6 verwenden Sie die Version des install_asm-Skripts aus dem Zweig release-1.8-asm. Eine Erklärung zur Versionsverwaltung und zum Releaseprozess finden Sie unter Versionsverwaltung/Release.

Validierung

validate_args() {
  if [[ "${MODE}" == "install" && -z "${CA}" ]]; then
    CA="mesh_ca"
  fi

  if is_managed; then
    if [[ "${MODE}" != "install" ]]; then
      fatal "Migrate and upgrade are incompatible with managed control plane."
    fi

    if [[ "${CA}" == "citadel" ]]; then
      fatal "Citadel is not supported with managed control plane."
    fi

    if [[ "${CA}" == "gcp_cas" ]]; then
      fatal "Google Certificate Authority Service integration is not supported with managed control plane."
    fi

    if [[ "${CUSTOM_CA}" -eq 1 ]]; then
      fatal "Specifying a custom CA with managed control plane is not supported."
    fi
  fi

  local MISSING_ARGS=0
  while read -r REQUIRED_ARG; do
    if [[ -z "${!REQUIRED_ARG}" ]]; then
      MISSING_ARGS=1
      warn "Missing value for ${REQUIRED_ARG}"
    fi
    readonly "${REQUIRED_ARG}"
  done <<EOF
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
}

Die Funktionen validate_args und validate_dependencies:

  • Prüfen Sie, ob alle erforderlichen Tools installiert sind.
  • Prüfen Sie, ob die Projekt-ID, der Clustername und der Clusterstandort, die Sie als Parameterwerte eingegeben haben, gültig sind.
  • Der Cluster muss den erforderlichen Mindestwertfür den Maschinentyp und die erforderliche Mindestanzahl an Knoten aufweisen.

Projekt einrichten

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

required_apis() {
    cat << EOF
container.googleapis.com
compute.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
}

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

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-186-8 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