elasticsearch 获取错误';未知字段主机路径';基于局部体积的Kubernetes弹性搜索
我正在尝试使用本地驱动器卷在kubernetes中部署弹性搜索,但出现以下错误,请更正。 使用ubuntu 16.04 kubernetes v1.11.0 Docker版本17.03.2-ce 使用本地卷获取错误“未知字段主机路径”Kubernetes Elasticsearch
elasticsearch 获取错误';未知字段主机路径';基于局部体积的Kubernetes弹性搜索,
elasticsearch,kubernetes,
elasticsearch,Kubernetes,我正在尝试使用本地驱动器卷在kubernetes中部署弹性搜索,但出现以下错误,请更正。 使用ubuntu 16.04 kubernetes v1.11.0 Docker版本17.03.2-ce 使用本地卷获取错误“未知字段主机路径”Kubernetes Elasticsearch error: error validating "es-d.yaml": error validating data: ValidationError(StatefulSet.spec.template.spec.c
error: error validating "es-d.yaml": error validating data: ValidationError(StatefulSet.spec.template.spec.containers[1]): unknown field "hostPath" in io.k8s.api.core.v1.Container; if you choose to ignore these errors, turn validation off with --validate=false
这是statefulSet的yaml文件:
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: es-data
labels:
component: elasticsearch
role: data
spec:
serviceName: elasticsearch-data
replicas: 1
template:
metadata:
labels:
component: elasticsearch
role: data
spec:
initContainers:
- name: init-sysctl
image: alpine:3.6
command:
- sysctl
- -w
- vm.max_map_count=262144
securityContext:
privileged: true
containers:
- name: es-data
image: quay.io/pires/docker-elasticsearch-kubernetes:6.3.0
env:
- name: NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: CLUSTER_NAME
value: myesdb
- name: NODE_MASTER
value: "false"
- name: NODE_INGEST
value: "false"
- name: HTTP_ENABLE
value: "true"
- name: ES_JAVA_OPTS
value: -Xms256m -Xmx256m
- name: PROCESSORS
valueFrom:
resourceFieldRef:
resource: limits.cpu
resources:
requests:
cpu: 0.25
limits:
cpu: 1
ports:
- containerPort: 9200
name: http
- containerPort: 9300
name: transport
livenessProbe:
tcpSocket:
port: transport
initialDelaySeconds: 20
periodSeconds: 10
readinessProbe:
httpGet:
path: /_cluster/health
port: http
initialDelaySeconds: 20
timeoutSeconds: 5
volumeMounts:
- name: storage
mountPath: /es
volumes:
- name: storage
检查格式,主机路径不应位于容器部分下,“卷”不在其位置。您的结构错误<代码>卷必须与
容器
,初始容器
处于同一级别
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: es-data
labels:
component: elasticsearch
role: data
spec:
serviceName: elasticsearch-data
replicas: 1
template:
metadata:
labels:
component: elasticsearch
role: data
spec:
initContainers:
- name: init-sysctl
image: alpine:3.6
command:
- sysctl
- -w
- vm.max_map_count=262144
securityContext:
privileged: true
containers:
- name: es-data
image: quay.io/pires/docker-elasticsearch-kubernetes:6.3.0
env:
- name: NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: CLUSTER_NAME
value: myesdb
- name: NODE_MASTER
value: "false"
- name: NODE_INGEST
value: "false"
- name: HTTP_ENABLE
value: "true"
- name: ES_JAVA_OPTS
value: -Xms256m -Xmx256m
- name: PROCESSORS
valueFrom:
resourceFieldRef:
resource: limits.cpu
resources:
requests:
cpu: 0.25
limits:
cpu: 1
ports:
- containerPort: 9200
name: http
- containerPort: 9300
name: transport
livenessProbe:
tcpSocket:
port: transport
initialDelaySeconds: 20
periodSeconds: 10
readinessProbe:
httpGet:
path: /_cluster/health
port: http
initialDelaySeconds: 20
timeoutSeconds: 5
volumeMounts:
- name: storage
mountPath: /es
volumes:
- name: storage
您可以找到。但您确定,一旦容器重新启动,数据将得到相同的结果吗?我需要弹性搜索以确保每次都安全。您需要配置持久卷。详情请参阅。此外,我还看到volumeClaimTemplates已经在源代码中配置好了,您的yaml是从源代码中获得的:检查我上面提供的两个URL,并根据您的需要配置存储。实际上,使用
hostPath
在节点中存储任何应用程序的数据是一个非常糟糕的主意