Python中文
首页
教程
问答
标签
搜索
登录
注册
Kubernetes部署会导致崩溃回退和错误
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我在家里用4个RPI设置了一个小型Kubernetes集群。 现在我正处在一个阶段,我想尝试并部署一些东西到它,但它不起作用</p> <p>我创建了一个用于测试的小烧瓶应用程序:</p> <pre><code>from flask import Flask app = Flask(__name__) @app.route("/") def test(): return {"Hello": "World"} if __name__ == "__main__": app.run(debug=True, host="0.0.0.0") </code></pre> <p>它的Dockerfile:</p> <pre><code>FROM python:3.8-alpine COPY . /app WORKDIR /app RUN pip install -r requirements.txt CMD ["python", "app.py"] </code></pre> <p>我正在构建它,并将其推送到DockerHub的注册中心</p> <p>然后我将设置一个deployment.yaml文件:</p> <pre><code>apiVersion: apps/v1 kind: Deployment metadata: name: test-api spec: replicas: 3 selector: matchLabels: app: test-api template: metadata: labels: app: test-api spec: containers: - name: test-api image: gurkmeja101/pi:latest resources: limits: memory: "128Mi" cpu: "500m" ports: - containerPort: 5000 --- apiVersion: v1 kind: Service metadata: name: test-api spec: selector: app: test-api ports: - port: 5000 targetPort: 5000 type: NodePort </code></pre> <p>运行<code>kubectl apply -f deployment.yaml</code>我得到以下输出:</p> <pre><code>deployment.apps/test-api created service/test-api created PS C:\projects\Python\test> kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 40h test-api NodePort 10.105.100.68 <none> 5000:31409/TCP 45s PS C:\projects\Python\test> kubectl get deployments NAME READY UP-TO-DATE AVAILABLE AGE test-api 0/3 3 0 50s PS C:\projects\Python\test> kubectl get pods NAME READY STATUS RESTARTS AGE test-api-649b447666-97x2r 0/1 CrashLoopBackOff 3 88s test-api-649b447666-bmmld 0/1 CrashLoopBackOff 3 88s test-api-649b447666-scnzz 0/1 CrashLoopBackOff 3 88s </code></pre> <p>描述一个失败的吊舱给了我:</p> <pre><code>Name: test-api-649b447666-97x2r Namespace: default Priority: 0 Node: k8s-worker-02/192.168.1.102 Start Time: Wed, 18 Mar 2020 09:05:34 +0100 Labels: app=test-api pod-template-hash=649b447666 Annotations: <none> Status: Running IP: 10.244.2.18 IPs: IP: 10.244.2.18 Controlled By: ReplicaSet/test-api-649b447666 Containers: test-api: Container ID: docker://1418404c27fc5a1a8ef7b557c495a7fbf8f8907ef1dd4d09b4ad5dae02d98b33 Image: gurkmeja101/pi:latest Image ID: docker-pullable://gurkmeja101/pi@sha256:c2bca364aab8f583c3ed0e64514112475d3e8c77f5dfab979929c5e4b8adb43b Port: 5000/TCP Host Port: 0/TCP State: Waiting Reason: CrashLoopBackOff Last State: Terminated Reason: Error Exit Code: 1 Started: Wed, 18 Mar 2020 09:07:10 +0100 Finished: Wed, 18 Mar 2020 09:07:10 +0100 Ready: False Restart Count: 4 Limits: cpu: 500m memory: 128Mi Requests: cpu: 500m memory: 128Mi Environment: <none> Mounts: /var/run/secrets/kubernetes.io/serviceaccount from default-token-7rmwv (ro) Conditions: Type Status Initialized True Ready False ContainersReady False PodScheduled True Volumes: default-token-7rmwv: Type: Secret (a volume populated by a Secret) SecretName: default-token-7rmwv Optional: false QoS Class: Guaranteed 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 ---- ------ ---- ---- ------- Normal Scheduled 119s default-scheduler Successfully assigned default/test-api-649b447666-97x2r to k8s-worker-02 Normal Pulled 24s (x5 over 116s) kubelet, k8s-worker-02 Container image "gurkmeja101/pi:latest" already present on machine Normal Created 24s (x5 over 116s) kubelet, k8s-worker-02 Created container test-api Normal Started 23s (x5 over 115s) kubelet, k8s-worker-02 Started container test-api Warning BackOff 21s (x10 over 112s) kubelet, k8s-worker-02 Back-off restarting failed container </code></pre> <p>我可以使用<code>docker run -d -p 5000:5000 pi:latest</code>运行容器而不会出现任何问题</p> <p>非常感谢您对我们的帮助</p> <p><strong>日志</strong> 运行<code>kubectl logs test-api-649b447666-97x2r</code>会导致: <code>standard_init_linux.go:211: exec user process caused "exec format error"</code></p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>多亏了@coderanger,我成功地完成了部署</p> <p>我需要更新Docker,然后确保为Docker build运行buildx命令。 这就是我需要做的,以使它与RPi上的ARM体系结构兼容:<code>docker buildx build platform linux/amd64,linux/arm64,linux/arm/v7 -t gurkmeja101/pi:latest . push</code></p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在乒乓球比赛中预测球的轨迹,对于AI球拍预测?
10 回答
如何在乒乓球游戏中阻止球
10 回答
如何在乘法和模中不乘空间?
3 回答
如何在乘法和除以2个不同的数字之间进行交换?
9 回答
如何在也是数据一部分的单个字符上拆分大字符串
3 回答
如何在乾草堆中找到針,有更好的解決方案嗎?
3 回答
如何在事件wxWidgets中传递自定义数据
8 回答
如何在事件中使用lambda i=i?
5 回答
如何在事件中心只接收最近的数据
8 回答
如何在事件发生之前保持云函数运行?
3 回答
如何在事件发生后使页面重定向到同一页面
3 回答
如何在事件回调之间保持python生成器的状态
10 回答
如何在事件处理程序(pythonsocket、sphinx)中保留docstring
2 回答
如何在事件处理程序中更改wxRichTextCtrl的光标位置?
4 回答
如何在事件处理程序中访问外部对象?
8 回答
如何在事件循环中将协程打包为正常函数?
1 回答
如何在事件循环之外运行协同程序?
4 回答
如何在事件循环结束时为并发未来的所有线程调用类方法?
3 回答
如何在事件文件中只保留一份摘要?
8 回答
如何在事件模板中添加事件
3 回答