如何将自定义的东西板部署到Kubenetes引擎?

时间:2018-03-14 03:17:55

标签: kubernetes google-cloud-platform google-kubernetes-engine kubernetes-health-check thingsboard

从我的自定义事件板制作cassandra,cassandra-setup,application和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引擎只显示运行但尚未准备好。

Status screenshot here

1 个答案:

答案 0 :(得分:0)

如果它显示为not ready即使它正在运行而没有任何问题(例如:你可以ssh进入它并且所有服务都在运行),可能是我在yamL文件中定义的redinessprobe配置错误,如下所示,但我对其行为一无所知。考虑accordingly文档应返回0。

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

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

$ 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;