我正在尝试使用两个不同的文件(部署和服务)在由三个虚拟机组成的Kubernetes集群上设置Cassandra。为此,我使用命令
kubectl创建-f 文件 .yaml
该服务文件运行完美,但是当我用三个副本启动另一个时,pod的状态为CrashLoopBackOff而不是运行。
部署文件的配置如下
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: cassandra
labels:
app: cassandra
spec:
replicas: 3
selector:
matchLabels:
app: cassandra
template:
metadata:
labels:
app: cassandra
spec:
containers:
- name: cassandra
image: gcr.io/google_containers/cassandra:v5
ports:
- containerPort: 9042
这是服务文件
apiVersion: v1
kind: Service
metadata:
labels:
app: cassandra
name: cassandra
spec:
type: NodePort
ports:
- port: 9042
selector:
app: cassandra
我对此表示感谢。
答案 0 :(得分:3)
您不应该使用Deployment运行有状态的应用程序。建议使用StatefulSets来运行cassandra等数据库。
点击以下链接以供参考-> https://kubernetes.io/docs/tutorials/stateful-application/cassandra/