为什么Kubernetes中的Elasticsearch集群启动如此缓慢

问题描述 投票:0回答:1

我是kubernetes集群(v1.15.2)中的elasticsearch集群(v6.4.3)的pod,但是每个pod的启动花费了20分钟以上。图像文件已经拉到本地,我应该怎么做才能使其启动更快?

enter image description here

每次重新启动集群都需要超过1个小时。是否可以使其在不到1分钟的时间内启动?这是我对Elasticsearch的评价:

{
  "kind": "StatefulSet",
  "apiVersion": "apps/v1beta2",
  "metadata": {
    "name": "es-cluster",
    "namespace": "logging",
    "selfLink": "/apis/apps/v1beta2/namespaces/logging/statefulsets/es-cluster",
    "uid": "06afbdc1-3ada-401e-8e62-74c6ce4aba97",
    "resourceVersion": "18109360",
    "generation": 44,
    "creationTimestamp": "2020-02-28T06:28:48Z",
    "labels": {
      "app": "elasticsearch"
    },
    "annotations": {
      "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"apps/v1\",\"kind\":\"StatefulSet\",\"metadata\":{\"annotations\":{},\"name\":\"es-cluster\",\"namespace\":\"logging\"},\"spec\":{\"replicas\":1,\"selector\":{\"matchLabels\":{\"app\":\"elasticsearch\"}},\"serviceName\":\"elasticsearch\",\"template\":{\"metadata\":{\"labels\":{\"app\":\"elasticsearch\"}},\"spec\":{\"containers\":[{\"env\":[{\"name\":\"cluster.name\",\"value\":\"k8s-logs\"},{\"name\":\"node.name\",\"valueFrom\":{\"fieldRef\":{\"fieldPath\":\"metadata.name\"}}},{\"name\":\"discovery.zen.ping.unicast.hosts\",\"value\":\"es-cluster-0.elasticsearch,es-cluster-1.elasticsearch,es-cluster-2.elasticsearch\"},{\"name\":\"discovery.zen.minimum_master_nodes\",\"value\":\"2\"},{\"name\":\"ES_JAVA_OPTS\",\"value\":\"-Xms512m -Xmx512m\"}],\"image\":\"registry.cn-hangzhou.aliyuncs.com/dabai_app_k8s/dabai_fat/elasticsearch-oss:6.4.3\",\"name\":\"elasticsearch\",\"ports\":[{\"containerPort\":9200,\"name\":\"rest\",\"protocol\":\"TCP\"},{\"containerPort\":9300,\"name\":\"inter-node\",\"protocol\":\"TCP\"}],\"resources\":{\"limits\":{\"cpu\":\"1000m\"},\"requests\":{\"cpu\":\"100m\"}},\"volumeMounts\":[{\"mountPath\":\"/usr/share/elasticsearch/data\",\"name\":\"data\"}]}],\"imagePullSecrets\":[{\"name\":\"regcred\"}],\"initContainers\":[{\"command\":[\"sh\",\"-c\",\"chown -R 1000:1000 /usr/share/elasticsearch/data\"],\"image\":\"docker.io/library/busybox:1.31.1\",\"name\":\"fix-permissions\",\"securityContext\":{\"privileged\":true},\"volumeMounts\":[{\"mountPath\":\"/usr/share/elasticsearch/data\",\"name\":\"data\"}]},{\"command\":[\"sysctl\",\"-w\",\"vm.max_map_count=262144\"],\"image\":\"docker.io/library/busybox:1.31.1\",\"name\":\"increase-vm-max-map\",\"securityContext\":{\"privileged\":true}},{\"command\":[\"sh\",\"-c\",\"ulimit -n 65536\"],\"image\":\"docker.io/library/busybox:1.31.1\",\"name\":\"increase-fd-ulimit\",\"securityContext\":{\"privileged\":true}}]}},\"volumeClaimTemplates\":[{\"metadata\":{\"labels\":{\"app\":\"elasticsearch\"},\"name\":\"data\"},\"spec\":{\"accessModes\":[\"ReadWriteOnce\"],\"resources\":{\"requests\":{\"storage\":\"5Gi\"}},\"storageClassName\":\"es-data-db\"}}]}}\n"
    }
  },
  "spec": {
    "replicas": 3,
    "selector": {
      "matchLabels": {
        "app": "elasticsearch"
      }
    },
    "template": {
      "metadata": {
        "creationTimestamp": null,
        "labels": {
          "app": "elasticsearch"
        }
      },
      "spec": {
        "initContainers": [
          {
            "name": "fix-permissions",
            "image": "docker.io/library/busybox:1.31.1",
            "command": [
              "sh",
              "-c",
              "chown -R 1000:1000 /usr/share/elasticsearch/data"
            ],
            "resources": {},
            "volumeMounts": [
              {
                "name": "data",
                "mountPath": "/usr/share/elasticsearch/data"
              }
            ],
            "terminationMessagePath": "/dev/termination-log",
            "terminationMessagePolicy": "File",
            "imagePullPolicy": "IfNotPresent",
            "securityContext": {
              "privileged": true
            }
          },
          {
            "name": "increase-vm-max-map",
            "image": "docker.io/library/busybox:1.31.1",
            "command": [
              "sysctl",
              "-w",
              "vm.max_map_count=262144"
            ],
            "resources": {},
            "terminationMessagePath": "/dev/termination-log",
            "terminationMessagePolicy": "File",
            "imagePullPolicy": "IfNotPresent",
            "securityContext": {
              "privileged": true
            }
          },
          {
            "name": "increase-fd-ulimit",
            "image": "docker.io/library/busybox:1.31.1",
            "command": [
              "sh",
              "-c",
              "ulimit -n 65536"
            ],
            "resources": {},
            "terminationMessagePath": "/dev/termination-log",
            "terminationMessagePolicy": "File",
            "imagePullPolicy": "IfNotPresent",
            "securityContext": {
              "privileged": true
            }
          }
        ],
        "containers": [
          {
            "name": "elasticsearch",
            "image": "registry.cn-hangzhou.aliyuncs.com/dabai_app_k8s/dabai_fat/elasticsearch:6.4.3",
            "ports": [
              {
                "name": "rest",
                "containerPort": 9200,
                "protocol": "TCP"
              },
              {
                "name": "inter-node",
                "containerPort": 9300,
                "protocol": "TCP"
              }
            ],
            "env": [
              {
                "name": "cluster.name",
                "value": "k8s-logs"
              },
              {
                "name": "node.name",
                "valueFrom": {
                  "fieldRef": {
                    "apiVersion": "v1",
                    "fieldPath": "metadata.name"
                  }
                }
              },
              {
                "name": "discovery.zen.ping.unicast.hosts",
                "value": "es-cluster-0.elasticsearch,es-cluster-1.elasticsearch,es-cluster-2.elasticsearch"
              },
              {
                "name": "discovery.zen.minimum_master_nodes",
                "value": "2"
              },
              {
                "name": "ES_JAVA_OPTS",
                "value": "-Xms2048m -Xmx2048m"
              }
            ],
            "resources": {
              "limits": {
                "cpu": "1"
              },
              "requests": {
                "cpu": "100m"
              }
            },
            "volumeMounts": [
              {
                "name": "data",
                "mountPath": "/usr/share/elasticsearch/data"
              }
            ],
            "terminationMessagePath": "/dev/termination-log",
            "terminationMessagePolicy": "File",
            "imagePullPolicy": "IfNotPresent"
          }
        ],
        "restartPolicy": "Always",
        "terminationGracePeriodSeconds": 30,
        "dnsPolicy": "ClusterFirst",
        "nodeSelector": {
          "app-type": "assistant-app"
        },
        "securityContext": {},
        "imagePullSecrets": [
          {
            "name": "regcred"
          }
        ],
        "schedulerName": "default-scheduler"
      }
    },
    "volumeClaimTemplates": [
      {
        "metadata": {
          "name": "data",
          "creationTimestamp": null,
          "labels": {
            "app": "elasticsearch"
          }
        },
        "spec": {
          "accessModes": [
            "ReadWriteOnce"
          ],
          "resources": {
            "requests": {
              "storage": "5Gi"
            }
          },
          "storageClassName": "es-data-db",
          "volumeMode": "Filesystem"
        },
        "status": {
          "phase": "Pending"
        }
      }
    ],
    "serviceName": "elasticsearch",
    "podManagementPolicy": "OrderedReady",
    "updateStrategy": {
      "type": "RollingUpdate",
      "rollingUpdate": {
        "partition": 0
      }
    },
    "revisionHistoryLimit": 10
  },
  "status": {
    "observedGeneration": 44,
    "replicas": 2,
    "readyReplicas": 1,
    "currentReplicas": 2,
    "updatedReplicas": 2,
    "currentRevision": "es-cluster-6b6647d94",
    "updateRevision": "es-cluster-6b6647d94",
    "collisionCount": 0
  }
}
docker elasticsearch kubernetes startup
1个回答
0
投票

因为数据不重要,所以我删除集群数据文件夹并重新启动。它很快。读取弹性搜索文件并删除init container chown命令应该解决此问题。如果需要目录权限,则在首次运行集群时首次运行chown。只需删除:

         {
            "name": "fix-permissions",
            "image": "docker.io/library/busybox:1.31.1",
            "command": [
              "sh",
              "-c",
              "chown -R 1000:1000 /usr/share/elasticsearch/data"
            ],
            "resources": {},
            "volumeMounts": [
              {
                "name": "data",
                "mountPath": "/usr/share/elasticsearch/data"
              }
            ],
            "terminationMessagePath": "/dev/termination-log",
            "terminationMessagePolicy": "File",
            "imagePullPolicy": "IfNotPresent",
            "securityContext": {
              "privileged": true
            }
          }
© www.soinside.com 2019 - 2024. All rights reserved.