我已经创建了一个GKE
集群,Cassandra
我想nodetool
在每个节点上运行以备份数据。我不知道该怎么做。
到目前为止,我已经SSH
编辑到kubernetes
集群上的节点,从那时起我就输了。我做了docker ps -a
并且可以看到容器。我如何到达每个container/pod
并取回?
我已经创建了一个GKE
集群,Cassandra
我想nodetool
在每个节点上运行以备份数据。我不知道该怎么做。
到目前为止,我已经SSH
编辑到kubernetes
集群上的节点,从那时起我就输了。我做了docker ps -a
并且可以看到容器。我如何到达每个container/pod
并取回?
尝试本文中的步骤,获取您的 pod:
kubectl get pvc
接着:
kubectl exec cassandra-pod -- nodetool status
将 cassandra-pod 更改为 pod 名称。
@Manu Chadha
我不确定您使用哪种方法在 GKE 上安装 Cass,但使用 cass-operator 标签我将假设您使用了 Cass Operator。
这就是我到达豆荚的方式(需要豆荚名称):
kubectl -n cass-operator get pods
NAME READY STATUS RESTARTS AGE
cass-operator-557f6689df-qftdf 1/1 Running 0 14m
cluster1-dc1-default-sts-0 2/2 Running 0 11m
cluster1-dc1-default-sts-1 2/2 Running 0 11m
cluster1-dc1-default-sts-2 2/2 Running 0 11m
接下来我可以使用 pod 名称访问 bash:
kubectl -n cass-operator exec --stdin cluster1-dc1-default-sts-0 -- /bin/bash
从 bash 我可以使用 nodetool 或 dsetool
您也可以像这样直接执行这些:
kubectl -n cass-operator exec -it -c cassandra cluster1-dc1-default-sts-0 -- nodetool status
我正在更新以回答有关备份的最后一个问题。使用 cass-operator 进行备份的方式有所不同。确保在您的 yaml 中包含启用的备份:
# Sized to work on 3 k8s workers nodes with 1 core / 4 GB RAM
# See neighboring example-cassdc-full.yaml for docs for each parameter
apiVersion: cassandra.datastax.com/v1beta1
kind: CassandraDatacenter
metadata:
name: dc1
spec:
clusterName: cluster1
serverType: dse
serverVersion: "6.8.4"
managementApiAuth:
insecure: {}
size: 3
storageConfig:
cassandraDataVolumeClaimSpec:
storageClassName: server-storage
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 25Gi
config:
cassandra-yaml:
backup_service:
enabled: true
jvm-server-options:
initial_heap_size: "800M"
max_heap_size: "800M"
additional-jvm-opts:
# As the database comes up for the first time, set system keyspaces to RF=3
- "-Ddse.system_distributed_replication_dc_names=dc1"
- "-Ddse.system_distributed_replication_per_dc=3"
遵循 GKE 和 Google 博客存储的记录步骤: