Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Openshift不将数据包转发到pod_Openshift_Kubernetes_Openshift Origin - Fatal编程技术网

Openshift不将数据包转发到pod

Openshift不将数据包转发到pod,openshift,kubernetes,openshift-origin,Openshift,Kubernetes,Openshift Origin,我正在尝试设置一个pod,它接收来自外部主机的端口1234的数据包。我通过tcpdump确认数据包确实到达了openshift集群。现在,我已经运行了pod AAAA,它应该可以从openshift主节点路由或转发端口1234的数据包。我们已经为pod分配了一个IP,因此下面的文档已经被完全遵循以设置外部IP、端口等。我怀疑问题在于主配置,但我无法将它们粘贴到这里 我的问题是,为了将端口1234数据包路由到pod AAAA,需要在主配置中设置哪些配置 已在以下Openshift文档中尝试: 首先

我正在尝试设置一个pod,它接收来自外部主机的端口1234的数据包。我通过tcpdump确认数据包确实到达了openshift集群。现在,我已经运行了pod AAAA,它应该可以从openshift主节点路由或转发端口1234的数据包。我们已经为pod分配了一个IP,因此下面的文档已经被完全遵循以设置外部IP、端口等。我怀疑问题在于主配置,但我无法将它们粘贴到这里

我的问题是,为了将端口1234数据包路由到pod AAAA,需要在主配置中设置哪些配置

已在以下Openshift文档中尝试:


首先,你指的只是一个豆荚。我建议您将应用程序部署为部署,而不是部署。请参阅及

此外,为了在Kubernetes中将部署公开给外部世界,您必须建立一个服务。它可以以几种不同的方式公开你的应用程序。详情请通读


如果您使用任何标准应用程序,您通常可以通过谷歌搜索应用程序名称和“kubernetes”来找到示例部署/服务。

在主配置etc/origin/master/master-config.yaml中,只需添加

服务范围:1234-1234

kubernetesMasterConfig:
  apiServerArguments:
  controllerArguments:
  masterCount: 1
  masterIP: x.x.x.x
  podEvictionTimeout:
  proxyClientInfo:
    certFile: master.proxy-client.crt
    keyFile: master.proxy-client.key
  schedulerArguments:
  schedulerConfigFile: /etc/origin/master/scheduler.json
  servicesNodePortRange: "1234-1234"
  servicesSubnet: 172.30.0.0/16
  staticNodeNames: []
之后,重新启动原子openshift主服务

然后,使用负载平衡器类型为部署创建第二个服务。假设您的部署配置名称为myapp,请创建如下所示的新文件

--new-svc.yml--

apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  labels:
    app: myapp
    template: myapp-template
  name: myapp-ext
spec:
  ports:
  - name: myapp
    nodePort: 1234
    port: 1234
    protocol: TCP
    targetPort: 1234
  selector:
    name: myapp
  sessionAffinity: None
  type: LoadBalancer
之后,创建一个新服务

#oc create -f new-svc.yml

最后,通过添加route 1234来公开新服务myapp ext,OpenShift有自己的基于DeploymentConfig资源的部署概念。Kubernetes中的部署实际上源于OpenShift在Kubernetes之前所做的工作。在OpenShift中,部署应用程序的正常方式也会自动创建服务对象。因此,请注意建议我们看看原始Kubernetes的做事方式,他们做事的方式不太可能总是适用原始Kubernetes的方法。到目前为止,我仍在检查这个问题。我只是想通过这个评论提供更多细节。所以在tcpdump中,我确认在Openshift master中,我们有到达端口1234的UDP数据包。只是我不知道如何让主机把这个包转发到Openshift pod上的1234端口。这真的是节点、主节点或两者上缺少的配置吗。