diff --git a/rook/cluster/ceph-cluster-inicial.yaml b/rook/cluster/ceph-cluster-inicial.yaml new file mode 100644 index 0000000..6e8ce09 --- /dev/null +++ b/rook/cluster/ceph-cluster-inicial.yaml @@ -0,0 +1,75 @@ +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 + + network: + provider: host + addressRanges: + public: + - "192.168.3.0/24" + cluster: + - "192.168.3.0/24" + + mon: + count: 3 + allowMultiplePerNode: false + + dashboard: + enabled: true + + # Evita OSDs en el futuro nodo árbitro (cuando lo añadas) + placement: + osd: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: topology.kubernetes.io/zone + operator: In + values: ["site-a","site-b"] + + 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 diff --git a/rook/cluster/ceph-cluster-inicial.yaml.bak b/rook/cluster/ceph-cluster-inicial.yaml.bak new file mode 100644 index 0000000..53911ed --- /dev/null +++ b/rook/cluster/ceph-cluster-inicial.yaml.bak @@ -0,0 +1,73 @@ +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 + + network: + provider: host + connections: + publicNetwork: "192.168.3.0/24" + clusterNetwork: "192.168.3.0/24" + + mon: + count: 3 + allowMultiplePerNode: false + + dashboard: + enabled: true + + # Evita OSDs en el futuro nodo árbitro (cuando lo añadas) + placement: + osd: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: topology.kubernetes.io/zone + operator: In + values: ["site-a","site-b"] + + 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 diff --git a/rook/ingress/dashboard.yaml b/rook/ingress/dashboard.yaml new file mode 100644 index 0000000..06e6d1b --- /dev/null +++ b/rook/ingress/dashboard.yaml @@ -0,0 +1,24 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: ceph-dashboard + namespace: rook-ceph + annotations: + cert-manager.io/cluster-issuer: letsencrypt-prod + nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" +spec: + ingressClassName: nginx + tls: + - hosts: ["ceph.c2et.net"] + secretName: ceph-dashboard-tls + rules: + - host: ceph.c2et.net + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: rook-ceph-mgr-dashboard + port: + number: 7000 diff --git a/rook/podtestpvc.yaml b/rook/podtestpvc.yaml new file mode 100644 index 0000000..eb83623 --- /dev/null +++ b/rook/podtestpvc.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Pod +metadata: + name: rbd-tester +spec: + containers: + - name: app + image: busybox + command: ["sh","-c","sleep 36000"] + volumeMounts: + - mountPath: /data + name: vol + volumes: + - name: vol + persistentVolumeClaim: + claimName: test-rbd diff --git a/rook/pools/ceph-blockpool-rbd-2x2.yaml b/rook/pools/ceph-blockpool-rbd-2x2.yaml new file mode 100644 index 0000000..15f89cd --- /dev/null +++ b/rook/pools/ceph-blockpool-rbd-2x2.yaml @@ -0,0 +1,9 @@ +apiVersion: ceph.rook.io/v1 +kind: CephBlockPool +metadata: + name: rbd-2x2-sites + namespace: rook-ceph +spec: + failureDomain: zone + replicated: + size: 4 diff --git a/rook/pvc-test.yaml b/rook/pvc-test.yaml new file mode 100644 index 0000000..55c35eb --- /dev/null +++ b/rook/pvc-test.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: test-rbd +spec: + accessModes: ["ReadWriteOnce"] + resources: { requests: { storage: 5Gi } } + storageClassName: ceph-rbd diff --git a/rook/storageclasses/rbd.yaml b/rook/storageclasses/rbd.yaml new file mode 100644 index 0000000..6dcd5bf --- /dev/null +++ b/rook/storageclasses/rbd.yaml @@ -0,0 +1,23 @@ +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + name: ceph-rbd + annotations: + storageclass.kubernetes.io/is-default-class: "true" +provisioner: rook-ceph.rbd.csi.ceph.com +parameters: + clusterID: rook-ceph + pool: rbd-2x2-sites + imageFormat: "2" + imageFeatures: layering + csi.storage.k8s.io/fstype: ext4 + csi.storage.k8s.io/provisioner-secret-name: rook-csi-rbd-provisioner + csi.storage.k8s.io/provisioner-secret-namespace: rook-ceph + csi.storage.k8s.io/controller-expand-secret-name: rook-csi-rbd-provisioner + csi.storage.k8s.io/controller-expand-secret-namespace: rook-ceph + csi.storage.k8s.io/node-stage-secret-name: rook-csi-rbd-node + csi.storage.k8s.io/node-stage-secret-namespace: rook-ceph +reclaimPolicy: Delete +allowVolumeExpansion: true +mountOptions: + - discard