首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在接受命令行参数的kubernetes上运行坞映像?

如何在接受命令行参数的kubernetes上运行坞映像?
EN

Stack Overflow用户
提问于 2019-01-29 07:11:30
回答 3查看 737关注 0票数 0

我有一个docker映像,其中包含一个python文件,它使用sys.stdin()接受命令行中的参数。我可以使用以下命令运行图像

猫file.csv +码头运行-i -t my_image

它将file.csv的内容输送到图像中,我得到了预期的输出。

现在,我想将这个映像部署到kubernetes。我可以使用docker在服务器上运行映像,没有任何问题。但是,如果我卷曲到它,它应该发送回一个响应,但我没有得到它,因为我没有一个web服务器监听任何端口。我继续使用下面的命令构建了一个部署。

kubectl run -i my_deployment --image=gcr.io/${PROJECT_ID}/my_image:v1 -端口8080

它构建了部署,我可以看到吊舱在运行。然后我把它暴露出来。

kubectl公开部署my_deployment --type=LoadBalancer -端口80 --目标--端口8080

但如果我想用卷曲分配的IP来访问它,

卷曲ip地址

我得到了“连接被拒绝”的回应。

如何在kubernetes上将这个docker映像部署为服务,并将文件的内容作为输入发送到服务?我需要一个网络服务器吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-01-29 15:31:41

Kubernetes通常假定它部署的容器寿命长,并且是自主的。如果您要在Pod中部署某些东西,特别是通过部署,那么它应该能够在没有任何特定输入的情况下自行运行。如果它立即退出,Kubernetes将重新启动它,您将很快进入可怕的CrashLoopBackOff状态。

简而言之:您需要重新设计容器以避免使用stdin,而stdout是它的主要接口。

将网络端点添加到服务中的本能可能是正确的,但是Kubernetes不会单独这样做。如果您重新构建您的应用程序,例如,拥有一个Flask服务器并在端口上侦听,那么您可以很容易地将其部署到Kubernetes。如果应用程序希望在stdin上输入数据并将其结果输出到stdout,那么添加Kubernetes网络元数据不会有任何帮助:在您的示例中,如果8080端口上的容器中没有任何内容正在侦听,那么网络连接将永远不会到达任何地方。

票数 1
EN

Stack Overflow用户

发布于 2019-01-29 07:59:55

我猜库伯内特斯是在酒店里跑的。我会做以下几点。

  • 创建nginx或apache部署。使用Helm,它非常容易使用

舵安装稳定/nginx入口

  • 使用端口8080创建一个部署,或者使用docker运行它所暴露的任何内容。实际部署将有一个API,我可以通过POST发送内容。
  • 使用端口8080和targetPort 8080创建服务。它应该是ClusterIP类型。
  • 创建一个主机名和servicePort为8080的入口。
票数 1
EN

Stack Overflow用户

发布于 2019-01-29 14:25:02

由于在运行命令时将文件作为参数传递,因此我认为,一旦容器上有了内容,就不需要更新csv的内容。

实现该文件读取操作的最佳方法是在您的Dockerfile上对该文件进行添加,并使用打开函数打开该文件。

你会有这样的一条线

代码语言:javascript
运行
AI代码解释
复制
ADD file.csv /home/file.csv

在您的python代码中,如下所示:

代码语言:javascript
运行
AI代码解释
复制
file_in = open(‘home/file.csv’, ‘r’)

请注意,如果要更改文件,则需要更新Dockerfile、重新构建、推送到注册表并重新部署到GKE。如果不想遵循此过程,可以使用ConfigMap

此外,如果这回答了您的问题,请确保将您的相同问题链接到server断层上。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54424063

复制
相关文章
java准确的获取操作系统的名称
在我们日常开发中,经常需要判断操作系统的版本或者系统的名字等等。这就需要我们用到jdk默认带的一些属性了。这里我对各个版本的系统都做了区分,分别能判断mac,linux,window等大众的操作系统名称。直接看代码(OSUtil.java):
业余草
2019/01/21
4.3K0
java准确的获取操作系统的名称
JavaScript获取每个月的天数
每一年里,只有2月是不固定的。1、3、5、7、8、10、12是31天,4、6、8、11是30天写死,2月判断润平年。能被4整除且不能整除100的为闰年或者能够被 400 整除的就是闰年。
肥晨
2023/02/17
1.2K0
[答疑]对于Oracle来说,土地管理是非核心域吗
您在课上说,对于土地管理系统来说oracle,arcgis,java是非核心域,因为它们可有可无。我想请教对于oracle来说,土地管理好像也是可有可无,那么土地管理是非核心域吗
用户6288414
2022/03/01
2660
[答疑]对于Oracle来说,土地管理是非核心域吗
根据 PID 获取容器所在的 Pod 名称
在管理 Kubernetes 集群的过程中,我们经常会遇到这样一种情况:在某台节点上发现某个进程资源占用量很高,却又不知道是哪个容器里的进程。有没有办法可以根据 PID 快速找到 Pod 名称呢?
米开朗基杨
2020/07/17
6.9K0
【python高级编程】namedtuple用法--给元组中的每个元素命名
给每个元组中的元素命名,我们就可以使用名字去访问对应元素,相对于索引访问,这样可以大大提高程序的可读性。
用户7886150
2020/12/24
2.9K0
获取GridView中的某列值
    protected void GridView1_RowEditing(object sen
Java架构师必看
2021/03/22
10.5K0
按照A列进行分组并计算出B列每个分组的平均值,然后对B列内的每个元素减去分组平均值
前几天在Python星耀交流群有个叫【在下不才】的粉丝问了一个Pandas的问题,按照A列进行分组并计算出B列每个分组的平均值,然后对B列内的每个元素减去分组平均值,这里拿出来给大家分享下,一起学习。
前端皮皮
2022/08/17
3K0
按照A列进行分组并计算出B列每个分组的平均值,然后对B列内的每个元素减去分组平均值
Python3列表和元组
数据结构是以某种方式组合起来的数据元素的集合。在Python中基本的数据结构就是序列
py3study
2020/01/13
1.4K0
根据 PID 获取 K8S Pod名称 - 反之 POD名称 获取 PID
随着 Kubernetes 越来越火爆,运维人员排查问题难度越来越大。比如我们收到监控报警,某台 Kubernetes Node 节点负载高。通过 top 或者 pidstat 命令获取 Pid,问题来了,这个 Pid 对应那个 Kubernetes Pod 呢?
YP小站
2020/07/21
3.4K0
Phoenix Framework对于Tree该方法节点设置不同的图标,每个[通俗易懂]
在包Javax Swing的Tree对象。我们需要设置不同的图标为每个节点。它封装了一个通用的方法:
全栈程序员站长
2022/07/06
3280
Phoenix Framework对于Tree该方法节点设置不同的图标,每个[通俗易懂]
js获取元素相对于document的坐标
代码如下: const getOffset = el => { const { left, top } = el.getBoundingClientRect() const { scrollTop, scrollLeft } = document.body return { top: top + scrollTop, left: left + scrollLeft } } 使用: <!DOCTYPE html> <html lang="en"> <head> <meta
阿超
2023/02/20
7K0
js获取元素相对于document的坐标
Excel公式技巧93:查找某行中第一个非零值所在的列标题
有时候,一行数据中前面的数据值都是0,从某列开始就是大于0的数值,我们需要知道首先出现大于0的数值所在的单元格。例如下图1所示,每行数据中非零值出现的位置不同,我们想知道非零值出现的单元格对应的列标题,即第3行中的数据值。
fanjy
2021/07/12
10K0
Excel公式技巧93:查找某行中第一个非零值所在的列标题
Android开发:获取手机当前连接的WiFi名称
点击进入WIFI_SERVICE,看到的是系统的WiFi名称是加的有双引号的,具体如下所示:
三掌柜
2021/12/27
4.4K0
根据/proc/partitions获取插入的U盘设备名称
1 在/proc/partitions中存放着U盘的设备名称,如sda,sdb2等,以sd开头。
全栈程序员站长
2022/09/13
1.2K0
Python获取网卡信息(名称、MAC、
    “人生苦短,我用Python”。Python的高效有一部分是跟它丰富的模块分不开的。Python有很多第三方模块可以帮助我们完成一些事情,减少开发时间。
py3study
2020/01/03
4.7K0
Python获取网卡信息(名称、MAC、
C/C++获取枚举值名称
jasong
2025/03/26
730
【说站】python元组有哪些获取元素的方法
以上就是python元组获取元素的方法,希望对大家有所帮助。更多Python学习指路:python基础教程
很酷的站长
2022/11/23
9740
常用行或者列的对应解释与名称与ASCII码整理
常用行或者列的对应解释与名称与ASCII码整理
学到老
2018/03/19
1.1K0
常用行或者列的对应解释与名称与ASCII码整理
[答疑]针对需求分包的情况,是否要为每个分包寻找出它的组织
潘老师,请教一下,业务建模过程中,针对需求分包的情况,是否要为每个分包寻找出它的组织?以及找到这个组织要解决的问题? fochaillee (747**11) 2012-08-28 16:31:05 如果系统要解决的问题的组织是一个公司,老大的愿景是比较宏观的,但要达到老大的愿景,还是需要各个组织(内部机构)的协调才能达到的,这样就有需要解决各个组织的问题; 不知道理解的对不对? 大家可以一起讨论一下 潘加宇 (3504847) 2012-08-28 16:34:56 需求应该从业务建模导出,既然"要达到老大的愿景,还是需要各个组织(内部机构)的协调",就把整个的组织作为研究对象。 这和"需求分包"无关。 潘加宇 (3504847) 2012-08-28 16:35:06 你可以把问题提得再具体一点 李旗风 (287**8589) 2012-08-28 16:37:58 老大的愿景比较宏观,就需要细化或者具体化 李旗风 (287**8589) 2012-08-28 16:39:38 一些思路: 1、从相关涉众入手,找出它们的关注点,然后来提取,这是自底向上 2、分享老大的一些外部刺激源:考察、竞争对手等等,然后寻找方案 fochaillee (747**11) 2012-08-28 16:42:26 如: 老大的愿景,就是通过上"项目管理系统",项目成本,年均节约成本20%;计划偏差率,缩小15%;项目风险汇报,小于3天…… fochaillee (747**11) 2012-08-28 16:43:13 那为了达成上面的愿景: 可能涉及到成本部(机构A); 项目管理部(机构B); 项目X(机构C); …… fochaillee (747**11) 2012-08-28 16:44:00 每一个部门各自内部的相关问题解决,才可能达到老大的愿景 fochaillee (747**11) 2012-08-28 16:45:10 所以不知道是否应该为每一个部门,进行业务建模,还是要针对整个企业? 不知道我描述的是否清晰了 张红文 (103**65631) 2012-08-28 16:47:50 只为一个企业进行业务建模,其他机构相关人员是"业务工作者" 潘加宇 (3504847) 2012-08-28 16:47:53 (1)针对整个企业即可,挑关键的流程先画,如果觉得许多流程中的步骤与愿景无关,可以再缩小范围 (2愿景需要再斟酌。项目成本,"年均节约成本20%"和"计划偏差率,缩小15%;项目风险汇报,小于3天……"可能不是一个级别 fochaillee (747**11) 2012-08-28 16:49:08 我上面只是举个类似的例子 潘加宇 (3504847) 2012-08-28 16:49:25 你可以画一个图,为什么成本高,找出若干原因,有可能再对原因找出原因的若干原因,一直到系统能承诺的目标 fochaillee (747**11) 2012-08-28 16:50:51 这个用什么UML图来表示比较好呢?有没有好的建议? 我不可能画草图吧? 潘加宇 (3504847) 2012-08-28 16:51:46 鱼骨图。可用类图代替。
用户6288414
2021/04/22
4060
类模块应用示例:获取单击的命令按钮名称
这个示例来源于ozgrid.com,有兴趣的朋友可以研究。在用户窗体上共有24个命令按钮,如下图1所示。
fanjy
2023/10/04
3460
类模块应用示例:获取单击的命令按钮名称

相似问题

Vim可视化模式脚本:搜索围绕可视选择的文本

22

在vim中,如何可视化地选择先前粘贴的文本

34

Vim -可视化选择正则表达式匹配的命令?

31

VIM: vim.command('y')按预期工作,但vim.command('gv')启动图形用户界面而不是可视化选择

22

在VIM中可视化地选择和中断多行,直到文本宽度

122
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文