apiVersion: ceph.rook.io/v1 kind: CephCluster metadata: name: rook-ceph namespace: rook-ceph spec: cephVersion: image: quay.io/ceph/ceph:v19.2.3 dataDirHostPath: /var/lib/rook # Redes: pública por VLAN 40 (4.0), cluster por VLAN 30 (3.0) network: provider: host addressRanges: public: - "192.168.4.0/24" cluster: - "192.168.3.0/24" mon: count: 5 allowMultiplePerNode: false mgr: count: 2 dashboard: enabled: true placement: # Permite programar en nodos con taint de control-plane all: tolerations: - key: "node-role.kubernetes.io/control-plane" operator: "Exists" effect: "NoSchedule" # MON: fija 1 por cada host 01–05 y evita colocalizar mon: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: In values: ["srvfkvm01","srvfkvm02","srvfkvm03","srvfkvm04","srvfkvm05"] podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: app: rook-ceph-mon topologyKey: kubernetes.io/hostname # OSD: solo en zonas de datos (evita árbitro) osd: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: topology.kubernetes.io/zone operator: In values: ["site-a","site-b"] # Preferencia de MGR (opcional) mgr: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 preference: matchExpressions: - key: kubernetes.io/hostname operator: In values: ["srvfkvm01","srvfkvm04"] cleanupPolicy: wipeDevicesFromOtherClusters: true storage: useAllNodes: false useAllDevices: false nodes: - name: srvfkvm01 devices: - fullpath: /dev/disk/by-id/wwn-0x64cd98f036d94b003012d5bb177a1716 - fullpath: /dev/disk/by-id/wwn-0x64cd98f036d94b003012d5dc196bd3a7 - fullpath: /dev/disk/by-id/wwn-0x64cd98f036d94b003012d5f81b10f7ef - fullpath: /dev/disk/by-id/wwn-0x64cd98f036d94b003012d6151cca8afd - fullpath: /dev/disk/by-id/wwn-0x64cd98f036d94b003012d62f1e5e9699 - fullpath: /dev/disk/by-id/wwn-0x64cd98f036d94b003012d64f204b2405 - name: srvfkvm02 devices: - fullpath: /dev/disk/by-id/wwn-0x64cd98f036d9430030127eef88828273 - fullpath: /dev/disk/by-id/wwn-0x64cd98f036d9430030127f879197de32 - fullpath: /dev/disk/by-id/wwn-0x64cd98f036d9430030128081a076ba0c - fullpath: /dev/disk/by-id/wwn-0x64cd98f036d9430030128114a93e33b9 - fullpath: /dev/disk/by-id/wwn-0x64cd98f036d94300301281a7b1fc151a - fullpath: /dev/disk/by-id/wwn-0x64cd98f036d9430030128235ba79d801 - name: srvfkvm03 devices: - fullpath: /dev/disk/by-id/wwn-0x64cd98f036d9510030128aef3bb4e0ae - fullpath: /dev/disk/by-id/wwn-0x64cd98f036d9510030128b0e3d8bc1dc - fullpath: /dev/disk/by-id/wwn-0x64cd98f036d9510030128b2b3f446dd7 - fullpath: /dev/disk/by-id/wwn-0x64cd98f036d9510030128b4440c2d027 - fullpath: /dev/disk/by-id/wwn-0x64cd98f036d9510030128b5e42510c2a - fullpath: /dev/disk/by-id/wwn-0x64cd98f036d9510030128b7d442e592c - name: srvfkvm04 devices: - fullpath: /dev/disk/by-id/wwn-0x6ec2a72037894c003012887ebfca6752 - fullpath: /dev/disk/by-id/wwn-0x6ec2a72037894c0030128896e360075f - fullpath: /dev/disk/by-id/wwn-0x6ec2a72037894c00301288ac038600d4 - fullpath: /dev/disk/by-id/wwn-0x6ec2a72037894c00301288c62acb6efc - fullpath: /dev/disk/by-id/wwn-0x6ec2a72037894c00301288e456c6d441 - fullpath: /dev/disk/by-id/wwn-0x6ec2a72037894c00301288f976534b4f