微服务架构师封神之路07-在 minikube 上部署 cassandra

    科技2022-07-20  110

    微服务架构师封神之路07-在 minikube 上部署 cassandra

    需求创建PersistentVolumeClaim创建StatefulSet创建Service参考

    需求

    想在在 minikube 上部署一个 cassandra 数据库,提供给日常开发使用。所以要求没那么高,单节点 cassandra 就可以。 和其它微服务应用不同的是需要持久化存储的数据,这样就需要Persistent Volume Claims。那么 cassandra 就不是一个 Deployment,而是Stateful Sets。 基本步骤:

    创建PersistentVolumeClaim创建StatefulSet创建Service

    创建PersistentVolumeClaim

    创建文件 persistentVolumeClaim.yaml

    kind: PersistentVolumeClaim apiVersion: v1 metadata: name: cassandra-data spec: storageClassName: standard accessModes: - ReadWriteOnce resources: requests: storage: 1Gi

    执行

    kubectl apply -f persistentVolumeClaim.yaml

    创建StatefulSet

    创建文件 statefulSet.yaml

    kind: StatefulSet apiVersion: apps/v1 metadata: name: cassandra spec: serviceName: cassandra replicas: 1 selector: matchLabels: app: cassandra template: metadata: labels: app: cassandra spec: dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler securityContext: {} terminationGracePeriodSeconds: 30 affinity: nodeSelector: {} tolerations: [] containers: - name: cassandra imagePullPolicy: IfNotPresent image: "cassandra:3.11.8" env: - name: MAX_HEAP_SIZE value: 160M - name: HEAP_NEWSIZE value: 64M ports: - containerPort: 7000 name: intra-node protocol: TCP - containerPort: 7001 name: tls-intra-node protocol: TCP - containerPort: 7199 name: jmx protocol: TCP - containerPort: 9042 name: cql protocol: TCP volumeMounts: - name: data mountPath: /var/lib/cassandra terminationMessagePolicy: File volumes: - name: data persistentVolumeClaim: claimName: cassandra-data

    执行

    kubectl apply -f statefulSet.yaml

    创建Service

    创建文件 service.yaml

    apiVersion: v1 kind: Service metadata: name: cassandra labels: app: cassandra spec: selector: app: cassandra type: NodePort sessionAffinity: None ports: - name: cqlsh protocol: TCP port: 9042 targetPort: 9042 nodePort: 30042

    执行

    kubectl apply -f service.yaml

    参考

    示例:使用 Stateful Sets 部署 Cassandra cassandra Docker Official Images kubernetes storage

    Processed: 0.012, SQL: 8