actualizando rook ceph
This commit is contained in:
74
cephrook.md
74
cephrook.md
@@ -1,6 +1,6 @@
|
|||||||
# Despliegue de Rook-Ceph en clúster K3s (SUSE) con discos locales (Bluestore)
|
# Despliegue de Rook-Ceph en clúster K3s (SUSE) con discos locales (Bluestore)
|
||||||
|
|
||||||
Esta guía describe cómo desplegar un clúster Rook-Ceph sobre K3s en servidores SUSE con **discos locales** estándar (sin iSCSI). Se adapta a la arquitectura de 4 servidores: `srvfkvm1`, `srvfkvm2`, `srvfkvm3`, `srvfkvm4`, cada uno con 6 discos de \~900GB.
|
Esta guía describe cómo desplegar un clúster Rook-Ceph sobre K3s en servidores SUSE con **discos locales** estándar (sin iSCSI). Se adapta a la arquitectura de 4 servidores: `srvfkvm1`, `srvfkvm2`, `srvfkvm3`, `srvfkvm4`, cada uno con 6 discos de \~900GB y una red de almacenamiento dedicada en la VLAN 30 (`192.168.3.0/24`).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -10,6 +10,7 @@ Esta guía describe cómo desplegar un clúster Rook-Ceph sobre K3s en servidore
|
|||||||
* Cada nodo con 6 discos locales dedicados para Ceph (`/dev/sdj` a `/dev/sdo` en cada servidor)
|
* Cada nodo con 6 discos locales dedicados para Ceph (`/dev/sdj` a `/dev/sdo` en cada servidor)
|
||||||
* K3s y `kubectl` funcionando y configurado
|
* K3s y `kubectl` funcionando y configurado
|
||||||
* Acceso completo a Internet desde todos los nodos
|
* Acceso completo a Internet desde todos los nodos
|
||||||
|
* Cada nodo debe tener una IP fija en `192.168.3.0/24` (VLAN 30) usada exclusivamente para almacenamiento
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -25,7 +26,26 @@ lsblk | grep sd[j-o]
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 3. Crear namespace y CRDs de Rook-Ceph
|
## 3. Configurar el firewall para red de almacenamiento (VLAN 30)
|
||||||
|
|
||||||
|
Asumiendo que tu interfaz de red para la VLAN 30 se llama `vlan30`, añádela a la zona `trusted` para permitir el tráfico de Ceph:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo firewall-cmd --zone=trusted --add-interface=vlan30 --permanent
|
||||||
|
sudo firewall-cmd --reload
|
||||||
|
```
|
||||||
|
|
||||||
|
Puedes verificar:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo firewall-cmd --list-all --zone=trusted
|
||||||
|
```
|
||||||
|
|
||||||
|
Deberías ver `interfaces: vlan30` listada.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Crear namespace y CRDs de Rook-Ceph
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
kubectl create namespace rook-ceph
|
kubectl create namespace rook-ceph
|
||||||
@@ -41,7 +61,7 @@ kubectl apply -f common.yaml
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 4. Desplegar el operador Rook-Ceph
|
## 5. Desplegar el operador Rook-Ceph
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
kubectl apply -f operator.yaml
|
kubectl apply -f operator.yaml
|
||||||
@@ -49,7 +69,7 @@ kubectl apply -f operator.yaml
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 5. Crear el clúster Ceph con discos locales
|
## 6. Crear el clúster Ceph con discos locales
|
||||||
|
|
||||||
Crea un archivo `ceph-cluster.yaml` con el siguiente contenido (ajusta nombres/discos según corresponda):
|
Crea un archivo `ceph-cluster.yaml` con el siguiente contenido (ajusta nombres/discos según corresponda):
|
||||||
|
|
||||||
@@ -63,6 +83,10 @@ spec:
|
|||||||
cephVersion:
|
cephVersion:
|
||||||
image: quay.io/ceph/ceph:v18
|
image: quay.io/ceph/ceph:v18
|
||||||
dataDirHostPath: /var/lib/rook
|
dataDirHostPath: /var/lib/rook
|
||||||
|
network:
|
||||||
|
connections:
|
||||||
|
clusterNetwork: "192.168.3.0/24"
|
||||||
|
publicNetwork: "192.168.3.0/24"
|
||||||
mon:
|
mon:
|
||||||
count: 3
|
count: 3
|
||||||
allowMultiplePerNode: false
|
allowMultiplePerNode: false
|
||||||
@@ -116,7 +140,7 @@ kubectl apply -f ceph-cluster.yaml
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 6. Verifica el despliegue de Ceph
|
## 7. Verifica el despliegue de Ceph
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
kubectl -n rook-ceph get pods
|
kubectl -n rook-ceph get pods
|
||||||
@@ -133,7 +157,7 @@ kubectl -n rook-ceph exec -it deploy/rook-ceph-tools -- ceph status
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 7. Crear CephBlockPool y StorageClass (replica:2)
|
## 8. Crear CephBlockPool y StorageClass (replica:4)
|
||||||
|
|
||||||
**ceph-blockpool.yaml:**
|
**ceph-blockpool.yaml:**
|
||||||
|
|
||||||
@@ -141,12 +165,12 @@ kubectl -n rook-ceph exec -it deploy/rook-ceph-tools -- ceph status
|
|||||||
apiVersion: ceph.rook.io/v1
|
apiVersion: ceph.rook.io/v1
|
||||||
kind: CephBlockPool
|
kind: CephBlockPool
|
||||||
metadata:
|
metadata:
|
||||||
name: replicado-2x
|
name: replicado-4x
|
||||||
namespace: rook-ceph
|
namespace: rook-ceph
|
||||||
spec:
|
spec:
|
||||||
failureDomain: host
|
failureDomain: host
|
||||||
replicated:
|
replicated:
|
||||||
size: 2
|
size: 4
|
||||||
```
|
```
|
||||||
|
|
||||||
**ceph-storageclass.yaml:**
|
**ceph-storageclass.yaml:**
|
||||||
@@ -155,11 +179,11 @@ spec:
|
|||||||
apiVersion: storage.k8s.io/v1
|
apiVersion: storage.k8s.io/v1
|
||||||
kind: StorageClass
|
kind: StorageClass
|
||||||
metadata:
|
metadata:
|
||||||
name: ceph-rbd-replica2
|
name: ceph-rbd-replica4
|
||||||
provisioner: rook-ceph.rbd.csi.ceph.com
|
provisioner: rook-ceph.rbd.csi.ceph.com
|
||||||
parameters:
|
parameters:
|
||||||
clusterID: rook-ceph
|
clusterID: rook-ceph
|
||||||
pool: replicado-2x
|
pool: replicado-4x
|
||||||
imageFormat: "2"
|
imageFormat: "2"
|
||||||
imageFeatures: layering
|
imageFeatures: layering
|
||||||
csi.storage.k8s.io/fstype: ext4
|
csi.storage.k8s.io/fstype: ext4
|
||||||
@@ -178,7 +202,34 @@ kubectl apply -f ceph-storageclass.yaml
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 8. Accede al Ceph Dashboard
|
## 9. Exponer el dashboard de Ceph
|
||||||
|
|
||||||
|
Crea el siguiente servicio `dashboard-service.yaml` para exponer el Dashboard vía `NodePort`:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: rook-ceph-mgr-dashboard
|
||||||
|
namespace: rook-ceph
|
||||||
|
spec:
|
||||||
|
type: NodePort
|
||||||
|
ports:
|
||||||
|
- port: 8443
|
||||||
|
targetPort: 8443
|
||||||
|
protocol: TCP
|
||||||
|
name: https-dashboard
|
||||||
|
selector:
|
||||||
|
app: rook-ceph-mgr
|
||||||
|
```
|
||||||
|
|
||||||
|
Aplica el manifiesto:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
kubectl apply -f dashboard-service.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
> Cuando esté disponible una capa de ingress con TLS (por ejemplo cert-manager + ingress-nginx), se recomienda eliminar este `NodePort` y crear un `Ingress` con dominio y certificado TLS.
|
||||||
|
|
||||||
Obtén el puerto del dashboard:
|
Obtén el puerto del dashboard:
|
||||||
|
|
||||||
@@ -203,4 +254,3 @@ Contraseña: (la anterior)
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Clúster Rook-Ceph listo para producción con discos locales y réplica cruzada en 4 nodos.
|
|
||||||
|
|||||||
BIN
cephrook.pdf
BIN
cephrook.pdf
Binary file not shown.
Reference in New Issue
Block a user