OpenShift Origin v3.7 端口转发

使用OpenShift Origin 的时候遇到http请求比较简单,使用router转发即可,但是router只能监听80/443端口,其他的端口必须通过创建NodePort类型的Service做端口转发。

  1. 创建一个json文件,内容仅供参考

起名为:mariadb.json:

{
    "apiVersion": "v1",
    "kind": "Service",
    "metadata": {
        "name": "mariadb-nodeport"
    },
    "spec": {
        "type": "NodePort",
        "ports": [
            {
                "port": 3306,
                "targetPort": 3306,
                "nodePort": 31006
            }
        ],
        "selector": {
            "name": "mariadb"
        }
    }
}

2、创建Service

oc create -f mariadb.json
  • ports 里面是数组,可以定义多个转发的端口

  • targetPort是pod的端口,我运行的是mariadb,所以是3306

  • port 是指创建的这个服务(mariadb-nodeport)的端口,oc/k8s会给这个服务分配一个ip,这个端口号是服务的

  • nodePort是外部的端口号,用master节点的ip地址+这个端口号就可以访问了,当然别忘了配置防火墙。

OpenShift貌似没有这方面的内容,《开源容器云OpenShift》应该是市面上唯一的一本OpenShift参考了,写的很简单,更多内容都得查询官网,我在这个问题上被官网坑了一把,官网说用oc port-forward命令转发端口,可命令执行的时候都会卡住,转发不了,害得我从网络到防火墙到pod终端开mariadb远程链接,忙活了3天…忽然想起来OpenShift是基于k8s,k8s的资料网上一查一大把。真是坑苦了我这种不会k8s的人了…

你可能感兴趣的:(openshift-v3)