azure - 如何使用有状态集 kubernetes 将 cassandra 数据位置挂载到 azure 文件共享
问题描述
我正在使用 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
推荐阅读
- flutter - 颤动块:点击时更改每个项目的颜色
- dll - dll劫持,替换文件夹中的dll
- python - 使用子字符串以类似列表的格式过滤数据框列
- android - 如何在 Android Studio 中禁用构建分析器
- java - 在具有多个过滤器的回收站视图中的复选框上单选
- python - 无法使用请求模块刮取页面,无法使用带有 BeautifulSoup 的烧瓶 API
- php - iphone chrome浏览器不显示按钮下载PWA(使用laravel 7)
- python - 如何重新格式化列的每个单独框中的日期文本?
- javascript - 努力让 axios 与 Rollup 一起工作
- microsoft-teams - 是否可以在频道@提及用户中发送消息