gpt4 book ai didi

docker - 尝试在 Raspberry Pi 3B+ 上运行 OpenFaas 函数时出现 ImageInspectError

转载 作者:行者123 更新时间:2023-12-01 15:21:14 28 4
gpt4 key购买 nike

我正在尝试使用 OpenFaas project 部署一个函数以及在 2 个 Raspberry Pi 3B+ 上运行的 kubernetes 集群。不幸的是,应该处理该函数的 pod 将进入 ImageInspectError 状态...我尝试直接使用 Docker 运行该函数,该函数包含在 Docker 镜像中,一切正常。

我打开了一个 issue在 OpenFaas github 上,维护者告诉我直接询问 Kubernetes 社区以获得一些线索。

我的第一个问题是:ImageInspectError 是什么意思,它来自哪里?

这是我所有的信息:

预期行为

Pod 应该运行。

当前行为

NAMESPACE     NAME                                 READY     STATUS              RESTARTS   AGE
kube-system etcd-masternode 1/1 Running 1 1d
kube-system kube-apiserver-masternode 1/1 Running 1 1d
kube-system kube-controller-manager-masternode 1/1 Running 1 1d
kube-system kube-dns-7f9b64f644-x42sr 3/3 Running 3 1d
kube-system kube-proxy-wrp6f 1/1 Running 1 1d
kube-system kube-proxy-x6pvq 1/1 Running 1 1d
kube-system kube-scheduler-masternode 1/1 Running 1 1d
kube-system weave-net-4995q 2/2 Running 3 1d
kube-system weave-net-5g7pd 2/2 Running 3 1d
openfaas-fn figlet-7f556fcd87-wrtf4 1/1 Running 0 4h
openfaas-fn testfaceraspi-7f6fcb5897-rs4cq 0/1 ImageInspectError 0 2h
openfaas alertmanager-66b98dd4d4-kcsq4 1/1 Running 1 1d
openfaas faas-netesd-5b5d6d5648-mqftl 1/1 Running 1 1d
openfaas gateway-846f8b5686-724q8 1/1 Running 2 1d
openfaas nats-86955fb749-7vsbm 1/1 Running 1 1d
openfaas prometheus-6ffc57bb8f-fpk6r 1/1 Running 1 1d
openfaas queue-worker-567bcf4d47-ngsgv 1/1 Running 2 1d

testfaceraspi 没有运行。

来自 pod 的日志:

$ kubectl logs testfaceraspi-7f6fcb5897-rs4cq -n openfaas-fn
Error from server (BadRequest): container "testfaceraspi" in pod "testfaceraspi-7f6fcb5897-rs4cq" is waiting to start: ImageInspectError

广告连播描述:

$ kubectl describe pod -n openfaas-fn  testfaceraspi-7f6fcb5897-rs4cq 
Name: testfaceraspi-7f6fcb5897-rs4cq
Namespace: openfaas-fn
Node: workernode/10.192.79.198
Start Time: Thu, 12 Jul 2018 11:39:05 +0200
Labels: faas_function=testfaceraspi
pod-template-hash=3929761453
Annotations: prometheus.io.scrape=false
Status: Pending
IP: 10.40.0.16
Controlled By: ReplicaSet/testfaceraspi-7f6fcb5897
Containers:
testfaceraspi:
Container ID:
Image: gallouche/testfaceraspi
Image ID:
Port: 8080/TCP
Host Port: 0/TCP
State: Waiting
Reason: ImageInspectError
Ready: False
Restart Count: 0
Liveness: exec [cat /tmp/.lock] delay=3s timeout=1s period=10s #success=1 #failure=3
Readiness: exec [cat /tmp/.lock] delay=3s timeout=1s period=10s #success=1 #failure=3
Environment:
fprocess: python3 index.py
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-5qhnn (ro)
Conditions:
Type Status
Initialized True
Ready False
PodScheduled True
Volumes:
default-token-5qhnn:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-5qhnn
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning DNSConfigForming 2m (x1019 over 3h) kubelet, workernode Search Line limits were exceeded, some search paths have been omitted, the applied search line is: openfaas-fn.svc.cluster.local svc.cluster.local cluster.local heig-vd.ch einet.ad.eivd.ch web.ad.eivd.ch

和事件日志:

$ kubectl get events --sort-by=.metadata.creationTimestamp -n openfaas-fn
LAST SEEN FIRST SEEN COUNT NAME KIND SUBOBJECT TYPE REASON SOURCE MESSAGE
14m 1h 347 testfaceraspi-7f6fcb5897-rs4cq.1540db41e89d4c52 Pod Warning DNSConfigForming kubelet, workernode Search Line limits were exceeded, some search paths have been omitted, the applied search line is: openfaas-fn.svc.cluster.local svc.cluster.local cluster.local heig-vd.ch einet.ad.eivd.ch web.ad.eivd.ch
4m 1h 75 figlet-7f556fcd87-wrtf4.1540db421002b49e Pod Warning DNSConfigForming kubelet, workernode Search Line limits were exceeded, some search paths have been omitted, the applied search line is: openfaas-fn.svc.cluster.local svc.cluster.local cluster.local heig-vd.ch einet.ad.eivd.ch web.ad.eivd.ch
10m 10m 1 testfaceraspi-7f6fcb5897-d6z78.1540df9ed8b91865 Pod Normal Scheduled default-scheduler Successfully assigned testfaceraspi-7f6fcb5897-d6z78 to workernode
10m 10m 1 testfaceraspi-7f6fcb5897.1540df9ed6eee11f ReplicaSet Normal SuccessfulCreate replicaset-controller Created pod: testfaceraspi-7f6fcb5897-d6z78
10m 10m 1 testfaceraspi-7f6fcb5897-d6z78.1540df9eef3ef504 Pod Normal SuccessfulMountVolume kubelet, workernode MountVolume.SetUp succeeded for volume "default-token-5qhnn"
4m 10m 27 testfaceraspi-7f6fcb5897-d6z78.1540df9eef5445c0 Pod Warning DNSConfigForming kubelet, workernode Search Line limits were exceeded, some search paths have been omitted, the applied search line is: openfaas-fn.svc.cluster.local svc.cluster.local cluster.local heig-vd.ch einet.ad.eivd.ch web.ad.eivd.ch
8m 9m 8 testfaceraspi-7f6fcb5897-d6z78.1540df9f670d0dad Pod spec.containers{testfaceraspi} Warning InspectFailed kubelet, workernode Failed to inspect image "gallouche/testfaceraspi": rpc error: code = Unknown desc = Error response from daemon: readlink /var/lib/docker/overlay2/l: invalid argument
9m 9m 7 testfaceraspi-7f6fcb5897-d6z78.1540df9f670fcf3e Pod spec.containers{testfaceraspi} Warning Failed kubelet, workernode Error: ImageInspectError

重现步骤(针对错误)

  1. 在 2 节点 k8s 集群上部署 OpenFaas
  2. 使用 faas new testfaceraspi --lang python3-armhf 创建函数
  3. handler.py中添加如下代码:

    import json
    def handle(req):
    jsonl = json.loads(req)

    return ("Found " + str(jsonl["nbFaces"]) + " faces in OpenFaas Function on raspi !")
  4. 更改.yml 中的网关和图像 供应商: 名称:法斯 网关:http://127.0.0.1:31112

    functions:
    testfaceraspi:
    lang: python3-armhf
    handler: ./testfaceraspi
    image: gallouche/testfaceraspi
  5. 运行faas build -f testfacepi.yml

  6. 使用docker login登录DockerHub
  7. 运行faas push -f testfacepi.yml
  8. 运行 faas deploy -f testfacepi.yml

您的环境

  • FaaS-CLI 版本(完整输出来自:faas-cli version):

    Commit: 3995a8197f1df1ecdf524844477cffa04e4690ea
    Version: 0.6.11
  • Docker 版本(完整输出来自:docker version):

    Client:
    Version: 18.04.0-ce
    API version: 1.37
    Go version: go1.9.4
    Git commit: 3d479c0
    Built: Tue Apr 10 18:25:24 2018
    OS/Arch: linux/arm
    Experimental: false
    Orchestrator: swarm

    Server:
    Engine:
    Version: 18.04.0-ce
    API version: 1.37 (minimum version 1.12)
    Go version: go1.9.4
    Git commit: 3d479c0
    Built: Tue Apr 10 18:21:25 2018
    OS/Arch: linux/arm
    Experimental: false
  • 操作系统和版本(例如 Linux、Windows、MacOS):

    Distributor ID: Raspbian
    Description: Raspbian GNU/Linux 9.4 (stretch)
    Release: 9.4
    Codename: stretch

提前致谢,如果您需要更多信息,请告诉我。

加鲁什

最佳答案

我看到这个错误是因为 Kubernetes 不支持 docker 版本。从 Kubernetes 版本 1.11 开始,支持的版本为 1.11.2 到 1.13.1 和 17.03.x。

我无法使用 OpenFaaS 测试解决方案。

关于docker - 尝试在 Raspberry Pi 3B+ 上运行 OpenFaas 函数时出现 ImageInspectError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51325211/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com