Openshift不将数据包转发到pod

时间:2017-04-08 21:54:16

标签: openshift kubernetes openshift-origin

我正在尝试设置一个接收来自外部主机的端口1234数据包的容器。我通过tcpdump确认数据包确​​实到达了openshift集群。现在,我已经运行pod AAAA,它应该获取端口1234的数据包(从openshift主机路由或转发)。我们已经为pod分配了一个IP,所以下面的文档已经完全遵循设置externalIP,ports等。我怀疑问题在于master-config但是我不能在这里粘贴它们。

我的问题是,为了将端口1234数据包路由到pod AAAA,必须在master-config中使用哪些配置。

已在Openshift docs下面尝试过:

2 个答案:

答案 0 :(得分:1)

首先 - 您只是指POD。我建议您将应用部署为Deployment。请参阅thisthis

此外,为了在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)。