我正在尝试设置一个接收来自外部主机的端口1234数据包的容器。我通过tcpdump确认数据包确实到达了openshift集群。现在,我已经运行pod AAAA,它应该获取端口1234的数据包(从openshift主机路由或转发)。我们已经为pod分配了一个IP,所以下面的文档已经完全遵循设置externalIP,ports等。我怀疑问题在于master-config但是我不能在这里粘贴它们。
我的问题是,为了将端口1234数据包路由到pod AAAA,必须在master-config中使用哪些配置。
已在Openshift docs下面尝试过:
答案 0 :(得分:1)
首先 - 您只是指POD。我建议您将应用部署为Deployment
。请参阅this和this。
此外,为了在Kubernetes中向外界展示Deployments
,您必须建立Service
。它可以通过几种不同的方式展示您的应用。请仔细阅读this。
如果您使用任何标准应用,您通常可以通过Google搜索应用的名称和' kubernetes'来找到示例部署/服务。
答案 1 :(得分:0)
在您的主配置(etc / origin / master / master-config.yaml)中,只需添加
servicesNodePortRange:" 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: []
之后,重新启动atomic-openshift-master服务。
然后,使用负载均衡器类型为部署创建第二个服务。假设您的部署配置名称为" 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
最后,公开新服务" myapp-ext"通过添加路线(1234< - 1234)。