Skip to content
Snippets Groups Projects
Commit 16fcf072 authored by CLEMENTE Damien's avatar CLEMENTE Damien
Browse files

Update 6 files

- /100000 - dashboard enable 2.png
- /100000 - dashboard enable 3.png
- /images/100000 - dashboard enable 2.png
- /images/100000 - dashboard enable 3.png
- /3.Kubernetes_Dashboard_deploiement.md
- /6.Creation_openldap.md
parent 5ce1bb8d
No related branches found
No related tags found
No related merge requests found
......@@ -65,5 +65,5 @@ nohup kubectl port-forward -n kubernetes-dashboard service/kubernetes-dashboard
```
**Cette methode est bien entendu temporaire**
![Activation du Dashboard - Étape 2](100000 - dashboard enable 2.png)
![Activation du Dashboard - Étape 3](100000 - dashboard enable 3.png)
![Activation du Dashboard - Étape 2](/images/100000 - dashboard enable 2.png)
![Activation du Dashboard - Étape 3](/images/100000 - dashboard enable 3.png)
# Déploiement d'un Serveur LDAP sur Kubernetes
## Introduction
Ce guide détaille le processus de déploiement d'un serveur OpenLDAP sur un cluster Kubernetes, accompagné de **phpLDAPadmin** pour une gestion simplifiée via une interface web. L'objectif est de mettre en place un système de gestion des utilisateurs et des permissions au sein de Kubernetes.
## Étapes du Déploiement
### 1. Création d'un Namespace dédié
Pour isoler les ressources liées à OpenLDAP, il est recommandé de créer un namespace spécifique :
```bash
kubectl create namespace openldap
```
### 2. Préparation du fichier de déploiement
Un fichier YAML est nécessaire pour définir les ressources Kubernetes requises : Secret, PersistentVolumeClaim, Deployments et Services.
#### Création des Secrets
Les informations sensibles, telles que le nom de domaine, l'organisation et le mot de passe administrateur, doivent être encodées en base64 et stockées dans un Secret Kubernetes.
```yaml
apiVersion: v1
kind: Secret
metadata:
name: openldap-secrets
namespace: openldap
type: Opaque
data:
organization: "bXlvcmdhbml6YXRpb24=" # myorganization encodé en base64
domain: "bXlkb21haW4=" # mydomain encodé en base64
password: "bXlwYXNzd29yZA==" # mypassword encodé en base64
```
#### Définition du PersistentVolumeClaim
Pour assurer la persistance des données LDAP, un PersistentVolumeClaim est défini :
```yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: openldap-data-disk
namespace: openldap
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
```
#### Déploiement d'OpenLDAP
Le déploiement spécifie l'image Docker d'OpenLDAP, les ports à exposer, les variables d'environnement (récupérées depuis le Secret) et les volumes pour la persistance des données :
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: openldap-deployment
namespace: openldap
labels:
app: openldap
spec:
replicas: 1
selector:
matchLabels:
app: openldap
template:
metadata:
labels:
app: openldap
spec:
containers:
- name: openldap
image: osixia/openldap:1.3.0
ports:
- containerPort: 389
- containerPort: 636
env:
- name: LDAP_ORGANISATION
valueFrom:
secretKeyRef:
name: openldap-secrets
key: organization
- name: LDAP_DOMAIN
valueFrom:
secretKeyRef:
name: openldap-secrets
key: domain
- name: LDAP_ADMIN_PASSWORD
valueFrom:
secretKeyRef:
name: openldap-secrets
key: password
volumeMounts:
- name: openldap-volume
mountPath: "/var/lib/ldap"
subPath: database
- name: openldap-volume
mountPath: "/etc/ldap/slapd.d"
subPath: config
volumes:
- name: openldap-volume
persistentVolumeClaim:
claimName: openldap-data-disk
```
#### Service pour OpenLDAP
Un Service de type ClusterIP est créé pour exposer OpenLDAP au sein du cluster :
```yaml
apiVersion: v1
kind: Service
metadata:
name: openldap-service
namespace: openldap
spec:
selector:
app: openldap
ports:
- name: ldap
protocol: TCP
port: 389
targetPort: 389
- name: ldaps
protocol: TCP
port: 636
targetPort: 636
```
#### Déploiement de phpLDAPadmin
Pour faciliter la gestion de LDAP, phpLDAPadmin est déployé :
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: phpldapadmin-deployment
namespace: openldap
labels:
app: phpldapadmin
spec:
replicas: 1
selector:
matchLabels:
app: phpldapadmin
template:
metadata:
labels:
app: phpldapadmin
spec:
containers:
- name: phpldapadmin
image: osixia/phpldapadmin:0.9.0
ports:
- containerPort: 443
env:
- name: PHPLDAPADMIN_LDAP_HOSTS
value: openldap-service
```
#### Service pour phpLDAPadmin
Un Service de type LoadBalancer est défini pour permettre l'accès externe à phpLDAPadmin :
```yaml
apiVersion: v1
kind: Service
metadata:
name: phpldapadmin-service
namespace: openldap
spec:
type: LoadBalancer
selector:
app: phpldapadmin
ports:
- protocol: TCP
port: 9943
targetPort: 443
```
### 3. Application du fichier YAML
Après avoir défini toutes les ressources, appliquer le fichier YAML pour déployer OpenLDAP et phpLDAPadmin :
```bash
kubectl apply -f openldap.yaml
```
### 4. Accès à phpLDAPadmin
Une fois le déploiement terminé, accéder à phpLDAPadmin via l'adresse IP attribuée au Service LoadBalancer, en utilisant le port 9943 :
```
https://192.168.10.101:9943
```
Identifiants de connexion :
- **Utilisateur** : `cn=admin,dc=mydomain`
- **Mot de passe** : celui défini dans le secret Kubernetes.
Ce déploiement permet de gérer un annuaire LDAP efficacement dans un cluster Kubernetes, tout en garantissant une interface web simplifiée pour l'administration.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment