0

我有 1 个客户端节点、1 个主节点和 3 个数据节点的 ELK 集群。主节点和数据节点具有附加到它的卷。每个数据节点的卷为 200GB。这些卷都没有加密,现在我想加密这些卷。

当我们只有一个 statefulset 副本并使用一个卷挂载时,这很有效。但对于 3 个副本,它无法附加到卷。kubernetes 中有一个选项使用“加密”标志给出卷定义,但是我们必须在部署/状态集中指定声明名称。我们可以在状态集中指定声明名称,但前提是我们有一个声明要指定。但由于我的 elk 集群有 3 个数据节点,我们无法在 statefulset 中指定一个特定的声明名称。

我尝试通过将存储类“加密”标志设置为 true 来动态执行此操作,如下所示:

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: esvolume-2
provisioner: kubernetes.io/aws-ebs
parameters:
  type: gp2
  zones: eu-west-1c
  iopsPerGB: "600"
  fsType: ext4
  encrypted: "true"

那么我们必须在声明中使用这个存储类,如下所示:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: esdata-2
  labels:
    app: mo-es-data
spec:
  storageClassName: esvolume-2
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 200Gi

然后需要在 statefulset 中指定声明名称,如下所示:

 volumeMounts:
        - name: esdata-2
          mountPath: /data
      #imagePullSecrets:
        #- name: mo-docker-registry
  volumeClaimTemplates:
  - metadata:
      name: esdata-2

所以我不能用这个解决方案。

手动替换也是不可能的,因为 3 个卷已附加到一个 statefulset。

我希望卷被加密,但不能加密它们。

请帮助我,在这种情况下如何实现卷加密?

4

0 回答 0