Openshift不将数据包转发到pod
我正在尝试设置一个pod,它接收来自外部主机的端口1234的数据包。我通过tcpdump确认数据包确实到达了openshift集群。现在,我已经运行了pod AAAA,它应该可以从openshift主节点路由或转发端口1234的数据包。我们已经为pod分配了一个IP,因此下面的文档已经被完全遵循以设置外部IP、端口等。我怀疑问题在于主配置,但我无法将它们粘贴到这里 我的问题是,为了将端口1234数据包路由到pod AAAA,需要在主配置中设置哪些配置 已在以下Openshift文档中尝试: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文档中尝试: 首先
首先,你指的只是一个豆荚。我建议您将应用程序部署为部署,而不是部署。请参阅及 此外,为了在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端口。这真的是节点、主节点或两者上缺少的配置吗。