$ oc get -n openshift-network-operator deployment/network-operator
You can use the Cluster Network Operator (CNO) to deploy and manage cluster network components on an OKD cluster, including the Container Network Interface (CNI) network plugin selected for the cluster during installation.
The Cluster Network Operator implements the network
API from the operator.openshift.io
API group.
The Operator deploys the OVN-Kubernetes network plugin, or the network provider plugin that you selected during cluster installation, by using a daemon set.
The Cluster Network Operator is deployed during installation as a Kubernetes
Deployment
.
Run the following command to view the Deployment status:
$ oc get -n openshift-network-operator deployment/network-operator
NAME READY UP-TO-DATE AVAILABLE AGE
network-operator 1/1 1 1 56m
Run the following command to view the state of the Cluster Network Operator:
$ oc get clusteroperator/network
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE
network 4.16.1 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.
Every new OKD installation has a network.config
object named
cluster
.
Use the oc describe
command to view the cluster network configuration:
$ oc describe network.config/cluster
Name: cluster
Namespace:
Labels: <none>
Annotations: <none>
API Version: config.openshift.io/v1
Kind: Network
Metadata:
Creation Timestamp: 2024-08-08T11:25:56Z
Generation: 3
Resource Version: 29821
UID: 808dd2be-5077-4ff7-b6bb-21b7110126c7
Spec: (1)
Cluster Network:
Cidr: 10.128.0.0/14
Host Prefix: 23
External IP:
Policy:
Network Diagnostics:
Mode:
Source Placement:
Target Placement:
Network Type: OVNKubernetes
Service Network:
172.30.0.0/16
Status: (2)
Cluster Network:
Cidr: 10.128.0.0/14
Host Prefix: 23
Cluster Network MTU: 1360
Conditions:
Last Transition Time: 2024-08-08T11:51:50Z
Message:
Observed Generation: 0
Reason: AsExpected
Status: True
Type: NetworkDiagnosticsAvailable
Network Type: OVNKubernetes
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. |
You can inspect the status and view the details of the Cluster Network Operator
using the oc describe
command.
Run the following command to view the status of the Cluster Network Operator:
$ oc describe clusteroperators/network
From OKD 4.14 onward, global IP address forwarding is disabled on OVN-Kubernetes based cluster deployments to prevent undesirable effects for cluster administrators with nodes acting as routers. However, in some cases where an administrator expects traffic to be forwarded a new configuration parameter ipForwarding
is available to allow forwarding of all IP traffic.
To re-enable IP forwarding for all traffic on OVN-Kubernetes managed interfaces set the gatewayConfig.ipForwarding
specification in the Cluster Network Operator to Global
following this procedure:
Backup the existing network configuration by running the following command:
$ oc get network.operator cluster -o yaml > network-config-backup.yaml
Run the following command to modify the existing network configuration:
$ oc edit network.operator cluster
Add or update the following block under spec
as illustrated in the following example:
spec:
clusterNetwork:
- cidr: 10.128.0.0/14
hostPrefix: 23
serviceNetwork:
- 172.30.0.0/16
networkType: OVNKubernetes
clusterNetworkMTU: 8900
defaultNetwork:
ovnKubernetesConfig:
gatewayConfig:
ipForwarding: Global
Save and close the file.
After applying the changes, the OpenShift Cluster Network Operator (CNO) applies the update across the cluster. You can monitor the progress by using the following command:
$ oc get clusteroperators network
The status should eventually report as Available
, Progressing=False
, and Degraded=False
.
Alternatively, you can enable IP forwarding globally by running the following command:
$ oc patch network.operator cluster -p '{"spec":{"defaultNetwork":{"ovnKubernetesConfig":{"gatewayConfig":{"ipForwarding": "Global"}}}}}
The other valid option for this parameter is |
You can view Cluster Network Operator logs by using the oc logs
command.
Run the following command to view the logs of the Cluster Network Operator:
$ oc logs --namespace=openshift-network-operator deployment/network-operator
The configuration for the cluster network is specified as part of the Cluster Network Operator (CNO) configuration and stored in a custom resource (CR) object that is named cluster
. The CR specifies the fields for the Network
API in the operator.openshift.io
API group.
The CNO configuration inherits the following fields during cluster installation from the Network
API in the Network.config.openshift.io
API group:
clusterNetwork
IP address pools from which pod IP addresses are allocated.
serviceNetwork
IP address pool for services.
defaultNetwork.type
Cluster network plugin. OVNKubernetes
is the only supported plugin during installation.
After cluster installation, you can only modify the |
You can specify the cluster network plugin configuration for your cluster by setting the fields for the defaultNetwork
object in the CNO object named cluster
.
The fields for the Cluster Network Operator (CNO) are described in the following table:
Field | Type | Description |
---|---|---|
|
|
The name of the CNO object. This name is always |
|
|
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 in the cluster. For example:
|
|
|
A block of IP addresses for services. The OVN-Kubernetes network plugin supports only a single IP address block for the service network. For example:
This value is ready-only and inherited from the |
|
|
Configures the network plugin for the cluster network. |
|
|
The fields for this object specify the kube-proxy configuration. If you are using the OVN-Kubernetes cluster network plugin, the kube-proxy configuration has no effect. |
The values for the defaultNetwork
object are defined in the following table:
Field | Type | Description | ||
---|---|---|---|---|
|
|
|
||
|
|
This object is only valid for the OVN-Kubernetes network plugin. |
The following table describes the configuration fields for the OVN-Kubernetes network plugin:
Field | Type | Description | ||
---|---|---|---|---|
|
|
The maximum transmission unit (MTU) for the Geneve (Generic Network Virtualization Encapsulation) overlay network. This value is normally configured automatically. |
||
|
|
The UDP port for the Geneve overlay network. |
||
|
|
An object describing the IPsec mode for the cluster. |
||
|
|
Specifies a configuration object for IPv4 settings. |
||
|
|
Specifies a configuration object for IPv6 settings. |
||
|
|
Specify a configuration object for customizing network policy audit logging. If unset, the defaults audit log settings are used. |
||
|
|
Optional: Specify a configuration object for customizing how egress traffic is sent to the node gateway.
|
Field | Type | Description |
---|---|---|
|
string |
If your existing network infrastructure overlaps with the The default value is |
|
string |
If your existing network infrastructure overlaps with the The default value is |
Field | Type | Description |
---|---|---|
|
string |
If your existing network infrastructure overlaps with the The default value is |
|
string |
If your existing network infrastructure overlaps with the The default value is |
Field | Type | Description |
---|---|---|
|
integer |
The maximum number of messages to generate every second per node. The default value is |
|
integer |
The maximum size for the audit log in bytes. The default value is |
|
integer |
The maximum number of log files that are retained. |
|
string |
One of the following additional audit log targets:
|
|
string |
The syslog facility, such as |
Field | Type | Description |
---|---|---|
|
|
Set this field to This field has an interaction with the Open vSwitch hardware offloading feature.
If you set this field to |
|
|
You can control IP forwarding for all traffic on OVN-Kubernetes managed interfaces by using the |
|
|
Optional: Specify an object to configure the internal OVN-Kubernetes masquerade address for host to service traffic for IPv4 addresses. |
|
|
Optional: Specify an object to configure the internal OVN-Kubernetes masquerade address for host to service traffic for IPv6 addresses. |
Field | Type | Description | ||
---|---|---|---|---|
|
|
The masquerade IPv4 addresses that are used internally to enable host to service traffic. The host is configured with these IP addresses as well as the shared gateway bridge interface. The default value is
|
Field | Type | Description | ||
---|---|---|---|---|
|
|
The masquerade IPv6 addresses that are used internally to enable host to service traffic. The host is configured with these IP addresses as well as the shared gateway bridge interface. The default value is
|
Field | Type | Description |
---|---|---|
|
|
Specifies the behavior of the IPsec implementation. Must be one of the following values:
|
You can only change the configuration for your cluster network plugin during cluster installation, except for the |
defaultNetwork:
type: OVNKubernetes
ovnKubernetesConfig:
mtu: 1400
genevePort: 6081
ipsecConfig:
mode: Full
A complete CNO configuration is specified in the following example:
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
networkType: OVNKubernetes
clusterNetworkMTU: 8900