在 Kubernetes 上部署弹性搜索
Deploy Elastic search on Kubernetes
我已经拉取了一个 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
显示未就绪
如何在一个服务器集群中使用 2 pods 在 Kubernetes 中部署此 ES 映像
嗯,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>
您可以很容易地发现是否存在拉取图像的问题。
如果拉取图像没有问题,则很可能 pods 内部存在问题。我的建议是,使用日志命令检查发生了什么。
在你的清单elasticsearch.yaml
中,你需要指定ES镜像的版本:
...
spec:
containers:
- name: elasticsearch
image: elasticsearch:5.6.9
我已经拉取了一个 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
显示未就绪
如何在一个服务器集群中使用 2 pods 在 Kubernetes 中部署此 ES 映像
嗯,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>
您可以很容易地发现是否存在拉取图像的问题。 如果拉取图像没有问题,则很可能 pods 内部存在问题。我的建议是,使用日志命令检查发生了什么。
在你的清单elasticsearch.yaml
中,你需要指定ES镜像的版本:
...
spec:
containers:
- name: elasticsearch
image: elasticsearch:5.6.9