【问题标题】:"oc new-app" does not expose port altough the input image does“oc new-app”虽然输入图像没有暴露端口
【发布时间】:2018-08-08 14:04:05
【问题描述】:

我正在探索 OpenShift 3.9,并设法使用oc new-app 和 Docker 构建策略构建并运行了第一个容器。我的 Dockerfile 包含命令 EXPOSE 5432

推出后oc describe istag/my_app:latest | grep ^Exposes 报告Exposes Ports: 5432/tcp,看起来不错:图像暴露了端口5432。但是oc describe po/my_app-1-some_id | grep "^\s*Port" 报告Port: <none>,所以总体上看起来好像端口暴露在Docker 级别,但还没有达到 Kubernetes/OpenShift 的水平。

OpenShift documentation 表示如下:

new-app 命令尝试检测输入图像中暴露的端口。 它使用最小数字公开端口来生成服务 公开该端口。为了暴露不同的端口,在 new-app 之后 已经完成,只需使用 oc expose 命令生成额外的 服务。

为什么oc new-app 在这种情况下不暴露端口 5432(实际上它也没有创建任何 service 资源),我怎样才能让它自动这样做,因为输入图像已经这样做了,而且似乎可以判断来自文档?

更新以下是有关如何创建新应用程序的更多详细信息:

oc new-app ssh://my_account@my_git_server/my_path/my_repo.git
  --context-dir=my_dir --strategy=docker --name my_app

Git 存储库包含一个迄今为止微不足道的 my_dir/Dockerfile,而它又包含命令 EXPOSE 5432

【问题讨论】:

  • 如果你运行oc describe service/my_app,你会得到什么?它是您要查看的服务对象。无论哪种方式,如果这是您所期望的,默认情况下端口不会暴露在 OpenShift 集群之外。
  • @GrahamDumpleton 否 svc 资源已由此 oc new-app 创建(这似乎是问题的一部分)。只有isbcdcpod。是的,在这个阶段暴露在集群内部的端口就足够了。
  • 如果开始使用 OpenShift,您可能需要阅读三本免费电子书,您可以在 help.openshift.com 底部找到链接
  • 如果您运行oc new-app 命令但添加选项--dry-run -o json,它生成的JSON 是否显示Service 对象?在DeploymentConfig 中,容器中的ports 定义显示了什么?
  • 非常欢迎您发帖,因为您最了解问题/结果是什么。

标签: docker openshift


【解决方案1】:

最后,问题“突然”消失了,oc new-app 现在确实暴露了端口(如文档所述)。到目前为止,我正在使用诸如此类的微不足道的Dockerfile

FROM debian:stretch
EXPOSE 5432

COPY start.sh /usr/local/bin/start.sh
CMD ["start.sh"]

startup.sh 调用 sleep infinity。在解释方面,我只能猜测我犯了一些导致干扰的次要和瞬时错误。

以下是尝试诊断和解决问题时的经验教训(非常感谢@GrahamDumpleton):

  • 如果oc new-app 一切顺利,oc get all 应为资源svc/my_app 指明端口5432/TCP,还应列出deploymentconfigsbuildconfigsbuilds 类型的新OpenShift(和Kubernetes)资源、imagestreamsporc
  • 这种自动机制仅在 集群,即svc/my_app 拥有(并监听)集群 IP(不是:外部 IP)。
  • 其他参数 --dry-run -output json 导致 oc new-app 进行试运行并打印其通常会创建的资源的准确描述(以 JSON 格式)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-07
    • 2021-02-04
    • 2021-06-10
    • 2020-02-22
    • 1970-01-01
    • 2018-09-03
    • 2021-12-16
    • 1970-01-01
    相关资源
    最近更新 更多