-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add blog post for StarlingX dual-stack (IPv4/IIPv6) support #281
base: master
Are you sure you want to change the base?
Conversation
* Add blog post for StarlingX dual-stack (IPv4/IIPv6) support ---------- Signed-off-by: Andre Kantek <[email protected]>
DEL=$(system network-addrpool-list | awk '$6 == "cluster-service-ipv4" { print $2 }') && system network-addrpool-remove $DEL | ||
DEL=$(system network-addrpool-list | awk '$6 == "cluster-host-ipv4" { print $2 }') && system network-addrpool-remove $DEL | ||
``` | ||
It also envolves a quick restart of kube-API-server and kube-controller-manager and the existing user pods need to be restarted. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
involves
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall really good Andre. I was looking for example usage and you've provided that, from bootstrap to runtime configuration
* Add blog post for StarlingX dual-stack (IPv4/IIPv6) support ---------- Signed-off-by: Andre Kantek <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi Andre,
Thank you for submitting your article for the StarlingX blog, I think this is a great start!
The article current doesn't really read as a blog post. I love that it has a focus on how to configure dual-stack support in StarlingX, and I think that should be the main theme and content of the piece. I added some suggestions in line on how to reshape that text to fit that, including a suggested new title.
Please let me know what you think and if you have any questions.
Thanks and Best Regards,
Ildikó
|
||
The Kubernetes network can also receive dual-stack properties, allowing the pods to use IPv4 and/or IPv6 on its operations. It becomes available when the OAM, cluster-host, cluster-pod, and cluster-service networks are configured as dual-stack. | ||
|
||
# Key Features and Considerations |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This section looks and reads like a recap of the feature's documentation, which doesn't fit very well into a blog post. It would be better to remove this and add a pointer to the feature documentation in the 'Conclusion' section on the bottom of the article.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
id: category-A7fnZYrE1 | ||
--- | ||
|
||
StarlingX, a cloud platform designed for edge computing, now supports dual-stack functionality on its platform networks (OAM, management, cluster-host, cluster-pod, cluster-service, admin, storage, and multicast), enabling it to operate with both IPv4 and IPv6 L3 protocols. This enhanced capability offers greater flexibility and scalability for network deployments. Each platform network can be associated to two pools (one IPv4 and another IPv6). The order it is done defines the primary and secondary pool for that network. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would be great to keep these first two paragraphs as a higher level introduction, which focuses on an overview of what the feature is and what it gives to users, why they should care about it. Here you can also add a note that this is a new feature in 10.0, and the rest of the article will focus on how to configure it in Kubernetes.
I would move the second half of this section over into the section that describes how to configure dual-stack in StarlingX 10.0:
"Each platform network can be associated to two pools (one IPv4 and another IPv6). The order it is done defines the primary and secondary pool for that network.
The Kubernetes network can also receive dual-stack properties, allowing the pods to use IPv4 and/or IPv6 on its operations. It becomes available when the OAM, cluster-host, cluster-pod, and cluster-service networks are configured as dual-stack."
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
@@ -0,0 +1,267 @@ | |||
--- | |||
templateKey: blog-post | |||
title: Dual-Stack (IPv4/IPv6) Support in Starlingx |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
title: Dual-Stack (IPv4/IPv6) Support in Starlingx | |
title: A Tutorial to Configure Dual-Stack (IPv4/IPv6) Support in StarlingX 10.0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
|
||
# Conclusion | ||
|
||
StarlingX's dual-stack support provides enhanced flexibility and scalability for network deployments. By understanding the key features, configuration steps, and considerations outlined in this guide, you can effectively leverage dual-stack capabilities in your StarlingX environment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
StarlingX's dual-stack support provides enhanced flexibility and scalability for network deployments. By understanding the key features, configuration steps, and considerations outlined in this guide, you can effectively leverage dual-stack capabilities in your StarlingX environment | |
StarlingX's dual-stack support provides enhanced flexibility and scalability for network deployments. By understanding the key features, configuration steps, and considerations outlined in this guide, you can effectively leverage dual-stack capabilities in your StarlingX environment. | |
# About StarlingX | |
For the complete list of updates and new features in StarlingX 10.0, check out the [release notes](https://docs.starlingx.io/releasenotes) and the [project documentation](https://docs.starlingx.io). | |
If you would like to learn more about the project and get involved check the [website](https://www.starlingx.io) for more information or [download the code](https://opendev.org/starlingx) and start to experiment with the platform. If you are already evaluating or using the software please fill out the [user survey](https://openinfrafoundation.formstack.com/forms/starlingx_user_survey) and help the community improve the project based on your feedback. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
Signed-off-by: Andre Kantek <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @akantek-wr,
Thank you for sharing a new version of the article.
I think some of my previous comments were somewhat unclear, so I added a few suggested edits to the article to enhance its readability.
I also added a suggested publish date to the header. Depending on when the 10.0 release comes out, the publish date of the article might change.
Please let me know if you have any questions to the comments or the timeline to publish your article.
Thanks and Best Regards,
Ildikó
templateKey: blog-post | ||
title: A Tutorial to Configure Dual-Stack (IPv4/IPv6) Support in StarlingX 10.0 | ||
author: Andre Kantek | ||
date: 2024-08-12T01:32:05.627Z |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
date: 2024-08-12T01:32:05.627Z | |
date: 2025-01-14T01:32:05.627Z |
|
||
StarlingX's dual-stack support provides enhanced flexibility and scalability for network deployments. By understanding the key features, configuration steps, and considerations outlined in this guide, you can effectively leverage dual-stack capabilities in your StarlingX environment. | ||
|
||
For more information: https://docs.starlingx.io/system_configuration/kubernetes/dual-stack-support-318550fd91b5.html |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For more information: https://docs.starlingx.io/system_configuration/kubernetes/dual-stack-support-318550fd91b5.html | |
For more information please check out the [dual-stack feature section](https://docs.starlingx.io/system_configuration/kubernetes/dual-stack-support-318550fd91b5.html) in the StarlingX project documentation. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi Andre,
Thank you for the fixes.
The blog post looks great now overall. I found a few typos and added those and some additional suggestions in line to improve readability.
Thanks,
Ildikó
id: category-A7fnZYrE1 | ||
--- | ||
|
||
StarlingX, a cloud platform designed for edge computing, now supports dual-stack functionality on its platform networks (OAM, management, cluster-host, cluster-pod, cluster-service, admin, storage, and multicast), enabling it to operate with both IPv4 and IPv6 L3 protocols. This enhanced capability offers greater flexibility and scalability for network deployments by allowing the user's kubernetes applications to operate simulteaneoulsy on both address families if needed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
StarlingX, a cloud platform designed for edge computing, now supports dual-stack functionality on its platform networks (OAM, management, cluster-host, cluster-pod, cluster-service, admin, storage, and multicast), enabling it to operate with both IPv4 and IPv6 L3 protocols. This enhanced capability offers greater flexibility and scalability for network deployments by allowing the user's kubernetes applications to operate simulteaneoulsy on both address families if needed. | |
StarlingX, an open source distributed cloud platform, now supports dual-stack functionality on its platform networks (OAM, management, cluster-host, cluster-pod, cluster-service, admin, storage, and multicast), enabling it to operate with both IPv4 and IPv6 L3 protocols. This enhanced capability offers greater flexibility and scalability for network deployments by allowing the user's Kubernetes applications to operate simultaneously on both address families if needed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
|
||
## Distributed Cloud Operations | ||
|
||
The Distributed Cloud architecture is what differentiates StarloingX from most other cloud platforms, and therefore it has been crucial that it supports the dual-stack configuration option as well. Subclouds can be installed in dual-stack mode if their version is new enough to supports it. When this setuip is used, all operational communication between the system controller and subclouds uses the primary address pool. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Distributed Cloud architecture is what differentiates StarloingX from most other cloud platforms, and therefore it has been crucial that it supports the dual-stack configuration option as well. Subclouds can be installed in dual-stack mode if their version is new enough to supports it. When this setuip is used, all operational communication between the system controller and subclouds uses the primary address pool. | |
The Distributed Cloud architecture is what differentiates StarlingX from most other cloud platforms, and therefore it has been crucial that it supports the dual-stack configuration option as well. Subclouds can be installed in dual-stack mode if their version is new enough to supports it. When this setup is used, all operational communication between the system controller and subclouds uses the primary address pool. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
|
||
The Distributed Cloud architecture is what differentiates StarloingX from most other cloud platforms, and therefore it has been crucial that it supports the dual-stack configuration option as well. Subclouds can be installed in dual-stack mode if their version is new enough to supports it. When this setuip is used, all operational communication between the system controller and subclouds uses the primary address pool. | ||
|
||
It is also important to note, that the System Controller and subclouds can operate in different network modes, however, they must share the same primary address family in the OAM and management networks (for subclouds this can be OAM and admin networks). The Geo redundancy feature also uses the primary pools to communicate. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is also important to note, that the System Controller and subclouds can operate in different network modes, however, they must share the same primary address family in the OAM and management networks (for subclouds this can be OAM and admin networks). The Geo redundancy feature also uses the primary pools to communicate. | |
It is also important to note, that the System Controller and subclouds can operate in different network modes, however, they must share the same primary address family in the OAM and management networks (for subclouds this can be OAM and admin networks). The geo-redundancy feature also uses the primary pools to communicate. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
|
||
## Kubernetes Configuration | ||
|
||
When dual-stack mode is used with Kubernetes, the OAM, cluster-host, cluster-service, and cluster-pod networks must be configured for dual-stack support. And be mindful that runtime changes trigger quick restarts for the kube-API-server and kube-controller-manager pods. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When dual-stack mode is used with Kubernetes, the OAM, cluster-host, cluster-service, and cluster-pod networks must be configured for dual-stack support. And be mindful that runtime changes trigger quick restarts for the kube-API-server and kube-controller-manager pods. | |
When dual-stack mode is used with Kubernetes, the OAM, cluster-host, cluster-service, and cluster-pod networks must be configured for dual-stack support. And be mindful that runtime changes trigger quick restarts for the kube-apiserver and kube-controller-manager pods. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
|
||
## Runtime Configuration | ||
|
||
You can also update a running system to use dual-stack, follow the steps outlined in the guide, which include adding address pools and associating them with networks. In the scenario of reverting to single-stack configuration, you will need to remove the network association with the address pool. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can also update a running system to use dual-stack, follow the steps outlined in the guide, which include adding address pools and associating them with networks. In the scenario of reverting to single-stack configuration, you will need to remove the network association with the address pool. | |
You can also update a running system to use dual-stack, follow the steps outlined in the [documentation](https://docs.starlingx.io/system_configuration/kubernetes/dual-stack-support-318550fd91b5.html), which include adding address pools and associating them with networks. In the scenario of reverting to single-stack configuration, you will need to remove the network association with the address pool. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
``` | ||
For AIO-SX systems the step above isn't necessary, as OAM reconfiguration is done at runtime. | ||
|
||
The next step is to add the cluster pools and associate them with its networks: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The next step is to add the cluster pools and associate them with its networks: | |
The next step is to add the cluster pools and associate them with their networks: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
system network-addrpool-assign cluster-pod cluster-pod-ipv4 | ||
system network-addrpool-assign cluster-host cluster-host-ipv4 | ||
``` | ||
It will trigger a runtime Kubernetes and Calico configuration to make dual-stack available. This involves a quick restart of the kube-API-server and kube-controller-manager pods on both controllers. Pods that need to use the new cluster-pod network and already exist prior to this configuration will require a restart to gain the new addresses. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It will trigger a runtime Kubernetes and Calico configuration to make dual-stack available. This involves a quick restart of the kube-API-server and kube-controller-manager pods on both controllers. Pods that need to use the new cluster-pod network and already exist prior to this configuration will require a restart to gain the new addresses. | |
This operation will trigger a runtime Kubernetes and Calico configuration update to make dual-stack available. This involves a quick restart of the kube-apiserver and kube-controller-manager pods on both controllers. Pods that need to use the new cluster-pod network and already exist prior to this configuration change, will require a restart to gain the new addresses. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
DEL=$(system network-addrpool-list | awk '$6 == "cluster-service-ipv4" { print $2 }') && system network-addrpool-remove $DEL | ||
DEL=$(system network-addrpool-list | awk '$6 == "cluster-host-ipv4" { print $2 }') && system network-addrpool-remove $DEL | ||
``` | ||
It also involves a quick restart of kube-API-server and kube-controller-manager and the existing user pods need to be restarted. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It also involves a quick restart of kube-API-server and kube-controller-manager and the existing user pods need to be restarted. | |
It also involves a quick restart of kube-apiserver and kube-controller-manager and the existing user pods need to be restarted. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
|
||
## Kubernetes deployment example | ||
|
||
A small sample to create a deployment to use the dual-stack configuration, there are no special parameters |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A small sample to create a deployment to use the dual-stack configuration, there are no special parameters | |
Below you can see a small sample to create a deployment to use the dual-stack configuration, there are no special parameters: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
lo UNKNOWN 127.0.0.1/8 ::1/128 | ||
eth0@if18 UP 172.16.192.65/32 fd03::8e22:765f:6121:eb61/128 fe80::c024:64ff:fe41:fd3a/64 | ||
``` | ||
The service requires the dual-stack information: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The service requires the dual-stack information: | |
The service requires the dual-stack information, like the example here: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi Andre,
Thank you for the fixes. I spotted a few more typos and also added a planned publish date now that we have 10.0 available.
Best Regards,
Ildikó
templateKey: blog-post | ||
title: A Tutorial to Configure Dual-Stack (IPv4/IPv6) Support in StarlingX 10.0 | ||
author: Andre Kantek | ||
date: 2025-01-14T01:32:05.627Z |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
date: 2025-01-14T01:32:05.627Z | |
date: 2025-05-06T01:32:05.627Z |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
|
||
## Address Pool Management | ||
|
||
As the feature’s name suggests, two address pools are required for dual-stack operation, with the first one linked to the network at creation. This also means that the primary pool cannot be removed later, while removing the second pool can transform the system into a single-stack mode. As the dual-stack support is still new in the platform, there are some additional limitations to this oncfiguration options, for example, the pxeboot network currently only supports IPv4. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As the feature’s name suggests, two address pools are required for dual-stack operation, with the first one linked to the network at creation. This also means that the primary pool cannot be removed later, while removing the second pool can transform the system into a single-stack mode. As the dual-stack support is still new in the platform, there are some additional limitations to this oncfiguration options, for example, the pxeboot network currently only supports IPv4. | |
As the feature’s name suggests, two address pools are required for dual-stack operation, with the first one linked to the network at creation. This also means that the primary pool cannot be removed later, while removing the second pool can transform the system into a single-stack mode. As the dual-stack support is still new in the platform, there are some additional limitations to this configuration option, for example, the pxeboot network currently only supports IPv4. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
|
||
## Distributed Cloud Operations | ||
|
||
The Distributed Cloud architecture is what differentiates StarlingX from most other cloud platforms, and therefore it has been crucial that it supports the dual-stack configuration option as well. Subclouds can be installed in dual-stack mode if their version is new enough to supports it. When this setup is used, all operational communication between the system controller and subclouds uses the primary address pool. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Distributed Cloud architecture is what differentiates StarlingX from most other cloud platforms, and therefore it has been crucial that it supports the dual-stack configuration option as well. Subclouds can be installed in dual-stack mode if their version is new enough to supports it. When this setup is used, all operational communication between the system controller and subclouds uses the primary address pool. | |
The Distributed Cloud architecture is what differentiates StarlingX from most other cloud platforms, and therefore it has been crucial that it supports the dual-stack configuration option as well. Subclouds can be installed in dual-stack mode if their version is new enough to support it. When this setup is used, all operational communication between the system controller and subclouds uses the primary address pool. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
|
||
Each platform network can be associated to two pools (one IPv4 and another IPv6). The order it is done defines the primary and secondary pool for that network. | ||
|
||
The Kubernetes network can also receive dual-stack properties, allowing the pods to use IPv4 and/or IPv6 on its operations. It becomes available when the OAM, cluster-host, cluster-pod, and cluster-service networks are configured as dual-stack. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This one doesn't seem to be fixed.
|
||
This example is considering an AIO-DX installed as IPv6 single-stack. | ||
|
||
The list of created networks show the primary pool ID: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The list of created networks show the primary pool ID: | |
The list of created networks shows the primary pool ID: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
| 6 | f6349...b | cluster-pod | cluster-pod | False | c311c1d6-8...a | IPv6 | | ||
+----+------...--+-----------------+-----------------+---------+-----------...--+---------------------+ | ||
``` | ||
The relationship between address pool and network is also show with `network-addrpool-list`: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The relationship between address pool and network is also show with `network-addrpool-list`: | |
The relationship between address pool and network is also shown with `network-addrpool-list`: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
| 765cc...7 | pxeboot | 169.254.202.0 | 24 | random | ['169.254.202.1-169.254.202.254'] | 16... | | ||
+------...--+-----------------------------+---------------+--------+--------+---------------------------------------+---...-+ | ||
``` | ||
The first step is to add the secondary OAM address pool and associate to the network |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The first step is to add the secondary OAM address pool and associate to the network | |
The first step is to add the secondary OAM address pool and associate it to the network |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
@ildikov |
I was suggesting to change 'its operations' to 'their operations' in an earlier iteration. You indicated that the change was done, but the latest preview still shows the original version of the text, so it doesn't seem like the suggestion was applied. The full original sentence is: "The Kubernetes network can also receive dual-stack properties, allowing the pods to use IPv4 and/or IPv6 on its operations." Does this clarify? |
This blog post reflects the activities done for the story https://storyboard.openstack.org/#!/story/2011027
Andre Kantek