rancher2.6.2 部署elasticsearch
时间: 2023-10-20 14:29:11 浏览: 126
好的,您可以按照以下步骤在 Rancher 2.6.2 上部署 Elasticsearch:
1. 创建一个新的命名空间,比如叫做 `elasticsearch`。
2. 在该命名空间下创建一个 StatefulSet,用于部署 Elasticsearch。您可以使用以下 YAML 文件作为模板:
```yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: elasticsearch
namespace: elasticsearch
spec:
serviceName: elasticsearch
replicas: 3
selector:
matchLabels:
app: elasticsearch
template:
metadata:
labels:
app: elasticsearch
spec:
containers:
- name: elasticsearch
image: elasticsearch:7.10.2
ports:
- containerPort: 9200
name: http
- containerPort: 9300
name: transport
volumeMounts:
- name: elasticsearch-data
mountPath: /usr/share/elasticsearch/data
volumes:
- name: elasticsearch-data
persistentVolumeClaim:
claimName: elasticsearch-data
volumeClaimTemplates:
- metadata:
name: elasticsearch-data
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 10Gi
```
这个 YAML 文件定义了一个名为 `elasticsearch` 的 StatefulSet,使用了 Elasticsearch 7.10.2 的镜像。它有 3 个副本,并且在每个 Pod 中都会挂载一个名为 `elasticsearch-data` 的卷(使用了一个 PVC 模板)。这个 PVC 模板会创建一个 10GB 的持久卷,用于存储 Elasticsearch 的数据。
3. 部署上述 YAML 文件,创建 StatefulSet 和 PVC。
4. 检查 StatefulSet 是否已经成功创建,并等待所有 Pod 运行起来。您可以使用以下命令进行检查:
```
kubectl get statefulset -n elasticsearch
kubectl get pods -n elasticsearch
```
5. 确认 Elasticsearch 是否可以正常访问。您可以在任意一个 Pod 中执行以下命令,来检查 Elasticsearch 是否正常运行:
```
curl -X GET "localhost:9200/_cat/health?v&pretty"
```
如果 Elasticsearch 正常运行,您应该会看到一个类似以下的消息:
```
epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1615503890 04:24:50 elasticsearch green 3 3 15 15 0 0 0 0 - 100.0%
```
6. 完成部署后,您可以通过访问任意一个 Pod 的 `9200` 端口来访问 Elasticsearch。如果您希望使用 Kubernetes Service 来访问 Elasticsearch,可以创建一个新的 Service,使用以下 YAML 文件:
```yaml
apiVersion: v1
kind: Service
metadata:
name: elasticsearch
namespace: elasticsearch
spec:
selector:
app: elasticsearch
ports:
- name: http
port: 9200
targetPort: 9200
```
然后,您可以使用创建的 Service 来访问 Elasticsearch,比如使用以下命令:
```
curl -X GET "http://<elasticsearch-service>:9200/_cat/health?v&pretty"
```
注意将 `<elasticsearch-service>` 替换为实际的 Service 名称。
阅读全文