【发布时间】:2020-12-06 17:21:31
【问题描述】:
我使用这个命令helm install elasticsearch elastic/elasticsearch在K8S上部署了一个elasticsearch集群。
我可以看到 pod 正在运行:
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
elasticsearch-master-0 0/1 Running 0 4m30s
kibana-kibana-5697fc485b-qtzzl 0/1 Running 0 130m
服务看起来也不错:
$ kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
elasticsearch-master ClusterIP 10.105.59.248 <none> 9200/TCP,9300/TCP 4m50s
elasticsearch-master-headless ClusterIP None <none> 9200/TCP,9300/TCP 4m50s
kibana-kibana ClusterIP 10.104.31.124 <none> 5601/TCP 6d7h
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 10d
但是elasticsearch 没有deployment:
$ kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
kibana-kibana 0/1 1 0 6d7h
我想重新启动 elasticsearch pod,并且我搜索了人们说要使用 kubectl scale deployment --replicas=0 来终止 pod。但是elasticsearch集群没有部署,这种情况下如何重启elasticsearch pod?
【问题讨论】:
-
是否有匹配的 StatefulSet 代替? (这将生成像
statefulset-name-0这样的名称。)由于它拥有 Pod,kubectl delete pod elasticsearch-master-0将重新创建它,希望使用相同的支持数据。 -
StatefulSet是什么意思?我怎样才能找到它? -
StatefulSets 在 Kubernetes 文档中。有点像 Deployment,但可以为每个副本创建一个 PersistentVolumeClaim,并具有可预测的顺序 pod 名称。