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

时间:2019-04-02 06:42:14

标签: azure cassandra kubernetes

我正在使用Statefull集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文件共享中。

1 个答案:

答案 0 :(得分:1)

要在statefulset中使用azure文件,我想您可以遵循以下示例:https://github.com/andyzhangx/demo/blob/master/linux/azurefile/attach-stress-test/statefulset-azurefile1-2files.yaml

相关问题