RWN Nodes Design

Configurations

  • Create MachineConfigPool (MCP) for RWN
---
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfigPool
metadata:
  name: rwn
  labels:
    machineconfiguration.openshift.io/role: rwn
spec:
  machineConfigSelector:
    matchExpressions:
      - {key: machineconfiguration.openshift.io/role, operator: In, values: [worker,rwn]}
  nodeSelector:
    matchLabels:
      node-role.kubernetes.io/rwn: ""
  • Create MachineConfig (MC) to remove IPI leftovers for RWN nodes
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
  name: 50-worker-fix-ipi-rwn
  labels:
    machineconfiguration.openshift.io/role: rwn
spec:
  config:
    ignition:
      version: 3.1.0
    storage:
      files:
      - contents:
          source: data:,
          verification: {}
        filesystem: root
        mode: 420
        path: /etc/kubernetes/manifests/keepalived.yaml
      - contents:
          source: data:,
          verification: {}
        filesystem: root
        mode: 420
        path: /etc/kubernetes/manifests/mdns-publisher.yaml
      - contents:
          source: data:,
          verification: {}
        filesystem: root
        mode: 420
        path: /etc/kubernetes/manifests/coredns.yaml
    systemd:
      units:
      - contents: |
          [Unit]
          Description=Writes IP address configuration so that kubelet and crio services select a valid node IP
          Wants=network-online.target
          After=network-online.target ignition-firstboot-complete.service
          Before=kubelet.service crio.service
          [Service]
          Type=oneshot
          ExecStart=/bin/bash -c "exit 0 "
          [Install]
          WantedBy=multi-user.target
        enabled: true
        name: nodeip-configuration.service
  • Apply RWN role to node and remove worker role to avoid regular platform services running on it.
oc label node <node-name> node-role.kubernetes.io/rwn=""  node-role.kubernetes.io/worker-

Caveats

  • The MTU configuration of the CNI must be the lowest MTU among the nodes
  • Nodes must have direct reachability to control plane and all the other nodes