首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在kubernetes中进行端口转发,如docker-compose

如何在kubernetes中进行端口转发,如docker-compose
EN

Stack Overflow用户
提问于 2018-12-04 20:46:37
回答 2查看 3.9K关注 0票数 1

我有docker-compose.yml

代码语言:javascript
复制
version: '3.5'
services:
  container-name:
    image: container-image
    ports:
      - 80:80
      - 443:443

并创建具有到主机的端口转发的容器。docker检查容器名称

代码语言:javascript
复制
[...]
NetworkSettings: {
  [...]
  Ports: {
    443/tcp: [{ HostIp: 0.0.0.0, HostPort: 443 }]
    80/tcp: [{ HostIp: 0.0.0.0, HostPort: 80 }]
  }
  [...]
}
[...]

但是在kubernetes next pod.yml中,创建不带端口的容器。

代码语言:javascript
复制
kind: Pod
matadata:
  name: pod-name
spec:
  containers:
  - image: container-image
    name: container-name
    ports:
    - containerPort: 80
      protocol: TCP
    - containerPort: 443
      protocol: TCP
    [...]

简而言之,我需要将容器(Pod)端口转发到主机(节点)。

我发现最好还是去揭发。但它对我不起作用。

EN

回答 2

Stack Overflow用户

发布于 2018-12-04 21:59:30

kubernetes的方式“更倾向于通过service暴露你的pod,并用deployment控制它。

如果您出于某种原因想要使用端口转发,您可以这样做:

代码语言:javascript
复制
kubectl port-forward pod/pod-name 8080:80 8443:443 -n default

这将绑定到您的主机端口80808443上,将流量分别转发到端口80443,用于名为pod-name的pod。我没有省略名称空间(default),默认情况下kubectl将使用您的current-context

票数 6
EN

Stack Overflow用户

发布于 2018-12-04 21:42:35

如果您知道您的应用程序正在使用的端口,您可能可以使用:

kubectl端口转发LOCAL_PORT:REMOTE_PORT

类似于: kubectl port-forward 8080:80

这假设您的pod在默认名称空间中。如果您在另一个名称空间中部署,则可以在kubectl命令中传递使用-n参数。

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

https://stackoverflow.com/questions/53613366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档