Établissez une connexion entre le client kubectl et le plan de contrôle d'une instance ASM pour gérer les ressources Istio de cette instance.
Contexte
kubectl est l'outil en ligne de commande des clusters Kubernetes. Utilisez le client kubectl pour gérer un cluster, y installer et déployer des applications conteneurisées, ainsi que pour gérer les ressources Service Mesh.
La connexion décrite dans cette rubrique cible le plan de contrôle de l'instance ASM.
Prérequis
Autorisations RBAC : votre compte doit disposer d'un rôle RBAC ASM prédéfini couvrant les ressources que vous souhaitez gérer. Pour plus d'informations, consultez la section Autorisations accordées par les rôles RBAC prédéfinis.
Accès Internet (onglet Internet Access uniquement) : l'accès Internet au serveur API doit être activé pour l'instance ASM. Autrement dit, l'instance ASM expose son serveur API via une adresse IP élastique (EIP) Alibaba Cloud. Vous pouvez alors utiliser n'importe quelle machine connectée à Internet comme client.
Procédure
Installez et configurez le client kubectl. Pour obtenir des informations sur les versions de Kubernetes, consultez les notes de version Kubernetes. Pour les instructions d'installation, reportez-vous à la documentation Install and Set Up kubectl.
-
Configurez les identifiants de connexion de l'instance ASM.
Connectez-vous à la console ASM. Dans le volet de navigation de gauche, choisissez .
Sur la page Mesh Management, cliquez sur le nom de l'instance ASM. Dans le volet de navigation de gauche, choisissez .
Dans le coin supérieur droit de la page Base Information, cliquez sur Connection.
-
Dans le panneau Connection, sélectionnez l'onglet correspondant au réseau de votre client. Cliquez sur l'onglet Internet Access si le client atteint l'instance ASM via Internet. Cliquez sur l'onglet Internal Access si le client atteint l'instance ASM via le réseau interne.
RemarqueSi l'accès Internet au serveur API n'est pas activé pour l'instance ASM, la configuration de connexion pour l'accès Internet n'apparaît pas dans le panneau Connection.
Cliquez sur Copy Kubeconfig File, puis copiez le contenu dans le fichier
$HOME/.kube/configde votre ordinateur local, emplacement attendu par kubectl pour les identifiants. Si le fichierconfign'existe pas dans le répertoire$HOME/.kube, créez-le manuellement.
-
Exécutez la commande suivante pour vérifier que la connexion est établie.
kubectl get ns
Si les informations relatives aux namespaces s'affichent, la connexion est opérationnelle.
Si aucune information de namespace n'apparaît, vérifiez les points suivants, puis exécutez à nouveau la commande :
Le contenu kubeconfig copié à l'étape 2 a bien été enregistré dans le fichier
$HOME/.kube/configsur le client.Si le client atteint l'instance via Internet, l'accès Internet au serveur API doit être activé pour l'instance ASM. Consultez la section Prérequis.
Le rôle RBAC de votre compte couvre les ressources interrogées. Consultez la section Autorisations accordées par les rôles RBAC prédéfinis.
Autorisations accordées par les rôles RBAC prédéfinis
Service Mesh (ASM) s'appuie sur le mécanisme de contrôle d'accès basé sur les rôles (RBAC) fourni par Kubernetes et propose des rôles RBAC prédéfinis qui accordent aux utilisateurs un périmètre d'autorisations d'accès aux ressources Service Mesh.
Le rôle istio-admin fait partie de ces rôles prédéfinis. Il accorde les autorisations suivantes :
Namespaces sur le plan de contrôle : créer, supprimer, obtenir, lister, patcher, mettre à jour et surveiller (watch).
Ressources Istio : créer, supprimer, obtenir, lister, patcher, mettre à jour et surveiller (watch). Le ClusterRole ci-dessous répertorie les groupes d'API Istio couverts par ces autorisations.
**Ressources
istiogatewaysdans le groupe d'APIistio.alibabacloud.com** : créer, supprimer, obtenir, lister, patcher, mettre à jour et surveiller (watch). Utilisez ces ressources pour définir les services de passerelle d'entrée (ingress gateway).**Autres ressources dans le groupe d'API
istio.alibabacloud.com** : obtenir et lister uniquement.
Le ClusterRole suivant définit les autorisations du rôle prédéfini istio-admin. ASM fournit ce ClusterRole ; sa définition est donnée à titre indicatif.
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: istio-admin
rules:
- apiGroups: [""]
resources: ["namespaces"]
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- config.istio.io
- networking.istio.io
- authentication.istio.io
- rbac.istio.io
- security.istio.io
resources: ["*"]
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- istio.alibabacloud.com
resources: ["istiogateways"]
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- istio.alibabacloud.com
resources: ["*"]
verbs:
- get
- list