小编jpj*_*enk的帖子

成功运行命令后,Kubernetes部署不会自动终止

我有一个Kubernetes集群,在其中创建了一个运行Pod的部署。不幸的是,在运行它之后,pod不想自行终止,而是进入了重新启动/ CrashLoopBackOff周期的连续状态。

第一次部署时,该命令(在入口点上)正确运行,我希望它仅运行一次。

我正在使用Python K8s API以编程方式部署配置了入口点的docker映像。这是我的部署YAML:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: kio
  namespace: kmlflow
  labels:
    app: kio
    name: kio
spec:
  replicas: 1
  selector:
    matchLabels:
      app: kio
      name: kio
  template:
    metadata:
      labels:
        app: kio
        name: kio
    spec:
      containers:
      - name: kio-ingester
        image: MY_IMAGE
        command: ["/opt/bin/kio"]
        args: ["some", "args"]
        imagePullPolicy: Always
      restart: Never
  backofflimit: 0
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助

来自kubectl pod的输出是:

Name:               ingest-160-779874b676-8pgv5
Namespace:          kmlflow
Priority:           0
PriorityClassName:  <none>
Node:               02-w540-02.glebe.kinetica.com/172.30.255.205
Start Time:         Thu, 11 Oct 2018 13:31:20 -0400
Labels:             app=kio
                    name=kio
                    pod-template-hash=3354306232
Annotations: …
Run Code Online (Sandbox Code Playgroud)

kubernetes

5
推荐指数
1
解决办法
890
查看次数

如何允许Kubernetes Job访问主机上的文件

我已经仔细阅读过Kubernetes文档,但是仍然无法通过在K8作业启动的pod中运行的应用程序与主机文件系统上的文件进行交互。即使使用最简单的实用程序也会发生这种情况,因此我提供了一个简化的yaml配置示例。此处引用的本地文件'hello.txt'确实存在于主机上的/ tmp中(即,在Kubernetes环境之外),我什至chmod 777也已将其保存。我还在主机文件系统中尝试过/ tmp以外的其他位置。

Kubernetes作业启动的Pod以Status = Error终止并生成日志 ls: /testing/hello.txt: No such file or directory

因为我最终希望以编程方式将其用作更复杂的工作流程的一部分,所以实际上确实需要将其作为工作而不是部署。我希望那是可能的。我正在使用kubectl启动的仅用于测试的当前配置文件是:

apiVersion: batch/v1
kind: Job
metadata:
  name: kio
  namespace: kmlflow
spec:
  # ttlSecondsAfterFinished: 5
  template:
    spec:
      containers:
      - name: kio-ingester
        image: busybox
        volumeMounts:
        - name: test-volume
          mountPath: /testing
        imagePullPolicy: IfNotPresent
        command: ["ls"]
        args: ["-l", "/testing/hello.txt"]
      volumes:
      - name: test-volume
        hostPath:
          # directory location on host
          path: /tmp
          # this field is optional
          # type: Directory
      restartPolicy: Never
  backoffLimit: 4
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的协助。

kubernetes

5
推荐指数
1
解决办法
578
查看次数

如何将 tf.example 发送到 TensorFlow Serving gRPC 预测请求中

我有 tf.example 形式的数据,并试图以预测形式(使用 gRPC)向保存的模型发出请求。我无法确定实现此目的的方法调用。

我从众所周知的汽车定价 DNN 回归模型(https://github.com/tensorflow/models/blob/master/samples/cookbook/regression/dnn_regression.py)开始,我已经通过 TF Serving 导出并安装了该模型码头集装箱

import grpc
import numpy as np
import tensorflow as tf
from tensorflow_serving.apis import predict_pb2, prediction_service_pb2_grpc

stub = prediction_service_pb2_grpc.PredictionServiceStub(grpc.insecure_channel("localhost:8500"))

tf_ex = tf.train.Example(
    features=tf.train.Features(
        feature={
            'curb-weight': tf.train.Feature(float_list=tf.train.FloatList(value=[5.1])),
            'highway-mpg': tf.train.Feature(float_list=tf.train.FloatList(value=[3.3])),
            'body-style': tf.train.Feature(bytes_list=tf.train.BytesList(value=[b"wagon"])),
            'make': tf.train.Feature(bytes_list=tf.train.BytesList(value=[b"Honda"])),
        }
    )
)

request = predict_pb2.PredictRequest()
request.model_spec.name = "regressor_test"

# Tried this:
request.inputs['inputs'].CopyFrom(tf_ex)

# Also tried this:
request.inputs['inputs'].CopyFrom(tf.contrib.util.make_tensor_proto(tf_ex))

# This doesn't work either:
request.input.example_list.examples.extend(tf_ex)

# If it did work, I would like to inference on it like …
Run Code Online (Sandbox Code Playgroud)

python tensorflow tensorflow-serving

5
推荐指数
1
解决办法
2706
查看次数

使用 uvicorn.run 以编程方式启动时启用 Uvicorn 自动重启的问题

我试图让 Uvicorn 在以编程方式启动时自动重新启动检测到的文件更改,就像从命令行--debug启动时一样。以下语句位于我的 api 源代码文件的底部,虽然 Uvicorn 启动并运行良好,但它不会以重新加载模式启动。我尝试将调试参数设置为各种不同的值:uvicorn.run(debug='true'、'True'、'yes' 和 True(python 布尔值),但似乎没有任何效果。

uvicorn.run(app,
            host=run_config['api_host'],
            port=run_config['api_port'],
            log_level=run_config['log_level'],
            debug='true')
Run Code Online (Sandbox Code Playgroud)

编辑:参考我对@howderek 的回答的评论:我尝试了建议代码的修改版本。当服务器成功启动时,下面的代码不会打开重新加载器:

import uvicorn
from uvicorn.reloaders.statreload import StatReload
reloader = StatReload('debug')
reloader.run(uvicorn.run(app, host='localhost', port=9187, debug='true'))
Run Code Online (Sandbox Code Playgroud)

api wsgi

4
推荐指数
2
解决办法
4277
查看次数

标签 统计

kubernetes ×2

api ×1

python ×1

tensorflow ×1

tensorflow-serving ×1

wsgi ×1