Кто-нибудь пробовал развернуть Cassandra (POC) на GCP с помощью kubernetes (не GKE). Если да, не могли бы вы поделиться информацией о том, как заставить его работать?
Kubernetes: развертывание Cassandra (с сохранением состояния) на GCP
Ответы (3)
Я реализовал cassandra на kubernetes. Пожалуйста, найдите мои файлы развертывания и обслуживания yaml:
apiVersion: v1
kind: Service
metadata:
labels:
app: cassandra
name: cassandra
spec:
clusterIP: None
ports:
- port: 9042
selector:
app: cassandra
---
apiVersion: apps/v1beta2
kind: StatefulSet
metadata:
name: cassandra
labels:
app: cassandra
spec:
serviceName: cassandra
replicas: 3
updateStrategy:
type: RollingUpdate
selector:
matchLabels:
app: cassandra
template:
metadata:
labels:
app: cassandra
spec:
terminationGracePeriodSeconds: 1800
containers:
- name: cassandra
image: gcr.io/google-samples/cassandra:v12
imagePullPolicy: Always
ports:
- containerPort: 7000
name: intra-node
- containerPort: 7001
name: tls-intra-node
- containerPort: 7199
name: jmx
- containerPort: 9042
name: cql
resources:
limits:
cpu: "500m"
memory: 1Gi
requests:
cpu: "500m"
memory: 1Gi
securityContext:
capabilities:
add:
- IPC_LOCK
lifecycle:
preStop:
exec:
command:
- /bin/sh
- -c
- nodetool drain
env:
- name: MAX_HEAP_SIZE
value: 512M
- name: HEAP_NEWSIZE
value: 100M
- name: CASSANDRA_SEEDS
value: "cassandra-0.cassandra.default.svc.cluster.local"
- name: CASSANDRA_CLUSTER_NAME
value: "K8Demo"
- name: CASSANDRA_DC
value: "DC1-K8Demo"
- name: CASSANDRA_RACK
value: "Rack1-K8Demo"
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
readinessProbe:
exec:
command:
- /bin/bash
- -c
- /ready-probe.sh
initialDelaySeconds: 15
timeoutSeconds: 5
volumeMounts:
- name: cassandra-data
mountPath: /cassandra_data
volumeClaimTemplates:
- metadata:
name: cassandra-data
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: "fast"
resources:
requests:
storage: 5Gi
Надеюсь это поможет.
person
Prafull Ladha
schedule
30.10.2018
Спасибо, я искал развертывание kubenetes и Cassandra на виртуальных машинах GCP с помощью pd-ssd. у вас есть рабочий сервис yaml для него?
- person user3435964; 30.10.2018
Вы можете начать с просмотра IBM Scalable- Развертывание Cassandra-on-Kubernetes.
Для обнаружения семян вы можете использовать безголовый сервис, подобный этому Многоузловой кластер Cassandra с Kubernetes стал проще.
Некоторые трудности:
- быстрое локальное хранилище для K8s все еще находится в стадии бета-тестирования ; конечно, можно использовать то, что уже есть в k8s; есть некоторые пользователи сообщают, что они используйте Ceph RBD с 8 узлами C*, каждый из которых имеет 2 ТБ данных на K8s.
- в какой-то момент вы поймете, что вам нужен оператор C* — вот хороший стартап — Instaclustr's Cassandra Оператор и оператор Pantheon Systems Cassandra а>
- вам нужен способ масштабировать изящно приложения (также должен быть покрыт оператором; это решение, если вам не нужен оператор, но вам все равно нужно использовать контроллер).
Вы также можете проверить список рассылки Cassandra, так как есть люди, которые уже используют Cassandra вместо K8 в производстве.
person
Horia
schedule
30.10.2018
Используйте Шлем:
На Mac:
brew install helm@2
brew link --force helm@2
helm init
Чтобы избежать ада разрешений Kubernetes Helm: from: https://github.com/helm/helm/issues/2224:
kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
Кассандра
инкубатор:
helm repo add https://github.com/helm/charts/tree/master/incubator/cassandra
helm install --namespace "cassandra" -n "cassandra" incubator/cassandra
helm status "cassandra"
helm delete --purge "cassandra"
битнами:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install --namespace "cassandra" -n "my-deployment" bitnami/cassandra
helm status "my-deployment"
helm delete --purge "my-deployment"
person
Rubber Duck
schedule
16.09.2020