0

我一直在尝试在单个节点中设置 ICP EE,但是一旦我开始部署监控服务任务,我就会一直安装失败。

此特定任务运行大约 30 分钟,然后失败。下面是我得到的错误日志。

我需要做些不同的事情吗?

为此,我使用了知识中心上的基本安装步骤。

TASK [monitoring : Deploying monitoring service] 

*******************************
    fatal: [localhost]: FAILED! => {
   "changed":true,
   "cmd":"kubectl apply --force --overwrite=true -f /installer/playbook/..//cluster/cfc-components/monitoring/",
   "delta":"0:30:37.425771",
   "end":"2018-02-26 17:19:04.780643",
   "failed":true,
   "rc":1,
   "start":"2018-02-26 16:48:27.354872",
   "stderr":"Error from server: error when creating \"/installer/cluster/cfc-components/monitoring/grafana-router-config.yaml\": timeout\nError from server (Timeout): error when creating \"/installer/cluster/cfc-components/monitoring/kube-state-metrics-deployment.yaml\": the server was unable to return a response in the time allotted, but may still be processing the request (post deployments.extensions)",
   "stderr_lines":[
      "Error from server: error when creating \"/installer/cluster/cfc-components/monitoring/grafana-router-config.yaml\": timeout",
      "Error from server (Timeout): error when creating \"/installer/cluster/cfc-components/monitoring/kube-state-metrics-deployment.yaml\": the server was unable to return a response in the time allotted, but may still be processing the request (post deployments.extensions)"
   ],
   "stdout":"configmap \"alert-rules\" created\nconfigmap \"monitoring-prometheus-alertmanager\" created\ndeployment \"monitoring-prometheus-alertmanager\" created\nconfigmap \"alertmanager-router-nginx-config\" created\nservice \"monitoring-prometheus-alertmanager\" created\ndeployment \"monitoring-exporter\" created\nservice \"monitoring-exporter\" created\nconfigmap \"monitoring-grafana-config\" created\ndeployment \"monitoring-grafana\" created\nconfigmap \"grafana-entry-config\" created\nservice \"monitoring-grafana\" created\njob \"monitoring-grafana-ds\" created\nconfigmap \"grafana-ds-entry-config\" created\nservice \"monitoring-prometheus-kubestatemetrics\" created\ndaemonset \"monitoring-prometheus-nodeexporter-amd64\" created\ndaemonset \"monitoring-prometheus-nodeexporter-ppc64le\" created\ndaemonset \"monitoring-prometheus-nodeexporter-s390x\" created\nservice \"monitoring-prometheus-nodeexporter\" created\nconfigmap \"monitoring-prometheus\" created\ndeployment \"monitoring-prometheus\" created\nconfigmap \"prometheus-router-nginx-config\" created\nservice \"monitoring-prometheus\" created\nconfigmap \"monitoring-router-entry-config\" created",
   "stdout_lines":[
      "configmap \"alert-rules\" created",
      "configmap \"monitoring-prometheus-alertmanager\" created",
      "deployment \"monitoring-prometheus-alertmanager\" created",
      "configmap \"alertmanager-router-nginx-config\" created",
      "service \"monitoring-prometheus-alertmanager\" created",
      "deployment \"monitoring-exporter\" created",
      "service \"monitoring-exporter\" created",
      "configmap \"monitoring-grafana-config\" created",
      "deployment \"monitoring-grafana\" created",
      "configmap \"grafana-entry-config\" created",
      "service \"monitoring-grafana\" created",
      "job \"monitoring-grafana-ds\" created",
      "configmap \"grafana-ds-entry-config\" created",
      "service \"monitoring-prometheus-kubestatemetrics\" created",
      "daemonset \"monitoring-prometheus-nodeexporter-amd64\" created",
      "daemonset \"monitoring-prometheus-nodeexporter-ppc64le\" created",
      "daemonset \"monitoring-prometheus-nodeexporter-s390x\" created",
      "service \"monitoring-prometheus-nodeexporter\" created",
      "configmap \"monitoring-prometheus\" created",
      "deployment \"monitoring-prometheus\" created",
      "configmap \"prometheus-router-nginx-config\" created",
      "service \"monitoring-prometheus\" created",
      "configmap \"monitoring-router-entry-config\" created"
   ]
}
4

1 回答 1

3

这个节点至少有16G内存(甚至32G)吗?当 pod 上线时,主机可能被初始负载压得喘不过气来。

要测试的第二件事是应用此目录时会发生什么:

  • 您可以从命令行重新运行相同的操作: cd cluster/ kubectl apply --force --overwrite=true -f cfc-components/monitoring/

  • 然后你可以反省幕后发生的事情:

kubectl -n kube-system get pod -o wide

  1. pod 是否卡在非运行状态?
  2. pod 中的容器是否没有启动(例如显示 0/2 或 1/3 或类似)?

journalctl -ru kubelet -o cat | head -n 500 > kubelet-logs.txt

  1. kubelet 是否抱怨无法启动容器?
  2. kubelet 是否抱怨 Docker 不健康?

  3. 如果某个 pod 表明它不健康(高于 #1/#2),则对其进行描述并验证是否有任何事件表明它失败的原因:

kubectl -n kube-system describe pod [failing-pod-name]

如果你还没有kubectl在宿主机上配置和系统交互,或者auth-idpPod 还没有部署,你可以使用下面的步骤来配置kubectl

  • 将 kubectl 二进制文件复制到主机上,然后使用本地 kubelet 配置。KUBECONFIG您可以在您的 shell 配置文件(例如)中更新该文件,.bash_profile使其适用于每个终端会话。

docker run -e LICENSE=accept -v /usr/local/bin:/data \ ibmcom/icp-inception:[YOUR_VERSION] \ cp /usr/local/bin/kubectl /data export KUBECONFIG=/var/lib/kubelet/kubelet-config

于 2018-02-26T22:37:28.977 回答