Rancher¶
Rancher est une plateforme de gestion de conteneurs, englobant un large ensemble de fonctionnalités.
Elle est utilisée dans Caascad uniquement comme moyen d'accéder aux clusters Kubernetes.
Note
Dans ce tutoriel, remplacez les valeurs suivantes comme suit :
ZONE_NAME
à remplacer par le nom de votre zone d'administration (commence par ocb-).
Accéder à Rancher¶
Dans votre environnement d'administration, le service Rancher est situé à l'adresse suivante :
https://rancher.ZONE_NAME.caascad.com
Architecture¶
L'architecture Rancher de Caascad se compose d'un serveur Rancher situé dans votre zone d'administration et d'agents qui s'exécutent dans vos clusters.
Server Rancher: inclut tous les composants logiciels utilisés pour gérer l'ensemble du déploiement Rancher.
Agents Rancher (Cluster Agent & Node agent): gèrent le cycle de vie des déploiements de vos environnements clients et renvoyent au serveur les événements, les statistiques, les informations sur les nœuds et leur état de santé.

Rôles disponibles¶
Caascad vous fournit deux rôles : caascad-rancher-viewer
et caascad-rancher-admin
.
-
caascad-rancher-viewer: Permissions pour des actions en lecture seule. Les utilisateurs avec ce rôle peuvent tout voir dans le projet mais ne peuvent pas créer, mettre à jour ou supprimer quoi que ce soit.
-
caascad-rancher-admin: Ce rôle donne un contrôle total sur le cluster et toutes les ressources qu'il contient.
Ces rôles sont uniquement valables pour Rancher et ne s'appliquent pas aux clusters Kubernetes. Ainsi, si un utilisateur a accès à un cluster, il aura automatiquement tous les droits sur celui-ci. Il n'est pas possible pour le moment dans Caascad de gérer les RBAC (Role Based Access Control) au niveau de Kubernetes.
Connexion¶
Pour pouvoir vous connecter à l'interface Web de Rancher, vous devez utiliser vos identifiants/ mot de passe Keycloak. Pour plus d'informations sur Keycloak, consultez la page Authentification.
- Cliquez sur "Log In with Keycloak"

- Cliquez sur "Log In"

- Puis entrez vos nom d'utilisation / Mot de passe

- Vous êtes désormais prêt à utiliser Rancher !
Accéder à un cluster avec kubectl et kubeconfig¶
Cette section décrit comment manipuler votre cluster Kubernetes avec kubectl depuis l'interface utilisateur de Rancher ou depuis votre poste de travail.
Pour plus d'informations sur l'utilisation de kubectl, consultez la Documentation Kubernetes: Overview of kubectl.
Accéder aux clusters avec le shell kubectl dans l'interface utilisateur de Rancher¶
Vous pouvez accéder à vos clusters et les gérer en vous connectant à Rancher et en ouvrant le shell kubectl dans l'interface utilisateur. Aucune autre configuration n'est nécessaire.
- Connectez-vous à Rancher. Dans la vue globale, ouvrez le cluster auquel vous voulez accéder avec kubectl.

- Ensuite, cliquez sur "Launch kubectl".

- Utilisez la fenêtre qui s'ouvre pour interagir avec votre cluster Kubernetes.

Accéder aux clusters avec kubectl depuis votre poste de travail¶
Cette section décrit comment télécharger le fichier kubeconfig de votre cluster, lancer kubectl depuis votre poste de travail et accéder à votre cluster.
- Dans la vue globale, ouvrez le cluster auquel vous voulez accéder avec kubectl.

- Cliquez sur le fichier Kubeconfig

- Copiez le contenu affiché dans votre presse-papiers

- Collez le contenu dans un nouveau fichier sur votre ordinateur local et déplacez le fichier vers
~/.kube/config
.
cp /path/to/config-file ~/.kube/config
- Maintenant, depuis votre poste de travail, lancez kubectl et utilisez-le pour interagir avec votre cluster Kubernetes.
Astuce
Si vous avez installé des outils de ligne de commande Kubernetes en amont, tels que kubectl ou helm, vous devrez les configurer avec le chemin d'accès correct à kubeconfig. Cela peut se faire soit en exportant la variable d'environnement KUBECONFIG, soit en invoquant l'option de ligne de commande --kubeconfig.
- Exploitez la variable d'environnement KUBECONFIG :
export KUBECONFIG=$HOME/.kube/config
kubectl get pods --all-namespaces
helm ls --all-namespaces
- L'emplacement par défaut du fichier kubeconfig est
~/.kube/config
, mais vous pouvez utiliser n'importe quel répertoire et le spécifier en utilisant l'option --kubeconfig, comme dans cette commande :
kubectl --kubeconfig /custom/path/kube.config get pods
Clés API¶
Si vous voulez interagir avec Rancher au travers d'un programme, you aurez besoin d'un clé API.
Les clés API sont composées de 4 éléments :
- Endpoint: il s'agit de l'adresse IP et du chemin que les autres applications utilisent pour envoyer des requêtes à l'API Rancher.
- Access Key: le nom d'utilisateur du jeton.
- Secret Key: le mot de passe du jeton. Pour les applications qui vous demandent deux chaînes différentes pour l'authentification API, vous entrez généralement les deux clés ensemble.
- Bearer Token: le nom d'utilisateur et le mot de passe du jeton concaténés ensemble.
Suivez les instructions de cette section pour obtenir une clé :
Créer une clé API¶
- Cliquez sur votre Avatar utilisateur et selectionnez "API & Keys" depuis les paramètres utilisateur dans le menu en haut à droite.

- Cliquez sur Add Key.

Astuce
- Saisissez une description pour la clé API et sélectionnez une période d'expiration ou une portée. Il est fortement recommandé de définir une date d'expiration.
- La clé API ne sera plus valide après l'expiration. Les périodes d'expiration plus courtes sont plus sûres.
-
Cliquez sur Create.
-
Enregistrez les informations affichées
Votre clé API est maintenant créée. Vos API Endpoint, Access Key, Secret Key, et Bearer sont affichés.

-
Copiez les informations affichées dans un endroit sûr. Ces informations ne sont affichées qu'une seule fois, donc si vous perdez votre clé, vous devrez en faire une nouvelle.
-
Utilisez le Bearer Token pour vous authentifier avec Rancher CLI.
Utiliser les clés API¶
Dans le fichier kubeconfig¶
Les clés API peuvent également être utilisées pour accéder à vos clusters Kubernetes en ajoutant le "Bearer Token" à la section "token" du fichier kubeconfig. Elles peuvent aussi être stockées dans Vault pour être consommées par d'autres applications comme la CI.
Dans les requêtes¶
Il est possible d'utiliser ces clés pour récupérer des informations sur les objets Kubernetes via l'API Rancher également. Par exemple, la requête suivante vous permet de récupérer les métriques d'un service déployé dans l'un de vos Clusters.
curl -X GET -H "Authorization: Bearer ${RANCHER_ACCESS_KEY}:${RANCHER_SECRET_KEY}" "https://${RANCHER_URL}/k8s/clusters/${CLUSTER_ID}/api/v1/namespaces/${NAMESPACE}/services/${SERVICE_NAME}:${PORT}/metrics"