Zha*_* Yi 3 elasticsearch kubernetes
我使用以下配置文件将 elasticsearch 部署到 minikube:
apiVersion: apps/v1
kind: Deployment
metadata:
name: elasticsearch
spec:
replicas: 1
selector:
matchLabels:
name: elasticsearch
template:
metadata:
labels:
name: elasticsearch
spec:
containers:
- name: elasticsearch
image: elasticsearch:7.10.1
ports:
- containerPort: 9200
- containerPort: 9300
Run Code Online (Sandbox Code Playgroud)
我运行命令kubectl apply -f es.yml来部署elasticsearch集群。
$ kubectl get pod
NAME READY STATUS RESTARTS AGE
elasticsearch-fb9b44948-bchh2 1/1 Running 5 6m23s
Run Code Online (Sandbox Code Playgroud)
elasticsearch pod 每隔几分钟就会重新启动一次。当我运行kubectl describe pod 命令时,我可以看到这些事件:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 7m11s default-scheduler Successfully assigned default/elasticsearch-fb9b44948-bchh2 to minikube
Normal Pulled 3m18s (x5 over 7m11s) kubelet Container image "elasticsearch:7.10.1" already present on machine
Normal Created 3m18s (x5 over 7m11s) kubelet Created container elasticsearch
Normal Started 3m18s (x5 over 7m10s) kubelet Started container elasticsearch
Warning BackOff 103s (x11 over 5m56s) kubelet Back-off restarting failed container
Run Code Online (Sandbox Code Playgroud)
最后一个事件是Back-off restarting failed,但我不知道为什么它会重新启动 Pod。有什么办法可以检查为什么它不断重新启动吗?
第一步 ( kubectl describe pod) 您已经完成。作为下一步,我建议检查容器日志:kubectl logs <pod_name>。在这种情况下,99% 你可以从日志中找到原因(我敢打赌引导检查失败)。
当describe pod日志和日志都没有任何有关错误的信息时,我使用 'exec': 进入容器kubectl exec -it <pod_name> -c <container_name> sh。这样,您将在容器内获得一个 shell(当然,如果其中有 shell 二进制文件),这样您就可以使用它来手动调查问题。请注意,为了使失败的容器保持活动状态,您可能需要进行如下command更改:args
command:
- /bin/sh
- -c
args:
- cat /dev/stdout
Run Code Online (Sandbox Code Playgroud)
执行此操作时请务必禁用探测器。如果活性探测失败,容器可能会重新启动,kubectl describe pod如果发生这种情况,您将看到。由于您的代码片段没有指定任何探针,因此您可以跳过此步骤。
| 归档时间: |
|
| 查看次数: |
12643 次 |
| 最近记录: |