kubermatic
kubermatic copied to clipboard
Test dual-stack on GCP - Test Release 2.21
Test dual-stack user clusters on the GCP cloud provider platform.
- refer to https://kubernetes.io/docs/concepts/services-networking/dual-stack/ for dual-stack feature description
- refer to https://kubernetes.io/docs/tasks/network/validate-dual-stack/ for validation options
The testing should be performed for both Canal and Cilium CNI and with both Konnectivity enabled and disabled. The tests should be performed on all available operating systems.
Testing Procedure
- Deploy a dual-stack user cluster on the GCP cloud provider (either select "IPv4 and IPv6 (Dual Stack)" in KKP UI when creating a new cluster, or set cluster's
spec.clusterNetwork.ipFamily
toIPv4+IPv6
when using the KKP API) - Make sure all pods are up
- Make sure logs of pods can be retrieved via
kubecl logs
- Make sure pod metrics can be retrieved via
kubectl top pods
- Validate that all non-host-network-namespace pods have both IPv4 and IPv6 IP addresses (
kubectl describe pod
), and pod-to-pod communication works for both IP families - Create a dual-stack
ClusterIP
service targeting e.g. an nginx wbeserver pod and validate it has both IPv4 and IPv6ClusterIP
addresses allocated. Pods within cluster should be able to reach the backend via both IPv4 and IPv6 ClusterIP. - Create a dual-stack
NodePort
service targeting e.g. an nginx wbeserver pod, and validate that the backend can be reached from outside of the cluster via<node-ip>:<nodeport>
for both IPv4 and IPv6 node IP. - Test that pods can reach the Internet via both IPv4 and IPv6 - you can use/inspect this manifest for that
Limitations
- Due to the limitations of the cloud-provider, the following dual-stack features do not work ATM:
- worker nodes do not have IPv6 IP addresses in k8s API (
kubectl describe nodes
), but have them physically (can be seen after SSHing to the node). Therefore pods in the host network namespace do not have IPv6 address either. - dual-stack services of type LoadBalancer are not yet supported, so this cannot be validated.
- worker nodes do not have IPv6 IP addresses in k8s API (
- Some operating systems may not be well supported, in that case please document them in this issue. Ubuntu should always work.
- CentOS + Cilium is a not supported combination in general ATM
Acceptance Criteria
The testing procedure is successful for all test cases at least for one operating system. Unsupported operating systems should be listed in this issue to generate the support matrix docs later.