提问者:小点点

如何在kubernetes中进行端口转发,例如docker-combody


我有docker-comup. yml

version: '3.5'
services:
  container-name:
    image: container-image
    ports:
      - 80:80
      - 443:443

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

[...]
NetworkSettings: {
  [...]
  Ports: {
    443/tcp: [{ HostIp: 0.0.0.0, HostPort: 443 }]
    80/tcp: [{ HostIp: 0.0.0.0, HostPort: 80 }]
  }
  [...]
}
[...]

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

kind: Pod
matadata:
  name: pod-name
spec:
  containers:
  - image: container-image
    name: container-name
    ports:
    - containerPort: 80
      protocol: TCP
    - containerPort: 443
      protocol: TCP
    [...]

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

我发现揭露更好。但对我没用。


共2个答案

匿名用户

kubernetes“更喜欢的方式是通过服务公开您的pod并通过部署控制它。

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

kubectl port-forward pod/pod-name 8080:80 8443:443 -n default

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

匿名用户

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

Kubectl前向LOCAL_PORT:REMOTE_PORT

类似的东西:kubectl端口转发8080:80

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