Skip to content

Commit

Permalink
docs: modify calico instructions for multi-nic case (#4050)
Browse files Browse the repository at this point in the history
* docs: modify calico instructions for multi-nic case

* docs: modify sample code

* docs: identation

---------

Co-authored-by: Lenny Chen <[email protected]>
(cherry picked from commit 59d4359)
  • Loading branch information
lennessyy committed Sep 24, 2024
1 parent 285b415 commit 46b4b8f
Showing 1 changed file with 126 additions and 118 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,8 @@ Use the following steps to create a new host cluster so that you can add Edge ho
a CIDR range that cannot routed through a proxy. In addition, ensure that this VIP does not overlap with any IP
address already used by other hosts in your network, including your Edge hosts.

You can also select any SSH keys in case you need to remote into the host cluster. You can also provide a list of
Network Time Protocol (NTP) servers. Click on **Next**.
You can also select any SSH keys in case you need to remote into the host cluster. You can also provide a list of
Network Time Protocol (NTP) servers. Click on **Next**.

9. The node configuration page is where you can specify what Edge hosts make up the host cluster. Assign Edge hosts to
the **control-plane-pool** and the **worker-pool**. When you have completed configuring the node pools, click on
Expand All @@ -80,102 +80,107 @@ Network Time Protocol (NTP) servers. Click on **Next**.
10. (Optional) When you assign Edge hosts to node pools, you can optionally specify a static IP address for each Edge
host. If you want to specify a static IP, toggle on **Static IP** and provide the following information:

| **Field** | **Description** |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| IP address | The static IP address assigned to your Edge host. This should be unique within your network. |
| Default gateway | The IP address of the default gateway for your cluster network. This gateway routes traffic from your cluster to external networks. |
| Subnet mask | The subnet mask of your cluster network. This defines the range of IP addresses within your cluster network. |
| DNS server | The IP address of the DNS server your cluster uses for domain resolution. |
| **Field** | **Description** |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| IP address | The static IP address assigned to your Edge host. This should be unique within your network. |
| Default gateway | The IP address of the default gateway for your cluster network. This gateway routes traffic from your cluster to external networks. |
| Subnet mask | The subnet mask of your cluster network. This defines the range of IP addresses within your cluster network. |
| DNS server | The IP address of the DNS server your cluster uses for domain resolution. |

If certain network information is already available, the corresponding fields will be pre-populated.
If certain network information is already available, the corresponding fields will be pre-populated.

11. (Optional) When you assign an Edge host to a node pool, if your Edge host has more than one NIC, you can optionally
specify which Network Interface Controller (NIC) the Edge host will use to communicate with the cluster. When you
select an Edge host, Palette displays a dropdown of all NICs present on the Edge host.

If the NIC is configured on the Edge host network, an IP address is displayed next to the name of the NIC. If the NIC is
not configured on the Edge host network, you can specify its IP address, default gateway, subnet mask, as well as DNS
server to configure it.
If the NIC is configured on the Edge host network, an IP address is displayed next to the name of the NIC. If the
NIC is not configured on the Edge host network, you can specify its IP address, default gateway, subnet mask, as
well as DNS server to configure it.

If you choose to change the default NIC used by your nodes in the control plane node pool, you need to make sure all the
NICs in the control plane node pool share the same name. You also must make corresponding changes in the Kubernetes
layer and the Container Network Interface (CNI) layer.
If you choose to change the default NIC used by your nodes in the control plane node pool, you need to make sure all
the NICs in the control plane node pool share the same name. You also must make corresponding changes in the
Kubernetes layer and the Container Network Interface (CNI) layer.

In the Kubernetes layer, enter a new parameter `cluster.kubevipArgs.vip_interface` and set its value to the name of the
NIC used by your control plane nodes. For example, if the NIC used by the nodes in your control plane pool is named
`ens32`, add the following two lines.
In the Kubernetes layer, enter a new parameter `cluster.kubevipArgs.vip_interface` and set its value to the name of
the NIC used by your control plane nodes. For example, if the NIC used by the nodes in your control plane pool is
named `ens32`, add the following two lines.

```yaml {3}
cluster:
 kubevipArgs:
   vip_interface: "ens32"
```
```yaml {3}
cluster:
 kubevipArgs:
   vip_interface: "ens32"
```
In the CNI layer, depending on which CNI pack you choose for your cluster profile, you need to make changes in the
following locations.
In the CNI layer, depending on which CNI pack you choose for your cluster profile, you need to make changes in the
following locations.
<Tabs>
<TabItem value="calico" label="Calico">
In the Calico pack YAML file default template, uncomment `manifests.calico.env.calicoNode.IP_AUTODETECTION_METHOD`
and set its value to `kubernetes-internal-ip`. This tells Calico to use the address assigned to the Kubernetes node.

```yaml {11}
manifests:
calico:
...
env:
# Additional env variables for calico-node
calicoNode:
#IPV6: "autodetect"
#FELIX_IPV6SUPPORT: "true"
#CALICO_IPV6POOL_NAT_OUTGOING: "true"
#CALICO_IPV4POOL_CIDR: "192.168.0.0/16"
IP_AUTODETECTION_METHOD: "kubernetes-internal-ip"
```

<Tabs>
<TabItem value="calico" label="Calico">
In the Calico pack YAML file default template, uncomment `manifests.calico.env.calicoNode.IP_AUTODETECTION_METHOD` and set its value to `interface=INTERFACE_NAME`. Replace `INTERFACE_NAME` with the name of the NIC in your control plane node pool. For example, set `IP_AUTODETECTION_METHOD` to `"interface=eno32"` if the NIC name of the nodes in your control plane pool is `eno32`.

```yaml {11}
manifests:
calico:
...
env:
# Additional env variables for calico-node
calicoNode:
#IPV6: "autodetect"
#FELIX_IPV6SUPPORT: "true"
#CALICO_IPV6POOL_NAT_OUTGOING: "true"
#CALICO_IPV4POOL_CIDR: "192.168.0.0/16"
IP_AUTODETECTION_METHOD: "interface=eno32"
```
</TabItem>

<TabItem value="flannel" label="Flannel">

In the Flannel pack YAML file, add a line `- "--iface=INTERFACE_NAME"` in the default template under
`charts.flannel.args`. Replace `INTERFACE_NAME` with the name of the NIC. For example, add the line `- "--iface=eno32`
if the NIC name of your control plane nodes is `eno32`.

```yaml {8}
charts:
flannel:
...
# flannel command arguments
args:
- "--ip-masq"
- "--kube-subnet-mgr"
- "--iface=eno32"
```
In the Flannel pack YAML file, add a line `- "--iface=INTERFACE_NAME"` in the default template under
`charts.flannel.args`. Replace `INTERFACE_NAME` with the name of the NIC. For example, add the line `- "--iface=eno32`
if the NIC name of your control plane nodes is `eno32`.

```yaml {8}
charts:
flannel:
...
# flannel command arguments
args:
- "--ip-masq"
- "--kube-subnet-mgr"
- "--iface=eno32"
```

</TabItem>

<TabItem value="cilium" label="Cilium">
You do not need to make any adjustments to the Cilium pack.
You do not need to make any adjustments to the Cilium pack.
</TabItem>

<TabItem value="other" label="Other">
If you are using other CNIs, refer to the documentation of your selected CNI and configure it to make sure that it picks the right NIC on your Edge hosts.
If you are using other CNIs, refer to the documentation of your selected CNI and configure it to make sure that it picks the right NIC on your Edge hosts.
</TabItem>

</Tabs>

:::warning
:::warning

After you create the cluster, you will not be able to change the IP address or NIC of your existing Edge hosts unless
you remove and re-add them back to the cluster.
After you create the cluster, you will not be able to change the IP address or NIC of your existing Edge hosts unless
you remove and re-add them back to the cluster.

:::
:::

12. The Settings page is where you can configure a patching schedule, security scans, backup settings, and set up
Role-Based Access Control (RBAC). Review the settings and make changes if needed. Click on **Validate**.

13. Review the settings summary and click on **Finish Configuration** to deploy the cluster.

After you create the cluster, the Palette Edge Host agent will start the installation process. You can track the
installation progress in Palette. The cluster overview page displays a summary of the progress. Use the _Events_ tab to
review detailed logs.
After you create the cluster, the Palette Edge Host agent will start the installation process. You can track the
installation progress in Palette. The cluster overview page displays a summary of the progress. Use the _Events_ tab
to review detailed logs.

### Validate

Expand Down Expand Up @@ -236,74 +241,77 @@ number of nodes. To learn more, check out the resource from the etcd documentati
8. (Optional) When you select your Edge host, you can optionally specify a static IP address for the Edge host. If you
want to specify a static IP, toggle on **Static IP** and provide the following information:

| **Field** | **Description** |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| IP Address | The static IP address assigned to your Edge host. This should be unique within your network. |
| Default gateway | The IP address of the default gateway for your cluster network. This gateway routes traffic from your cluster to external networks. |
| Subnet mask | The subnet mask of your cluster network. This defines the range of IP addresses within your cluster network. |
| DNS server | The IP address of the DNS server your cluster uses for domain resolution. |
| **Field** | **Description** |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| IP Address | The static IP address assigned to your Edge host. This should be unique within your network. |
| Default gateway | The IP address of the default gateway for your cluster network. This gateway routes traffic from your cluster to external networks. |
| Subnet mask | The subnet mask of your cluster network. This defines the range of IP addresses within your cluster network. |
| DNS server | The IP address of the DNS server your cluster uses for domain resolution. |

If certain network information is already available, the corresponding fields will be pre-populated.
If certain network information is already available, the corresponding fields will be pre-populated.

9. (Optional) When you assign an Edge host to a node pool, if your Edge host has more than one NIC, you can optionally
specify which Network Interface Controller (NIC) the Edge host will use to communicate with the cluster. When you
select an Edge host, Palette displays a dropdown of all NICs present on the Edge host.

If the NIC is configured on the Edge host network, an IP address is displayed next to the name of the NIC. If the NIC is
not configured on the Edge host network, you can specify its IP address, default gateway, subnet mask, as well as DNS
server to configure it.
If the NIC is configured on the Edge host network, an IP address is displayed next to the name of the NIC. If the NIC
is not configured on the Edge host network, you can specify its IP address, default gateway, subnet mask, as well as
DNS server to configure it.

If you choose to change the default NIC used by your nodes, you need to make sure all the NICs in the control plane node
pool share the same name. You also must make corresponding changes in the Kubernetes layer and the CNI layer.
If you choose to change the default NIC used by your nodes, you need to make sure all the NICs in the control plane
node pool share the same name. You also must make corresponding changes in the Kubernetes layer and the CNI layer.

In the Kubernetes layer, enter a new parameter `cluster.kubevipArgs.vip_interface` and set its value to the name of the
NIC used by your control plane nodes. For example, if the NIC used by the nodes in your control plane pool is named
`ens32`, add the following two lines.
In the Kubernetes layer, enter a new parameter `cluster.kubevipArgs.vip_interface` and set its value to the name of
the NIC used by your control plane nodes. For example, if the NIC used by the nodes in your control plane pool is
named `ens32`, add the following two lines.

```yaml {2-3}
cluster:
 kubevipArgs:
   vip_interface: "ens32"
```
```yaml {2-3}
cluster:
 kubevipArgs:
   vip_interface: "ens32"
```

In the CNI layer, depending on which CNI pack you choose for your cluster profile, you need to make changes in the
following locations.
In the CNI layer, depending on which CNI pack you choose for your cluster profile, you need to make changes in the
following locations.

<Tabs>
<TabItem value="calico" label="Calico">

In the Calico pack YAML file default template, uncomment `manifests.calico.env.calicoNode.IP_AUTODETECTION_METHOD` and set its value to `interface=INTERFACE_NAME`. Replace `INTERFACE_NAME` with the name of the NIC in your control plane node pool. For example, set `IP_AUTODETECTION_METHOD` to `"interface=eno32"` if the NIC name of the nodes in your control plane pool is `eno32`.
In the Calico pack YAML file default template, uncomment `manifests.calico.env.calicoNode.IP_AUTODETECTION_METHOD`
and set its value to `kubernetes-internal-ip`. This tells Calico to use the address assigned to the Kubernetes
node.

```yaml {11}
manifests:
calico:
...
env:
# Additional env variables for calico-node
calicoNode:
#IPV6: "autodetect"
#FELIX_IPV6SUPPORT: "true"
#CALICO_IPV6POOL_NAT_OUTGOING: "true"
#CALICO_IPV4POOL_CIDR: "192.168.0.0/16"
IP_AUTODETECTION_METHOD: "interface=eno32"
```
```yaml {11}
manifests:
calico:
...
env:
# Additional env variables for calico-node
calicoNode:
#IPV6: "autodetect"
#FELIX_IPV6SUPPORT: "true"
#CALICO_IPV6POOL_NAT_OUTGOING: "true"
#CALICO_IPV4POOL_CIDR: "192.168.0.0/16"
IP_AUTODETECTION_METHOD: "kubernetes-internal-ip"
```

</TabItem>
<TabItem value="flannel" label="Flannel">

In the Flannel pack YAML file, add a line `- "--iface=INTERFACE_NAME"` in the default template under
`charts.flannel.args`. Replace `INTERFACE_NAME` with the name of the NIC. For example, add the line `- "--iface=eno32`
if the NIC name of your control plane nodes is `eno32`.

```yaml {8}
charts:
flannel:
...
# flannel command arguments
args:
- "--ip-masq"
- "--kube-subnet-mgr"
- "--iface=eno32"
```
In the Flannel pack YAML file, add a line `- "--iface=INTERFACE_NAME"` in the default template under
`charts.flannel.args`. Replace `INTERFACE_NAME` with the name of the NIC. For example, add the line `- "--iface=eno32`
if the NIC name of your control plane nodes is `eno32`.

```yaml {8}
charts:
flannel:
...
# flannel command arguments
args:
- "--ip-masq"
- "--kube-subnet-mgr"
- "--iface=eno32"
```

</TabItem>

Expand All @@ -325,8 +333,8 @@ them back to the cluster.

10. Confirm your changes.

The Palette Edge Host agent will start the installation process. You can track the installation progress in Palette. The
cluster overview page displays a summary of the progress. Use the **Events** tab to review detailed logs.
The Palette Edge Host agent will start the installation process. You can track the installation progress in Palette.
The cluster overview page displays a summary of the progress. Use the **Events** tab to review detailed logs.

### Validate

Expand Down

0 comments on commit 46b4b8f

Please sign in to comment.