azure - 如何使用状态集 kubernetes 将 cassandra 数据位置安装到 azure 文件共享

标签 azure cassandra kubernetes

我正在使用 Statefull set Kubernetes 在 Azure 上设置 3 节点 Cassandra 集群,但无法在 Azure 文件共享中挂载数据位置。

我可以使用默认的 kubenetes 存储,但不能使用 Azurefile 共享选项。

我尝试了下面给出的以下步骤,发现在volumeClaimTemplates中存在困难

apiVersion: "apps/v1"
kind: StatefulSet
metadata:
  name: cassandra
  labels:
    app: cassandra
spec:
  serviceName: cassandra
  replicas: 3
  selector:
    matchLabels:
      app: cassandra
  template:
    metadata:
      labels:
        app: cassandra
    spec:
      containers:
        - name: cassandra
          image: cassandra
          imagePullPolicy: Always
          ports:
            - containerPort: 7000
              name: intra-node
            - containerPort: 7001
              name: tls-intra-node
            - containerPort: 7199
              name: jmx
            - containerPort: 9042
              name: cql
          env:
            - name: CASSANDRA_SEEDS
              value: cassandra-0.cassandra.default.svc.cluster.local
            - name: MAX_HEAP_SIZE
              value: 256M
            - name: HEAP_NEWSIZE
              value: 100M
            - name: CASSANDRA_CLUSTER_NAME
              value: "Cassandra"
            - name: CASSANDRA_DC
              value: "DC1"
            - name: CASSANDRA_RACK
              value: "Rack1"
            - name: CASSANDRA_ENDPOINT_SNITCH
              value: GossipingPropertyFileSnitch
            - name: POD_IP
              valueFrom:
                fieldRef:
                   fieldPath: status.podIP                 
          volumeMounts:
          - mountPath: /var/lib/cassandra/data
            name: pv002
  volumeClaimTemplates:
  - metadata:
      name: pv002
    spec:
      storageClassName: default
      accessModes:
        - ReadWriteOnce
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv002
  accessModes:
  - ReadWriteOnce
  azureFile:
    secretName: storage-secret
    shareName: xxxxx
    readOnly: false
  claimRef:
    namespace: default
    name: az-files-02
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: az-files-02
spec:
  accessModes:
    - ReadWriteOnce
---
apiVersion: v1
kind: Secret
metadata:
  name: storage-secret
type: Opaque
data:
  azurestorageaccountname: xxxxx
  azurestorageaccountkey: jjbfjbsfljbafkljasfkl;jf;kjd;kjklsfdhjbsfkjbfkjbdhueueeknekneiononeojnjnjHBDEJKBJBSDJBDJ==

我应该能够将每个 cassandra 节点的数据文件夹装载到 azure 文件共享中。

最佳答案

对于在statefulset中使用azure文件,我想你可以按照这个例子:https://github.com/andyzhangx/demo/blob/master/linux/azurefile/attach-stress-test/statefulset-azurefile1-2files.yaml

关于azure - 如何使用状态集 kubernetes 将 cassandra 数据位置安装到 azure 文件共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55468427/

相关文章:

java - 是否可以仅通过在java客户端中提供缓存配置来启动ignite缓存?

scala - Cassandra 连接器 Apache Spark : local class incompatible

kubernetes - 如何在 GKE 上调试节点健康错误?

kubernetes - 强制某些 Pod 调度在同一节点上

c# - 将 Azure blob 文件上传到存储帐户容器中的嵌套文件夹

.net - 在 Raspberry Pi 上调试 .NET 应用程序 - dotnet 已退出,代码为 0

Azure 自定义连接器动态架构不起作用

azure - Power BI Embedded - "Import"模式下的数据刷新

hadoop - M/R 程序中的几个 map 和 reduce 函数

Kubernetes 健康检查 : timeoutSeconds exceeds periodSeconds