1.12. Gestion des utilisateurs et des profils
1.12.1. Création des membres de Red Hat OpenShift Service Mesh
ServiceMeshMember
permettent aux administrateurs de Red Hat OpenShift Service Mesh de déléguer des permissions pour ajouter des projets à un service mesh, même lorsque les utilisateurs respectifs n'ont pas d'accès direct au projet de service mesh ou à la liste des membres. Bien que les administrateurs de projet reçoivent automatiquement l'autorisation de créer la ressource ServiceMeshMember
dans leur projet, ils ne peuvent pas la diriger vers ServiceMeshControlPlane
jusqu'à ce que l'administrateur du service mesh accorde explicitement l'accès au service mesh. Les administrateurs peuvent accorder aux utilisateurs des autorisations d'accès au maillage en leur attribuant le rôle d'utilisateur mesh-user
. Dans cet exemple, istio-system
est le nom du projet de plan de contrôle Service Mesh.
oc policy add-role-to-user -n istio-system --role-namespace istio-system mesh-user <user_name>
Les administrateurs peuvent modifier la liaison de rôle mesh-user
dans le projet de plan de contrôle Service Mesh pour spécifier les utilisateurs et les groupes auxquels l'accès est accordé. Le site ServiceMeshMember
ajoute le projet au site ServiceMeshMemberRoll
dans le projet de plan de contrôle Service Mesh auquel il fait référence.
apiVersion: maistra.io/v1 kind: ServiceMeshMember metadata: name: default spec: controlPlaneRef: namespace: istio-system name: basic
La liaison de rôle mesh-users
est créée automatiquement après que l'administrateur a créé la ressource ServiceMeshControlPlane
. Un administrateur peut utiliser la commande suivante pour ajouter un rôle à un utilisateur.
$ oc policy add-role-to-user
L'administrateur peut également créer le lien de rôle mesh-user
avant de créer la ressource ServiceMeshControlPlane
. Par exemple, l'administrateur peut la créer dans la même opération oc apply
que la ressource ServiceMeshControlPlane
.
Cet exemple ajoute une liaison de rôle pour alice
:
apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: namespace: istio-system name: mesh-users roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: mesh-user subjects: - apiGroup: rbac.authorization.k8s.io kind: User name: alice
1.12.2. Création de profils de plan de contrôle Service Mesh
Vous pouvez créer des configurations réutilisables avec les profils ServiceMeshControlPlane
. Les utilisateurs individuels peuvent étendre les profils qu'ils créent avec leurs propres configurations. Les profils peuvent également hériter des informations de configuration d'autres profils. Par exemple, vous pouvez créer un plan de contrôle comptable pour l'équipe comptable et un plan de contrôle marketing pour l'équipe marketing. Si vous créez un modèle de développement et un modèle de production, les membres de l'équipe marketing et de l'équipe comptable peuvent étendre les profils de développement et de production en les personnalisant en fonction de leur équipe.
Lorsque vous configurez des profils de plan de contrôle Service Mesh, qui suivent la même syntaxe que ServiceMeshControlPlane
, les utilisateurs héritent des paramètres de manière hiérarchique. L'Opérateur est livré avec un profil default
avec des paramètres par défaut pour Red Hat OpenShift Service Mesh.
1.12.2.1. Création du ConfigMap
Pour ajouter des profils personnalisés, vous devez créer un ConfigMap
nommé smcp-templates
dans le projet openshift-operators
. Le conteneur Operator monte automatiquement le conteneur ConfigMap
.
Conditions préalables
- Un opérateur de maillage de services installé et vérifié.
-
Un compte avec le rôle
cluster-admin
. Si vous utilisez Red Hat OpenShift Dedicated, vous devez avoir un compte avec le rôlededicated-admin
. - Emplacement du déploiement de l'opérateur.
-
Accès à la CLI OpenShift (
oc
).
Procédure
-
Connectez-vous au CLI de OpenShift Container Platform en tant que
cluster-admin
. Si vous utilisez Red Hat OpenShift Dedicated, vous devez avoir un compte avec le rôlededicated-admin
. À partir de l'interface de programmation, exécutez cette commande pour créer le ConfigMap nommé
smcp-templates
dans le projetopenshift-operators
et remplacez<profiles-directory>
par l'emplacement des fichiersServiceMeshControlPlane
sur votre disque local :oc create configmap --from-file=<profiles-directory> smcp-templates -n openshift-operators
Vous pouvez utiliser le paramètre
profiles
dansServiceMeshControlPlane
pour spécifier un ou plusieurs modèles.apiVersion: maistra.io/v2 kind: ServiceMeshControlPlane metadata: name: basic spec: profiles: - default
1.12.2.2. Définir la bonne politique de réseau
Service Mesh crée des stratégies réseau dans le plan de contrôle Service Mesh et les espaces de noms membres pour autoriser le trafic entre eux. Avant de procéder au déploiement, tenez compte des conditions suivantes pour vous assurer que les services de votre maillage de services qui étaient auparavant exposés par l'intermédiaire d'une route OpenShift Container Platform.
- Le trafic dans le maillage de services doit toujours passer par la passerelle d'entrée (ingress-gateway) pour qu'Istio fonctionne correctement.
- Déployer des services externes au maillage de services dans des espaces de noms distincts qui ne font partie d'aucun maillage de services.
-
Les services non maillés qui doivent être déployés dans un espace de noms enlisé de maillage de services doivent étiqueter leurs déploiements
maistra.io/expose-route: "true"
, ce qui garantit que les routes d'OpenShift Container Platform vers ces services fonctionnent toujours.