Automating nodetool repair for cassandra on kubernetesCentOS open port 7000 [RESOLVED]How to choose the external IP address of a Kubernetes load balancer in Google Kubernetes EngineCassandra nodetool repair failure - broken pipewhy is nodetool (cassandra single node) throwing NameNotFoundException: 'jmxrmi'?Cassandra 3.x on Kubernetes 1.2-release (5 cassandra nodes)Kubernetes cluster ip not answeringCassandra 2.2 - “nodetool repair” VS “nodetool repair -dc dc1,dc2,dc3”Kubernetes cluster internal routing not working (NodePort service)In Kubernetes, how can a container created from a CronJob find out when it was scheduled?Can't authenticate to cassendra: cannot achieve consistency level LOCAL_ONE
Uncommanded roll at high speed
Is this light switch installation safe and legal?
Infinitely many hats
Beginner's snake game using PyGame
Intuition behind eigenvalues of an adjacency matrix
Do creatures all have the same statistics upon being reanimated via the Animate Dead spell?
Can non-English-speaking characters use wordplay specific to English?
chmod would set file permission to 000 no matter what permission i try to set
How was Apollo supposed to rendezvous in the case of a lunar abort?
Why were the Night's Watch required to be celibate?
What caused the tendency for conservatives to not support climate change regulations?
Is there an evolutionary advantage to having two heads?
Select row of data if next row contains zero
etoolbox: AtBeginEnvironment is not At Begin Environment
What are the slash markings on Gatwick's 08R/26L?
Are there regional foods in Westeros?
How can I prevent interns from being expendable?
Strange math syntax in old basic listing
What is game ban VS VAC ban in steam?
Is it possible to change original filename of an exe?
Creating Fictional Slavic Place Names
Future enhancements for the finite element method
Biblical Basis for 400 years of silence between old and new testament
Hiker's Cabin Mystery | Pt. IX
Automating nodetool repair for cassandra on kubernetes
CentOS open port 7000 [RESOLVED]How to choose the external IP address of a Kubernetes load balancer in Google Kubernetes EngineCassandra nodetool repair failure - broken pipewhy is nodetool (cassandra single node) throwing NameNotFoundException: 'jmxrmi'?Cassandra 3.x on Kubernetes 1.2-release (5 cassandra nodes)Kubernetes cluster ip not answeringCassandra 2.2 - “nodetool repair” VS “nodetool repair -dc dc1,dc2,dc3”Kubernetes cluster internal routing not working (NodePort service)In Kubernetes, how can a container created from a CronJob find out when it was scheduled?Can't authenticate to cassendra: cannot achieve consistency level LOCAL_ONE
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
We are running cassandra on kubernetes using the yaml below. It's working fine except for nodetool. We would like to have a kubernetes cronjob that executes nodetool repair
periodically but accessing the jmx port (7199) from outside of the cassandra pods is not working. I'm fairly sure the problem is that the jmx port is listening on 127.0.0.1 and I need it to listen on the pod ip or even better would be the node ip.
Has anyone setup something similar?
Inside the pod
root@cassandra-0:/# nc -vz localhost 9042
localhost [127.0.0.1] 9042 (?) open
root@cassandra-0:/# nc -vz localhost 7199
localhost [127.0.0.1] 7199 (?) open
Outside the pod
$ nc -vz localhost 9042
nc: connect to localhost port 9042 (tcp) failed: Connection refused
Connection to localhost 9042 port [tcp/*] succeeded!
$ nc -vz localhost 7199
nc: connect to localhost port 7199 (tcp) failed: Connection refused
nc: connect to localhost port 7199 (tcp) failed: Connection refused
Outside the pod using the pod ip
$ nc -vz 10.244.1.20 7199
nc: connect to 10.244.1.20 port 7199 (tcp) failed: Connection refused
$ nc -vz 10.244.1.20 9042
Connection to 10.244.1.20 9042 port [tcp/*] succeeded!
apiVersion: v1
kind: Service
metadata:
labels:
app: cassandra
name: cassandra
spec:
clusterIP: None
ports:
- port: 9042
selector:
app: cassandra
---
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: cassandra
labels:
app: cassandra
spec:
serviceName: cassandra
replicas: .Values.global.replicas
selector:
matchLabels:
app: cassandra
template:
metadata:
labels:
app: cassandra
spec:
terminationGracePeriodSeconds: 1800
containers:
- name: cassandra
image: cassandra:3.11.3
imagePullPolicy: Always
ports:
- containerPort: 7000
name: intra-node
- containerPort: 7001
name: tls-intra-node
- containerPort: 7199
name: jmx
hostPort: 7199
- containerPort: 9042
hostPort: 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
volumeMounts:
- name: cassandra-data
mountPath: /var/lib/cassandra/data
volumes:
- name: cassandra-data
hostPath:
path: /data/cassandra
kubernetes cassandra nodetool
add a comment |
We are running cassandra on kubernetes using the yaml below. It's working fine except for nodetool. We would like to have a kubernetes cronjob that executes nodetool repair
periodically but accessing the jmx port (7199) from outside of the cassandra pods is not working. I'm fairly sure the problem is that the jmx port is listening on 127.0.0.1 and I need it to listen on the pod ip or even better would be the node ip.
Has anyone setup something similar?
Inside the pod
root@cassandra-0:/# nc -vz localhost 9042
localhost [127.0.0.1] 9042 (?) open
root@cassandra-0:/# nc -vz localhost 7199
localhost [127.0.0.1] 7199 (?) open
Outside the pod
$ nc -vz localhost 9042
nc: connect to localhost port 9042 (tcp) failed: Connection refused
Connection to localhost 9042 port [tcp/*] succeeded!
$ nc -vz localhost 7199
nc: connect to localhost port 7199 (tcp) failed: Connection refused
nc: connect to localhost port 7199 (tcp) failed: Connection refused
Outside the pod using the pod ip
$ nc -vz 10.244.1.20 7199
nc: connect to 10.244.1.20 port 7199 (tcp) failed: Connection refused
$ nc -vz 10.244.1.20 9042
Connection to 10.244.1.20 9042 port [tcp/*] succeeded!
apiVersion: v1
kind: Service
metadata:
labels:
app: cassandra
name: cassandra
spec:
clusterIP: None
ports:
- port: 9042
selector:
app: cassandra
---
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: cassandra
labels:
app: cassandra
spec:
serviceName: cassandra
replicas: .Values.global.replicas
selector:
matchLabels:
app: cassandra
template:
metadata:
labels:
app: cassandra
spec:
terminationGracePeriodSeconds: 1800
containers:
- name: cassandra
image: cassandra:3.11.3
imagePullPolicy: Always
ports:
- containerPort: 7000
name: intra-node
- containerPort: 7001
name: tls-intra-node
- containerPort: 7199
name: jmx
hostPort: 7199
- containerPort: 9042
hostPort: 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
volumeMounts:
- name: cassandra-data
mountPath: /var/lib/cassandra/data
volumes:
- name: cassandra-data
hostPath:
path: /data/cassandra
kubernetes cassandra nodetool
add a comment |
We are running cassandra on kubernetes using the yaml below. It's working fine except for nodetool. We would like to have a kubernetes cronjob that executes nodetool repair
periodically but accessing the jmx port (7199) from outside of the cassandra pods is not working. I'm fairly sure the problem is that the jmx port is listening on 127.0.0.1 and I need it to listen on the pod ip or even better would be the node ip.
Has anyone setup something similar?
Inside the pod
root@cassandra-0:/# nc -vz localhost 9042
localhost [127.0.0.1] 9042 (?) open
root@cassandra-0:/# nc -vz localhost 7199
localhost [127.0.0.1] 7199 (?) open
Outside the pod
$ nc -vz localhost 9042
nc: connect to localhost port 9042 (tcp) failed: Connection refused
Connection to localhost 9042 port [tcp/*] succeeded!
$ nc -vz localhost 7199
nc: connect to localhost port 7199 (tcp) failed: Connection refused
nc: connect to localhost port 7199 (tcp) failed: Connection refused
Outside the pod using the pod ip
$ nc -vz 10.244.1.20 7199
nc: connect to 10.244.1.20 port 7199 (tcp) failed: Connection refused
$ nc -vz 10.244.1.20 9042
Connection to 10.244.1.20 9042 port [tcp/*] succeeded!
apiVersion: v1
kind: Service
metadata:
labels:
app: cassandra
name: cassandra
spec:
clusterIP: None
ports:
- port: 9042
selector:
app: cassandra
---
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: cassandra
labels:
app: cassandra
spec:
serviceName: cassandra
replicas: .Values.global.replicas
selector:
matchLabels:
app: cassandra
template:
metadata:
labels:
app: cassandra
spec:
terminationGracePeriodSeconds: 1800
containers:
- name: cassandra
image: cassandra:3.11.3
imagePullPolicy: Always
ports:
- containerPort: 7000
name: intra-node
- containerPort: 7001
name: tls-intra-node
- containerPort: 7199
name: jmx
hostPort: 7199
- containerPort: 9042
hostPort: 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
volumeMounts:
- name: cassandra-data
mountPath: /var/lib/cassandra/data
volumes:
- name: cassandra-data
hostPath:
path: /data/cassandra
kubernetes cassandra nodetool
We are running cassandra on kubernetes using the yaml below. It's working fine except for nodetool. We would like to have a kubernetes cronjob that executes nodetool repair
periodically but accessing the jmx port (7199) from outside of the cassandra pods is not working. I'm fairly sure the problem is that the jmx port is listening on 127.0.0.1 and I need it to listen on the pod ip or even better would be the node ip.
Has anyone setup something similar?
Inside the pod
root@cassandra-0:/# nc -vz localhost 9042
localhost [127.0.0.1] 9042 (?) open
root@cassandra-0:/# nc -vz localhost 7199
localhost [127.0.0.1] 7199 (?) open
Outside the pod
$ nc -vz localhost 9042
nc: connect to localhost port 9042 (tcp) failed: Connection refused
Connection to localhost 9042 port [tcp/*] succeeded!
$ nc -vz localhost 7199
nc: connect to localhost port 7199 (tcp) failed: Connection refused
nc: connect to localhost port 7199 (tcp) failed: Connection refused
Outside the pod using the pod ip
$ nc -vz 10.244.1.20 7199
nc: connect to 10.244.1.20 port 7199 (tcp) failed: Connection refused
$ nc -vz 10.244.1.20 9042
Connection to 10.244.1.20 9042 port [tcp/*] succeeded!
apiVersion: v1
kind: Service
metadata:
labels:
app: cassandra
name: cassandra
spec:
clusterIP: None
ports:
- port: 9042
selector:
app: cassandra
---
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: cassandra
labels:
app: cassandra
spec:
serviceName: cassandra
replicas: .Values.global.replicas
selector:
matchLabels:
app: cassandra
template:
metadata:
labels:
app: cassandra
spec:
terminationGracePeriodSeconds: 1800
containers:
- name: cassandra
image: cassandra:3.11.3
imagePullPolicy: Always
ports:
- containerPort: 7000
name: intra-node
- containerPort: 7001
name: tls-intra-node
- containerPort: 7199
name: jmx
hostPort: 7199
- containerPort: 9042
hostPort: 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
volumeMounts:
- name: cassandra-data
mountPath: /var/lib/cassandra/data
volumes:
- name: cassandra-data
hostPath:
path: /data/cassandra
kubernetes cassandra nodetool
kubernetes cassandra nodetool
asked May 16 at 1:15
rvabdnrvabdn
1507
1507
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "2"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f967485%2fautomating-nodetool-repair-for-cassandra-on-kubernetes%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Server Fault!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f967485%2fautomating-nodetool-repair-for-cassandra-on-kubernetes%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown