簡體   English   中英

elasticsearch 7 為黃色 state 未分配分片

[英]elasticsearch 7 is in YELLOW state with unassigned shard

我無法獲得處於綠色工作狀態的單個主節點集群:elasticsearch:7.17.0

我想那是因為我有unassigned_shards > 0

配置:

apiVersion: v1
data:
  elasticsearch.yml: |-
    discovery:
      type: single-node
    network:
      host: 0.0.0.0
    path:
      data: /bitnami/elasticsearch/data
    xpack:
      ml:
        enabled: false
kind: ConfigMap
metadata:
  labels:
    app.kubernetes.io/instance: elasticsearch
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: elasticsearch
    argocd.argoproj.io/instance: elasticsearch
    helm.sh/chart: elasticsearch-19.5.5
  name: elasticsearch
  namespace: elasticsearch
kubectl logs elasticsearch-master-0

[2022-12-25T07:52:40,652][INFO ][o.e.c.r.a.AllocationService] [elasticsearch-master-0] Cluster health status changed from [RED] to [YELLOW] (reason: [shards started [[.ds-ilm-history-5-2022.10.28-000014][0], [.ds-ilm-history-5-2022.09.28-000012][0]]]).
[2022-12-25T07:52:40,856][INFO ][o.e.i.g.GeoIpDownloader  ] [elasticsearch-master-0] updating geoip database [GeoLite2-ASN.mmdb]

✗  curl -XGET http://localhost:9200/_cluster/health\?pretty\=true
{
  "cluster_name" : "elasticsearch",
  "status" : "yellow",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 7,
  "active_shards" : 7,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 1,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 87.5
}

➜ curl -XGET http://localhost:9200/_cat/shards | grep UNASSIGNED
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   986  100   986    0     0   5105      0 --:--:-- --:--:-- --:--:--  5108
.ds-.logs-deprecation.elasticsearch-default-2022.12.21-000022 0 r UNASSIGNED 

我正在嘗試刪除它但遇到錯誤

➜ curl -XGET http://localhost:9200/_cat/shards | grep UNASSIGNED | awk {'print $1'} | xargs -i curl -XDELETE "http://localhost:9200/{}"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   986  100   986    0     0   5241      0 --:--:-- --:--:-- --:--:--  5244
{"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"index [.ds-.logs-deprecation.elasticsearch-default-2022.12.21-000022] is the write index for data stream [.logs-deprecation.elasticsearch-default] and cannot be deleted"}],"type":"illegal_argument_exception","reason":"index [.ds-.logs-deprecation.elasticsearch-default-2022.12.21-000022] is the write index for data stream [.logs-deprecation.elasticsearch-default] and cannot be deleted"},"status":400}

GET /_cluster/allocation/explain :

➜ curl -XGET http://localhost:9200/_cluster/allocation/explain\?pretty\=true | jq
{
  "note": "No shard was specified in the explain API request, so this response explains a randomly chosen unassigned shard. There may be other unassigned shards in this cluster which cannot be assigned for different reasons. It may not be possible to assign this shard until one of the other shards is assigned correctly. To explain the allocation of other shards (whether assigned or unassigned) you must specify the target shard in the request to this API.",
  "index": ".ds-.logs-deprecation.elasticsearch-default-2022.12.21-000022",
  "shard": 0,
  "primary": false,
  "current_state": "unassigned",
  "unassigned_info": {
    "reason": "CLUSTER_RECOVERED",
    "at": "2022-12-25T07:52:37.022Z",
    "last_allocation_status": "no_attempt"
  },
  "can_allocate": "no",
  "allocate_explanation": "cannot allocate because allocation is not permitted to any of the nodes",
  "node_allocation_decisions": [
    {
      "node_id": "aURccTcnSuqPC3fBfmezCg",
      "node_name": "elasticsearch-master-0",
      "transport_address": "10.110.4.229:9300",
      "node_attributes": {
        "xpack.installed": "true",
        "transform.node": "true"
      },
      "node_decision": "no",
      "deciders": [
        {
          "decider": "same_shard",
          "decision": "NO",
          "explanation": "a copy of this shard is already allocated to this node [[.ds-.logs-deprecation.elasticsearch-default-2022.12.21-000022][0], node[aURccTcnSuqPC3fBfmezCg], [P], s[STARTED], a[id=tsxhnODlSn-i__-vEvJj3A]]"
        }
      ]
    }
  ]


那么在這種情況下可以做什么呢?

黃色狀態表示 Elasticsearch 集群上的一個或多個副本分片沒有分配給一個節點。 當你只有一個節點時,這意味着你的副本數大於你的節點數。 Elasticsearch 永遠不會將副本分配給與主分片相同的節點。 因此,如果您只有一個節點,那是完全正常的,並且您的集群預計會顯示黃色。 但是,如果您不相信並希望您的集群是綠色的,請將每個索引的副本數設置為 0。

PUT /my-index/_settings
{
    "index" : {
        "number_of_replicas" : 0
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM