Reference

Cette page décrit les arguments disponibles pour le script. Elle fournit également des informations sur les modifications que le script apporte à votre projet et à votre cluster GKE.

Options

-p|--project_id CLUSTER_PROJECT_ID
ID du projet dans lequel le cluster a été créé.
-n|--cluster_name CLUSTER_NAME
Nom du cluster.
-l|--cluster_location CLUSTER_LOCATION
Zone (pour les clusters à zone unique) ou région (pour les clusters régionaux) dans laquelle le cluster a été créé.
-m|--mode {install|migrate|upgrade}
Saisissez install si vous effectuez une nouvelle installation d'Anthos Service Mesh. Saisissez migrate si vous effectuez une migration depuis Istio. Saisissez upgrade pour mettre à niveau une installation Anthos Service Mesh existante vers une nouvelle version.
-c|--ca {mesh_ca|citadel}
Pour les nouvelles installations, si vous souhaitez utiliser l'autorité de certification Mesh, vous n'avez pas besoin d'inclure cette option, car le script est défini par défaut sur "Mesh CA". Pour les mises à niveau, vous n'avez pas besoin d'inclure cette option, car le script ne vous permet pas de modifier l'autorité de certification. Pour les migrations, vous devez spécifier citadel ou mesh_ca. Si vous pouvez planifier un temps d'arrêt pour la migration, nous vous recommandons d'utiliser mesh_ca. Pour en savoir plus sur l'autorité de certification à utiliser, consultez la page Choisir une autorité de certification. Pour connaître les options supplémentaires que vous devez spécifier lors de l'utilisation d'Istio CA, consultez la section Options pour le certificat personnalisé Istio CA.
--co|--custom_overlay YAML_FILE
Nom du fichier YAML de la ressource personnalisée IstioOperator pour activer une fonctionnalité qui n'est pas activée par défaut. Le script doit pouvoir localiser le fichier YAML. Par conséquent, celui-ci doit se trouver dans le même répertoire que le script, ou vous pouvez spécifier un chemin d'accès relatif. Pour ajouter plusieurs fichiers, spécifiez --co|--custom_overlay et le nom du fichier, par exemple : --co overlay_file1.yaml --co overlay_file2.yaml --co overlay_file3.yaml
-o|--option OPTION_FILE
Nom d'un fichier YAML du package anthos-service-mesh contenant la ressource personnalisée IstioOperator pour activer une fonctionnalité facultative. Lorsque vous incluez l'un de ces fichiers, vous n'avez pas besoin de télécharger le package anthos-service-mesh au préalable, et vous ne spécifiez pas l'extension .yaml. Si vous devez modifier l'un des fichiers, téléchargez le package anthos-service-mesh, apportez vos modifications et utilisez l'option --custom_overlay. Pour ajouter plusieurs fichiers, spécifiez -o|--option et le nom du fichier, par exemple : -o option_file1 -o option_file2 -o option_file3
-s|--service_account ACCOUNT
Nom d'un compte de service permettant d'installer Anthos Service Mesh. S'il n'est pas spécifié, le compte utilisateur actif dans la configuration gcloud actuelle est utilisé. Si vous devez modifier le compte utilisateur actif, exécutez la commande gcloud auth login.
-k|--key_file FILE_PATH
Fichier de clé d'un compte de service. Ne renseignez pas cette option si vous n'utilisez pas de compte de service.
-D|--output_dir DIR_PATH
S'il n'est pas spécifié, le script crée un répertoire temporaire dans lequel il télécharge les fichiers et les configurations nécessaires à l'installation d'Anthos Service Mesh. Spécifiez l'option --output-dir pour désigner un répertoire à utiliser à la place. Une fois l'opération terminée, le répertoire spécifié contient les sous-répertoires asm et istio-1.9.8-asm.6. Le répertoire asm contient la configuration pour l'installation. Le répertoire istio-1.9.8-asm.6 contient le contenu extrait du fichier d'installation, qui contient istioctl, des exemples et des fichiers manifestes. Si vous spécifiez --output-dir et que le répertoire contient déjà les fichiers nécessaires, le script utilise ces fichiers au lieu de les télécharger à nouveau.

Options pour le certificat personnalisé Istio CA

Si vous avez spécifié --ca citadel et que vous utilisez une autorité de certification personnalisée, incluez les options suivantes :

  • --ca_cert FILE_PATH : le certificat intermédiaire
  • --ca_key FILE_PATH : la clé du certificat intermédiaire
  • --root_cert FILE_PATH : le certificat racine
  • --cert_chain FILE_PATH : la chaîne de certificats

Pour en savoir plus, consultez la page Connecter des certificats CA existants.

Options d'activation

Les options commençant par --enable permettent au script d'activer les API Google, de définir les autorisations IAM (Identity and Access Management) et de mettre à jour votre cluster. Si vous préférez, vous pouvez mettre à jour vous-même votre projet et votre cluster avant d'exécuter le script, comme décrit sur les pages Configurer le projet et Configurer un cluster du guide d'installation sur plusieurs projets. L'ensemble de ces options ne sont pas compatibles avec --only_validate. Dans ce cas, le script se termine par une erreur.

-e|--enable_all
Autorise le script à effectuer toutes les actions d'activation individuelles décrites ci-dessous.
--enable_cluster_roles
Autorise le script à tenter de lier l'utilisateur ou le compte de service GCP qui exécute le script au rôle cluster-admin sur le cluster. Le script identifie le compte utilisateur à l'aide de la commande gcloud config get-value core/account. Si vous exécutez le script localement avec un compte utilisateur, veillez à appeler la commande gcloud auth login avant d'exécuter le script. Si vous devez modifier le compte utilisateur, exécutez la commande gcloud config set core/account GCP_EMAIL_ADDRESS, où GCP_EMAIL_ADDRESS correspond au compte que vous utilisez pour vous connecter à Google Cloud.
--enable_cluster_labels
Autorise le script à définir les libellés de cluster requis.
--enable_gcp_components

Autorise le script à activer les services gérés et composants Google Cloud requis suivants :

--enable_gcp_apis

Autorise le script à activer toutes les API Google requises.

--enable_gcp_iam_roles

Autorise le script à définir les autorisations IAM requises.

--enable_registration

Autorisez le script à enregistrer le cluster dans le projet hébergeant le cluster. Si vous n'incluez pas cette option, suivez les étapes décrites dans la section Enregistrer un cluster pour enregistrer manuellement votre cluster. Notez que, contrairement aux autres options d'activation, --enable_registration n'est inclus dans --enable_all que lorsque vous spécifiez une option (par exemple, --option vm ou --option hub-meshca) nécessitant l'enregistrement du cluster. Sinon, vous devez spécifier cette option séparément.

Autres options

--dry_run
Imprimez les commandes, mais ne les exécutez pas.
--only_validate
Exécute la validation sans mettre à jour le projet ou le cluster, et sans installer Anthos Service Mesh. Cette option n'est pas compatible avec les options d'activation. Le script se termine par une erreur si vous spécifiez --only_validate avec une option d'activation.
--print_config
Au lieu d'installer Anthos Service Mesh, imprimez tout le fichier YAML compilé en sortie standard (stdout). Toutes les autres sorties sont générées pour les erreurs standards (stderr), même si elles se rendent normalement dans stdout. Le script ignore toutes les validations et la configuration lorsque vous spécifiez cette option.
--disable_canonical_service
Par défaut, le script déploie le contrôleur de service canonique sur votre cluster. Si vous ne souhaitez pas que le script déploie le contrôleur, spécifiez l'option --disable_canonical_service. Pour en savoir plus, consultez la page Activer et désactiver le contrôleur de service canonique.
-h|--help
Affiche un message d'aide décrivant les options, puis ferme.
-v|--verbose
Lorsque le script s'exécute, imprime la commande qu'il exécutera ensuite. Avec l'option --verbose, le script imprime également la commande après l'exécution.
--version
Imprimez la version de install_asm, puis quittez. Si la commande ne génère pas de version, téléchargez la version la plus récente de install_asm_1.9.

Comprendre le script

Même si vous téléchargez le script à partir d'un emplacement sécurisé de Cloud Source Repositories, le script est également disponible sur GitHub afin que vous puissiez voir ce qu'il fait avant de le télécharger. Le script valide que votre projet et votre cluster répondent aux exigences d'Anthos Service Mesh, automatise toutes les étapes que vous devez effectuer manuellement pour configurer votre projet et votre cluster, puis installe Anthos Service Mesh à l'aide de la commande istioctl install.

Avec Anthos Service Mesh 1.9.8, vous utilisez la version du script install_asm sur la branche release-1.9-asm. Pour obtenir une explication du processus de gestion et de lancement des versions, consultez la page Gestion des versions/Lancement.

Validation

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
}

Le script install_asm vérifie que :

  • L'ID du projet ainsi que le nom et l'emplacement du cluster que vous avez saisis en tant que valeurs de paramètres sont valides.
  • Le cluster remplit les critères minimaux requis de type de machine et de nombre de nœuds.

Configurer le projet

Rôles requis

Si vous avez inclus l'option --enable_all ou --enable_gcp_iam_roles, le script définit les autorisations IAM requises.

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
}

API Google requises

Si vous avez inclus l'option --enable_all ou --enable_apis, le script active les API requises :

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
}

Configurer votre cluster

Le script effectue les mises à jour suivantes sur votre cluster si vous avez inclus l'option --enable_all ou l'une des options d'activation plus précises répertoriées ci-dessous :

Mise à jour du cluster Option
Active Workload Identity, qui permet aux applications GKE d'accéder en toute sécurité aux services Google Cloud. --enable_gcp_components
Active Cloud Monitoring et Cloud Logging sur GKE. --enable_gcp_components
Définit le libellé mesh_id sur le cluster, qui est nécessaire pour que les métriques s'affichent sur les pages Anthos Service Mesh de la console Google Cloud. --enable_cluster_labels
Définit un libellé tel que asmv=asm-198-6 pour indiquer que le cluster a été modifié par le script. --enable_cluster_labels
Lie l'utilisateur ou le compte de service GCP qui exécute le script au rôle "cluster-admin" sur votre cluster. --enable_cluster_roles

Étapes suivantes