我已拉出ES图像并在主机中运行它。 它工作正常。
docker pull elasticsearch
docker run -t -p 9200:9200 -p 9300:9300 --rm elasticsearch
我需要在kubernetes中使用相同的ES图像。
我创建了一个kubernetes集群,如下所示:
gcloud container clusters create elasticsearch --num-nodes=1
我写了一个清单文件(elasticsearch.yaml),如下所示:
apiVersion: v1
kind: ReplicationController
metadata:
name: elasticsearch
spec:
replicas: 2
selector:
app: elasticsearch
template:
metadata:
name: elasticsearch
labels:
app: elasticsearch
spec:
containers:
- name: elasticsearch
image: elasticsearch
ports:
- containerPort: 9200
- containerPort: 9300
创建如下的rc:
kubectl create -f elasticsearch.yaml
kubectl get pods
它显示了imagebackoff错误
kubectl get rc
它显示为未准备好
如何在Kubernetes中部署此ES映像,并在一个服务器群集中使用2个pod
答案 0 :(得分:2)
嗯,ES的官方形象
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.2.4
正如文件中提到的那样。 https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html
如果您只使用elasticsearch,kubernetes将假设您使用的是本地注册表,我猜您不想这样做。
此外,如果您运行
kubectl describe pods <POD_NAME>
您可以轻松找到是否存在拉动图像的问题。 如果拉动图像没有任何问题,那么它们很可能在播客内部存在问题。我的建议是,使用log命令检查发生了什么。
答案 1 :(得分:1)
在您的清单elasticsearch.yaml
中,您需要指定ES图像的版本:
...
spec:
containers:
- name: elasticsearch
image: elasticsearch:5.6.9