Openshift的网络之一:概览和基本配置

一、前言

Openshift可以看作是对于kubernetes和docker解决方案的更高级别封装,提供了PAAS解决方案级别的基础设施,包括:

  • 镜像构建和registry存储
  • 服务部署和暴露(Router)
  • 基于OVS SDN的overlay CNI实现
  • 更细粒度的权限控制(RABC)

Openshift的网络之一:概览和基本配置_第1张图片

在我们的lagecy应用向容器云解决方案迁移的过程中,在使用kubernetes方案作为过度之后,最终使用了Openshift Origin作为容器云平台。

载自https://blog.csdn.net/cloudvtech

二、Openshift SDN基本概念


Openshift SDN CNI的三种模式:
  • ovs-subnet:这种模式提供一个flat的POD网络,所有POD直接都可以相互通信。
  • ovs-multitenant:这种模式通过Virtual Network ID在Openshift project层面提供网络隔离,不同project之间的POD不能相互通信。
  • ovs-networkpolicy:这种模式由管理员自定义网络控制策略进行网络隔离。

Openshift SDN CNI的节点:

  • master节点:监控节点加入事件,为新加入的node分配网络,在etcd进行注册;如果是ovs-multitenant模式,还需要监控Openshift project的建立和删除来分配和删除VxLAN VNID。
  • worker节点:向master节点注册并从etcd获取分配到的网络,并建立网桥br0、OVS端口tun0和OVS VXLAN设备vxlan0三个设备;POD将veth对的一端绑定到br0,tun0提供POD访问外网的能力,vxlan0通过over layer方式提供不同node之间POD的互联互通。节点还要监控新的节点和项目的增删事件,进行相应SDN的改变(加减subnet、加减VNID等)

Openshift的网络之一:概览和基本配置_第2张图片


载自https://blog.csdn.net/cloudvtech

三、Openshift网络在node上的配置和运行

2.1 CentOS systemd service

systemctl | grep origin-node
origin-node.service   

/etc/systemd/system/multi-user.target.wants/origin-node.service 
EnvironmentFile=/etc/sysconfig/origin-node

/etc/sysconfig/origin-node
CONFIG_FILE=/etc/origin/node/node-config.yaml

/etc/origin/node/node-config.yaml

networkConfig:
  mtu: 1450
  networkPluginName: redhat/openshift-ovs-multitenant

2.2 Openshift CNI相关文件

[root@ic-node8 ~]# find / -name openshift-sdn

/run/openshift-sdn
/var/lib/cni/networks/openshift-sdn
/opt/cni/bin/openshift-sdn
[root@ic-node8 ~]# find / -name openshift-sdn-ovs
/usr/bin/openshift-sdn-ovs

2.3 相关日志


2.4 建立的设备和OVS端口

Openshift的网络之一:概览和基本配置_第3张图片

ovs-vsctl show
24cd14ca-c514-4e29-b34c-abfe07153dfd
    Bridge "br0"
        fail_mode: secure
        Port "veth19fec9f8"
            Interface "veth19fec9f8"
        Port "veth2077d807"
            Interface "veth2077d807"
        Port "br0"
            Interface "br0"
                type: internal
        Port "vethb7628dde"
            Interface "vethb7628dde"
        Port "vethad35e0c4"
            Interface "vethad35e0c4"
        Port "veth8f7c9229"
            Interface "veth8f7c9229"
        Port "tun0"
            Interface "tun0"
                type: internal
        Port "vxlan0"
            Interface "vxlan0"
                type: vxlan
                options: {key=flow, remote_ip=flow}
        Port "veth1d066b09"
            Interface "veth1d066b09"
                error: "could not open network device veth1d066b09 (No such device)"
    ovs_version: “2.6.1" 



载自https://blog.csdn.net/cloudvtech






你可能感兴趣的:(容器网络,kubernetes,Openshift,OVS,SDN)