在Kubernetes上部署弹性搜索

时间:2018-04-25 12:44:27

标签: kubernetes google-cloud-platform kubectl

我已拉出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

2 个答案:

答案 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