This section contains an exemplary L2 template that demonstrates how to set up bonds and bridges on hosts for your managed clusters as described in Create L2 templates.
If you want to use a dedicated network for Kubernetes pods traffic,
configure each node with an IPv4 and/or IPv6 address that will be used
to route the pods traffic between nodes.
To accomplish that, use the npTemplate.bridges.k8s-pods
bridge
in the L2 template, as demonstrated in the example below.
This bridge name is reserved for the
Kubernetes pods network. When the k8s-pods
bridge is defined in an L2
template, Calico CNI uses that network for routing the pods traffic between
nodes.
Starting from Container Cloud 2.5.0, you can use a dedicated network
for external connection to the Kubernetes services exposed by the cluster.
If enabled, MetalLB will listen and respond on the dedicated virtual bridge.
To accomplish that, configure each node where metallb-speaker
is deployed
with an IPv4 or IPv6 address. Both, the MetalLB IP address ranges and the IP
addresses configured on those nodes, must fit in the same CIDR.
Use the npTemplate.bridges.k8s-ext
bridge in the L2 template,
as demonstrated in the example below.
This bridge name is reserved for the Kubernetes external network.
The Subnet
object that corresponds to the k8s-ext
bridge must have
explicitly excluded IP address ranges that are in use by MetalLB.
Caution
Using of a dedicated network for Kubernetes pods traffic and using of a dedicated network for external connection to the Kubernetes services exposed by the cluster described above are available as Technology Preview. Use such configurations for testing and evaluation purposes only. For details about the Mirantis Technology Preview support scope, see the Preface section of this guide.
The following feature is still under development and will be announced in one of the following Container Cloud releases:
Switching Kubernetes API to listen to the specified IP address on the node
Example of an L2 template with interfaces bonding:
apiVersion: ipam.mirantis.com/v1alpha1
kind: L2Template
metadata:
name: test-managed
namespace: managed-ns
spec:
clusterRef: managed-cluster
autoIfMappingPrio:
- provision
- eno
- ens
- enp
npTemplate: |
version: 2
ethernets:
ten10gbe0s0:
dhcp4: false
dhcp6: false
match:
macaddress: {{mac 2}}
set-name: {{nic 2}}
ten10gbe0s1:
dhcp4: false
dhcp6: false
match:
macaddress: {{mac 3}}
set-name: {{nic 3}}
bonds:
bond0:
interfaces:
- ten10gbe0s0
- ten10gbe0s1
bridges:
k8s-ext:
interfaces: [bond0]
addresses:
- {{ip "k8s-ext:demo-ext"}}
k8s-pods:
interfaces: [bond0]
addresses:
- {{ip "k8s-pods:demo-pods"}}