This is a cache of https://docs.openshift.com/container-platform/4.5/networking/cluster-network-operator.html. It is a snapshot of the page at 2024-11-04T23:57:48.539+0000.
Understanding the <strong>cluster</strong> Network Operator | Networking | OpenShift Container Platform 4.5
×

The cluster Network Operator (CNO) deploys and manages the cluster network components on an OpenShift Container Platform cluster, including the Container Network Interface (CNI) default network provider plug-in selected for the cluster during installation.

cluster Network Operator

The cluster Network Operator implements the network API from the operator.openshift.io API group. The Operator deploys the OpenShift SDN default Container Network Interface (CNI) network provider plug-in, or the default network provider plug-in that you selected during cluster installation, by using a daemon set.

Procedure

The cluster Network Operator is deployed during installation as a Kubernetes Deployment.

  1. Run the following command to view the Deployment status:

    $ oc get -n openshift-network-operator deployment/network-operator
    Example output
    NAME               READY   UP-TO-DATE   AVAILABLE   AGE
    network-operator   1/1     1            1           56m
  2. Run the following command to view the state of the cluster Network Operator:

    $ oc get clusteroperator/network
    Example output
    NAME      VERSION   AVAILABLE   PROGRESSING   DEGRADED   SINCE
    network   4.5.4     True        False         False      50m

    The following fields provide information about the status of the operator: AVAILABLE, PROGRESSING, and DEGRADED. The AVAILABLE field is True when the cluster Network Operator reports an available status condition.

Viewing the cluster network configuration

Every new OpenShift Container Platform installation has a network.config object named cluster.

Procedure
  • Use the oc describe command to view the cluster network configuration:

    $ oc describe network.config/cluster
    Example output
    Name:         cluster
    Namespace:
    Labels:       <none>
    Annotations:  <none>
    API Version:  config.openshift.io/v1
    Kind:         Network
    Metadata:
      Self Link:           /apis/config.openshift.io/v1/networks/cluster
    Spec: (1)
      cluster Network:
        Cidr:         10.128.0.0/14
        Host Prefix:  23
      Network Type:   OpenShiftSDN
      Service Network:
        172.30.0.0/16
    Status: (2)
      cluster Network:
        Cidr:               10.128.0.0/14
        Host Prefix:        23
      cluster Network MTU:  8951
      Network Type:         OpenShiftSDN
      Service Network:
        172.30.0.0/16
    Events:  <none>
    1 The Spec field displays the configured state of the cluster network.
    2 The Status field displays the current state of the cluster network configuration.

Viewing cluster Network Operator status

You can inspect the status and view the details of the cluster Network Operator using the oc describe command.

Procedure
  • Run the following command to view the status of the cluster Network Operator:

    $ oc describe clusteroperators/network

Viewing cluster Network Operator logs

You can view cluster Network Operator logs by using the oc logs command.

Procedure
  • Run the following command to view the logs of the cluster Network Operator:

    $ oc logs --namespace=openshift-network-operator deployment/network-operator

The Open Virtual Networking (OVN) Kubernetes network plug-in is a Technology Preview feature only. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.

For more information about the support scope of the OVN Technology Preview, see https://access.redhat.com/articles/4380121.

cluster Network Operator configuration

The configuration for the cluster network is specified as part of the cluster Network Operator (CNO) configuration and stored in a CR object that is named cluster. The CR specifies the parameters for the Network API in the operator.openshift.io API group.

You can specify the cluster network configuration for your OpenShift Container Platform cluster by setting the parameter values for the defaultNetwork parameter in the CNO CR. The following CR displays the default configuration for the CNO and explains both the parameters you can configure and the valid parameter values:

cluster Network Operator CR
apiVersion: operator.openshift.io/v1
kind: Network
metadata:
  name: cluster
spec:
  clusterNetwork: (1)
  - cidr: 10.128.0.0/14
    hostPrefix: 23
  serviceNetwork: (2)
  - 172.30.0.0/16
  defaultNetwork: (3)
    ...
  kubeProxyConfig: (4)
    iptablesSyncPeriod: 30s (5)
    proxyArguments:
      iptables-min-sync-period: (6)
      - 0s
1 A list specifying the blocks of IP addresses from which pod IP addresses are allocated and the subnet prefix length assigned to each individual node.
2 A block of IP addresses for services. The OpenShift SDN Container Network Interface (CNI) network provider supports only a single IP address block for the service network.
3 Configures the default CNI network provider for the cluster network.
4 The parameters for this object specify the Kubernetes network proxy (kube-proxy) configuration. If you are using the OVN-Kubernetes default CNI network provider, the kube-proxy configuration has no effect.
5 The refresh period for iptables rules. The default value is 30s. Valid suffixes include s, m, and h and are described in the Go time package documentation.
Because of performance improvements introduced in OpenShift Container Platform 4.3 and greater, adjusting the iptablesSyncPeriod parameter is no longer necessary.
6 The minimum duration before refreshing iptables rules. This parameter ensures that the refresh does not happen too frequently. Valid suffixes include s, m, and h and are described in the Go time package.

Configuration parameters for the OpenShift SDN default CNI network provider

The following YAML object describes the configuration parameters for the OpenShift SDN default Container Network Interface (CNI) network provider.

You can only change the configuration for your default CNI network provider during cluster installation.
defaultNetwork:
  type: OpenShiftSDN (1)
  openshiftSDNConfig: (2)
    mode: NetworkPolicy (3)
    mtu: 1450 (4)
    vxlanPort: 4789 (5)
1 The default CNI network provider plug-in that is used.
2 OpenShift SDN specific configuration parameters.
3 The network isolation mode for OpenShift SDN.
4 The maximum transmission unit (MTU) for the VXLAN overlay network. This value is normally configured automatically.
5 The port to use for all VXLAN packets. The default value is 4789.

Configuration parameters for the OVN-Kubernetes default CNI network provider

The following YAML object describes the configuration parameters for the OVN-Kubernetes default CNI network provider.

You can only change the configuration for your default CNI network provider during cluster installation.
defaultNetwork:
  type: OVNKubernetes (1)
  ovnKubernetesConfig: (2)
    mtu: 1400 (3)
    genevePort: 6081 (4)
1 The default CNI network provider plug-in that is used.
2 OVN-Kubernetes specific configuration parameters.
3 The MTU for the Geneve (Generic Network Virtualization Encapsulation) overlay network. This value is normally configured automatically.
4 The UDP port for the Geneve overlay network.

cluster Network Operator example configuration

A complete CR object for the CNO is displayed in the following example:

cluster Network Operator example CR
apiVersion: operator.openshift.io/v1
kind: Network
metadata:
  name: cluster
spec:
  clusterNetwork:
  - cidr: 10.128.0.0/14
    hostPrefix: 23
  serviceNetwork:
  - 172.30.0.0/16
  defaultNetwork:
    type: OpenShiftSDN
    openshiftSDNConfig:
      mode: NetworkPolicy
      mtu: 1450
      vxlanPort: 4789
  kubeProxyConfig:
    iptablesSyncPeriod: 30s
    proxyArguments:
      iptables-min-sync-period:
      - 0s