无法在 kubeless 上部署函数



我是 Kubernetes 的初学者。我一直在迷你库贝上尝试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 logs

MISSING: Check controller logs每次我创建一个函数时,它都会显示此状态。我也通过将运行时更改为 python2.7 进行了检查,但它仍然不起作用。部署命令如下

kubeless function deploy hello --runtime python3.6 --from-file python-example/example.py --handler example.hello

请指导我如何解决此问题。

正如我从 kubeless.io 中看到的:

要调试"MISSING:检查控制器日志"类型的问题,有必要检查控制器日志中的错误是什么。要检索这些日志,请执行:

$ kubectl logs -n kubeless -l kubeless=controller

在某些情况下,在 CLI 中完成的验证不足以发现给定参数中的问题。如果是这种情况,则永远不会显示"部署"功能。

希望有帮助。

从 kubeless 代码中,如果 kubeless 无法获取此函数的 k8s 部署状态,则会发生此状态。

status, err := getDeploymentStatus(cli, f.ObjectMeta.Name, f.ObjectMeta.Namespace)
if err != nil && k8sErrors.IsNotFound(err) {
status = "MISSING: Check controller logs"
}

因此,有一些可能的原因如下:

  1. 此函数存在运行时问题,例如,导致 Pod 无法运行的语法问题或依赖项问题。检查 pod 日志可以帮助弄清楚。(这种情况发生在我的情况下,不确定是否是由导致kubeless无法获得失败消息的第二个原因引起的(

  2. kubeless 版本与 k8s 集群版本不兼容。从 k8s 1.15 开始,删除了用于部署的扩展/v1beta1 版本。但是,早期版本的 kubeless 仍然使用 extension/v1beta1 来获取部署状态。您可以查看 k8s 集群的 API 资源。

$kubectl api-resources | grep deployments
deployments    deploy       apps      true         Deployment
#kubectl api-versions | grep apps
apps/v1

查看以下使用新应用/v1 终结点的 kubeless 更改列表。 使用新应用/v1 终结点

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{})

首先,获取 kubeless-controller pod 的名称:

kubectl -n kubeless get pods

您可以从 Kubeles 控制器获取日志:

kubectl logs -n kubeless -c kubeless-function-controller kubeless-controller-manager-5dc8f64bb7-b9x4r

最新更新