Before creating an L2 template, ensure that you have the required subnets
that can be used in the L2 template to allocate IP addresses for the
managed cluster nodes.
Where required, create a number of subnets for a particular project
using the Subnet
CR. A subnet has three logical scopes:
global - CR uses the default
namespace.
A subnet can be used for any cluster located in any project.
namespaced - CR uses the namespace that corresponds to a particular project where managed clusters are located. A subnet can be used for any cluster located in the same project.
cluster - CR uses the namespace where the referenced cluster is located.
A subnet is only accessible to the cluster that
L2Template.spec.clusterRef
refers to. The Subnet
objects
with the cluster
scope will be created for every new cluster.
You can have subnets with the same name in different projects. In this case, the subnet that has the same project as the cluster will be used. One L2 template may often reference several subnets, those subnets may have different scopes in this case.
The IP address objects (IPaddr
CR) that are allocated from subnets
always have the same project as their corresponding IpamHost
objects,
regardless of the subnet scope.
To create subnets:
Log in to a local machine where your management cluster kubeconfig
is located and where kubectl
is installed.
Note
The management cluster kubeconfig
is created
during the last stage of the management cluster bootstrap.
Create the subnet.yaml
file with a number of global or namespaced
subnets:
kubectl --kubeconfig <pathToManagementClusterKubeconfig> apply -f <SubnetFileName.yaml>
Note
In the command above and in the steps below, substitute the parameters enclosed in angle brackets with the corresponding values.
Example of a subnet.yaml
file:
apiVersion: ipam.mirantis.com/v1alpha1
kind: Subnet
metadata:
name: demo
namespace: demo-namespace
spec:
cidr: 10.11.0.0/24
gateway: 10.11.0.9
includeRanges:
- 10.11.0.5-10.11.0.70
nameservers:
- 172.18.176.6
Parameter |
Description |
---|---|
|
A valid IPv4 CIDR, for example, 10.11.0.0/24. |
|
A list of IP address ranges within the given CIDR that should be used
in the allocation of IPs for nodes (excluding the gateway address).
The IPs outside the given ranges will not be used in the allocation.
Each element of the list can be either an interval 10.11.0.5-10.11.0.70
or a single address 10.11.0.77. In the example above, the addresses
|
|
A list of IP address ranges within the given CIDR that should not
be used in the allocation of IPs for nodes. The IPs within the given CIDR
but outside the given ranges will be used in the allocation
(excluding gateway address). Each element of the list can be either
an interval 10.11.0.5-10.11.0.70 or a single address 10.11.0.77.
The |
|
If set to |
|
A valid gateway address, for example, 10.11.0.9. |
|
A list of the IP addresses of name servers. Each element of the list is a single address, for example, 172.18.176.6. |
Caution
The subnet for the PXE network is automatically created
during deployment and must contain
the ipam/DefaultSubnet: "1"
label.
Each bare metal region must have only one subnet
with this label.
The following labels in metadata describe or change the subnet functioning:
Parameter |
Description |
---|---|
|
UID of the cluster that the subnet belongs to. In most cases, this label
is automatically set by the |
|
When set to 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:
|
Verify that the subnet is successfully created:
kubectl get subnet kaas-mgmt -oyaml
In the system output, verify the status
fields of the subnet.yaml
file using the table below.
Parameter |
Description |
---|---|
|
Contains a short state description and a more detailed one if applicable. The short status values are as follows:
|
|
Reflects the actual CIDR, has the same meaning as |
|
Reflects the actual gateway, has the same meaning as |
|
Reflects the actual name servers, has same meaning as |
|
Specifies the address ranges that are calculated using the fields from
|
|
Includes the date and time of the latest update of the |
|
Includes the number of currently available IP addresses that can be allocated for nodes from the subnet. |
|
Specifies the list of IPv4 addresses with the corresponding |
|
Contains the total number of IP addresses being held by ranges that equals to a sum
of the |
|
Contains thevVersion of the |
Example of a successfully created subnet:
apiVersion: ipam.mirantis.com/v1alpha1
kind: Subnet
metadata:
labels:
ipam/UID: 6039758f-23ee-40ba-8c0f-61c01b0ac863
kaas.mirantis.com/provider: baremetal
kaas.mirantis.com/region: region-one
name: kaas-mgmt
namespace: default
spec:
cidr: 10.0.0.0/24
excludeRanges:
- 10.0.0.100
- 10.0.0.101-10.0.0.120
gateway: 10.0.0.1
includeRanges:
- 10.0.0.50-10.0.0.90
nameservers:
- 172.18.176.6
status:
allocatable: 38
allocatedIPs:
- 10.0.0.50:0b50774f-ffed-11ea-84c7-0242c0a85b02
- 10.0.0.51:1422e651-ffed-11ea-84c7-0242c0a85b02
- 10.0.0.52:1d19912c-ffed-11ea-84c7-0242c0a85b02
capacity: 41
cidr: 10.0.0.0/24
gateway: 10.0.0.1
lastUpdate: "2020-09-26T11:40:44Z"
nameservers:
- 172.18.176.6
ranges:
- 10.0.0.50-10.0.0.90
statusMessage: OK
versionIpam: v3.0.999-20200807-130909-44151f8
Proceed to creating an L2 template for one or multiple managed clusters as described in Create L2 templates.