Chapter 13. Configuring the SDN
13.1. Overview
The OpenShift Enterprise SDN enables communication between pods across the OpenShift Enterprise cluster, establishing a pod network. Two SDN plug-ins are currently available (ovs-subnet and ovs-multitenant), which provide different methods for configuring the pod network.
13.2. Configuring the Pod Network with Ansible
For initial advanced installations, the ovs-subnet plug-in is installed and configured by default, though it can be overridden during installation using the os_sdn_network_plugin_name
parameter, which is configurable in the Ansible inventory file.
Example 13.1. Example SDN Configuration with Ansible
# Configure the multi-tenant SDN plugin (default is 'redhat/openshift-ovs-subnet') # os_sdn_network_plugin_name='redhat/openshift-ovs-multitenant' # Disable the OpenShift SDN plugin # openshift_use_openshift_sdn=False # Configure SDN cluster network CIDR block. This network block should # be a private block and should not conflict with existing network # blocks in your infrastructure that pods may require access to. # Can not be changed after deployment. #osm_cluster_network_cidr=10.1.0.0/16 # default subdomain to use for exposed routes #openshift_master_default_subdomain=apps.test.example.com # Configure SDN cluster network and kubernetes service CIDR blocks. These # network blocks should be private and should not conflict with network blocks # in your infrastructure that pods may require access to. Can not be changed # after deployment. #osm_cluster_network_cidr=10.1.0.0/16 #openshift_portal_net=172.30.0.0/16 # Configure number of bits to allocate to each host’s subnet e.g. 8 # would mean a /24 network on the host. #osm_host_subnet_length=8 # This variable specifies the service proxy implementation to use: # either iptables for the pure-iptables version (the default), # or userspace for the userspace proxy. #openshift_node_proxy_mode=iptables
For initial quick installations, the ovs-subnet plug-in is installed and configured by default as well, and can be reconfigured post-installation using the networkConfig
stanza of the master-config.yaml file.
13.3. Configuring the Pod Network on Masters
Cluster administrators can control pod network settings on masters by modifying parameters in the networkConfig
section of the master configuration file (located at /etc/origin/master/master-config.yaml by default):
networkConfig: clusterNetworkCIDR: 10.128.0.0/14 1 hostSubnetLength: 9 2 networkPluginName: "redhat/openshift-ovs-subnet" 3 serviceNetworkCIDR: 172.30.0.0/16 4
The serviceNetworkCIDR
and hostSubnetLength
values cannot be changed after the cluster is first created, and clusterNetworkCIDR
can only be changed to be a larger network that still contains the original network. For example, given the default value of 10.128.0.0/14, you could change clusterNetworkCIDR
to 10.128.0.0/9 (i.e., the entire upper half of net 10) but not to 10.64.0.0/16, because that does not overlap the original value.
13.4. Configuring the Pod Network on Nodes
Cluster administrators can control pod network settings on nodes by modifying parameters in the networkConfig
section of the node configuration file (located at /etc/origin/node/node-config.yaml by default):
13.5. Migrating Between SDN Plug-ins
If you are already using one SDN plug-in and want to switch to another:
When switching from the ovs-subnet to the ovs-multitenant plug-in, all the existing projects in the cluster will be fully isolated (assigned unique VNIDs). Cluster administrators can choose to modify the project networks using the administrator CLI.
13.6. External Access to the Cluster Network
If a host that is external to OpenShift Enterprise requires access to the cluster network, you have two options:
- Configure the host as an OpenShift Enterprise node but mark it unschedulable so that the master does not schedule containers on it.
- Create a tunnel between your host and a host that is on the cluster network.
Both options are presented as part of a practical use-case in the documentation for configuring routing from an edge load-balancer to containers within OpenShift Enterprise SDN.