1. 创建 Cassandra 的 Persistent Volume 和 Persistent Volume Claim:
# cassandra-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: cassandra-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/data/cassandra"
---
# cassandra-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: cassandra-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
在这个示例中,我们使用 hostPath 来表示在宿主机上的路径为 /mnt/data/cassandra,你可以根据实际情况使用其他持久化存储解决方案。
2. 创建 Cassandra 的 StatefulSet 和 Service:
# cassandra-statefulset.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: cassandra
spec:
serviceName: "cassandra"
replicas: 3
selector:
matchLabels:
app: cassandra
template:
metadata:
labels:
app: cassandra
spec:
containers:
- name: cassandra
image: cassandra:latest
ports:
- containerPort: 9042
volumeMounts:
- name: cassandra-persistent-storage
mountPath: /var/lib/cassandra
volumeClaimTemplates:
- metadata:
name: cassandra-persistent-storage
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---
# cassandra-service.yaml
apiVersion: v1
kind: Service
metadata:
name: cassandra-service
spec:
selector:
app: cassandra
ports:
- protocol: TCP
port: 9042
在这个示例中,Cassandra 使用了上述创建的 Persistent Volume 和 Persistent Volume Claim。volumeClaimTemplates 定义了一个名为 cassandra-persistent-storage 的持久卷声明模板,该模板将为每个 Pod 动态创建一个持久卷。
3. 应用配置:
应用上述 YAML 文件到 Kubernetes 集群:
kubectl apply -f cassandra-pv.yaml
kubectl apply -f cassandra-pvc.yaml
kubectl apply -f cassandra-statefulset.yaml
kubectl apply -f cassandra-service.yaml
以上配置将创建一个运行 Cassandra 的 Kubernetes 集群。确保你的集群已经配置正确,并且根据实际需要修改存储路径等配置。请注意,Cassandra 部署可能需要更多的配置和调整,例如更改副本数量、调整 JVM 参数等。这只是一个基础示例,实际部署需要深入了解 Cassandra 和 Kubernetes 的特定配置。
转载请注明出处:http://www.pingtaimeng.com/article/detail/9982/Kubernetes