2

从我的自定义事物板制作 cassandra、cassandra-setup、应用程序和 zookeeper 的 docker 映像之后。我尝试将其部署到 Kubernetes Engine,没有错误,但运行不佳。

这是我的 github 上的 yaml 命令:

curl -L https://raw.githubusercontent.com/Firdauzfan/ThingsboardGSPE/master/docker/k8s/common.yaml > common.yaml

curl -L https://raw.githubusercontent.com/Firdauzfan/ThingsboardGSPE/master/docker/k8s/cassandra.yaml > cassandra.yaml

curl -L https://raw.githubusercontent.com/Firdauzfan/ThingsboardGSPE/master/docker/k8s/zookeeper.yaml > zookeeper.yaml

curl -L https://raw.githubusercontent.com/Firdauzfan/ThingsboardGSPE/master/docker/k8s/tb.yaml > tb.yaml

curl -L https://raw.githubusercontent.com/Firdauzfan/ThingsboardGSPE/master/docker/k8s/cassandra-setup.yaml > cassandra-setup.yaml

这是我的码头工人形象: https ://hub.docker.com/u/firdauzfanani/

示例:当我运行命令 kubectl create -f cassandra.yaml 时,cassandra 引擎只显示正在运行但尚未准备好。

状态截图在这里

4

1 回答 1

0

如果它显示为not ready即使它正在运行而没有问题(es:您可以ssh进入它并且所有服务都在运行),则可能是您的 redinessprobe 配置错误,我在 YAML 文件中看到如下定义,但我没有关于其行为的线索。考虑到根据文档,它应该返回 0。

readinessProbe:
          exec:
            command:
            - /bin/bash
            - -c
            - /ready-probe.sh

另一方面,如果当您尝试访问 pod 时遇到某种错误,我建议您如果您还没有这样做,请检索更多信息以进行运行以下命令的故障排除:

$ kubectl describe deployments
$ kubectl describe pods
$ kubectl describe services

这一系列命令可以帮助您更好地了解正在发生的事情。

请运行它们并使用输出编辑您的初始帖子,我可以查看它们。

ssh进入 pod 运行:

$ kubectl get pods (to retrieve pod name)
$ kubectl exec -ti PODNAME  /bn/bash 

更新 我部署了您的 YAML 文件,Pod 运行正常(我相信)失败的是其内容如下的探测器:

cat /ready-probe.sh
if [[ $(nodetool status | grep $POD_IP) == *"UN"* ]]; then
  if [[ $DEBUG ]]; then
    echo "UN";
  fi
  exit 0;
else
  if [[ $DEBUG ]]; then
    echo "Not Up";
  fi
  exit 1;
于 2018-03-14T09:39:59.620 回答