我是Kubernetes的初学者。我一直在minikube上试用kubeless。我已经在可用的最新版本中设置了这两个版本。当我部署函数时,这是我得到的输出:
INFO[0000] Deploying function...
INFO[0000] Function hello submitted for deployment
INFO[0000] Check the deployment status executing 'kubeless function ls hello'当我运行kubeless function ls时,我得到这样的结果:
NAME NAMESPACE HANDLER RUNTIME DEPENDENCIES STATUS
hello default example.hello python3.6 MISSING: Check controller logsMISSING: Check controller logs每次创建函数时,它都会显示此状态。我还通过将运行时更改为python2.7进行了检查,但它仍然不起作用。部署命令如下
kubeless function deploy hello --runtime python3.6 --from-file python-example/example.py --handler example.hello请指导我如何解决此问题。
发布于 2020-02-06 23:21:07
正如我从kubeless.io中看到的
要调试“丢失:检查控制器日志”这类问题,有必要检查控制器日志中的错误是什么。要检索这些日志,请执行以下命令:
$ kubectl logs -n kubeless -l kubeless=controller在某些情况下,在CLI中完成的验证不足以发现给定参数中的问题。如果是这种情况,函数部署将永远不会出现。
希望这能有所帮助。
发布于 2020-02-21 11:47:13
在kubeless代码中,如果kubeless无法获取此函数的k8s部署状态,则会出现此状态。
status, err := getDeploymentStatus(cli, f.ObjectMeta.Name, f.ObjectMeta.Namespace)
if err != nil && k8sErrors.IsNotFound(err) {
status = "MISSING: Check controller logs"
}因此,可能的原因如下:
$kubectl api-resources | grep deployments
deployments deploy apps true Deployment
#kubectl api-versions | grep apps
apps/v1检查以下使用新应用程序/v1端点的kubeless的更改列表。Use new apps/v1 endpoint
func getDeploymentStatus(cli kubernetes.Interface, funcName, ns string) (string, error) {
- dpm, err := cli.ExtensionsV1beta1().Deployments(ns).Get(funcName, metav1.GetOptions{})
+ dpm, err := cli.AppsV1().Deployments(ns).Get(funcName, metav1.GetOptions{})发布于 2020-10-10 10:34:32
首先,获取kubeless-controller pod的名称:
kubectl -n kubeless get pods您可以从Kubeles控制器获取日志:
kubectl logs -n kubeless -c kubeless-function-controller kubeless-controller-manager-5dc8f64bb7-b9x4rhttps://stackoverflow.com/questions/60091934
复制相似问题