vCluster - Create fully functional virtual Kubernetes clusters - Each vcluster runs inside a namespace of the underlying k8s cluster. It's cheaper than creating separate full-blown clusters and it offers better multi-tenancy and isolation than regular namespaces.
I have an IpV6 host cluster. However, when the vcluster control plane is restarted then it randomly chooses either IPv4 or IPv6 as its underlying cluster family. This causes various issues.
To show what is happening: I retrieved the command lines from the control plane pod after restarts.
Where service-cluster-ip-range=fd22:663c:50ba::/108 which makes the cluster be in the IPv6 mode.
What did you expect to happen?
I would have expected that the vcluster would always have the IPv6 family (since host cluster is IPv6) or at least not change the family after a restart.
How can we reproduce it (as minimally and precisely as possible)?
I guess someone would have to create an IPv6 cluster and restart the vcluster control plane a few times to reproduce the issue.
Anything else we need to know?
Workaround:
To the top level of the vcluster.yaml one can set an undocumented value:
serviceCIDR: "fd22:663c:50ba::/108" to force the vcluster to be of IpV6 family
serviceCIDR: "10.96.0.0/12" to force the vcluster to be of IpV4 family
```
controlPlane:
backingStore:
etcd:
deploy:
enabled: true
statefulSet:
persistence:
volumeClaim:
storageClass: "vcluster-volume-sc"
distro:
eks:
enabled: true
proxy:
extraSANs:
- test3.some-url.net
ingress:
enabled: true
host: test3.some-url.net
spec:
tls:
- hosts:
- test3.some-url.net
ingressClassName: nginx
annotations:
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
exportKubeConfig:
server: https://test3.some-url.net
sync:
toHost:
serviceAccounts:
enabled: true
storageClasses:
enabled: true
# Networking options related to the virtual cluster.
networking:
advanced:
# FallbackHostCluster allows to fallback dns to the host cluster. This is useful if you want to reach host services without
# any other modification. You will need to provide a namespace for the service, e.g. my-other-service.my-other-namespace
fallbackHostCluster: true
```
What happened?
I have an IpV6 host cluster. However, when the vcluster control plane is restarted then it randomly chooses either IPv4 or IPv6 as its underlying cluster family. This causes various issues.
To show what is happening: I retrieved the command lines from the control plane pod after restarts.
Here we can see that the
service-cluster-ip-range=10.96.0.0/12
which makes the cluster be an IPv4 cluster.After restarting the pod now it gets
Where
service-cluster-ip-range=fd22:663c:50ba::/108
which makes the cluster be in the IPv6 mode.What did you expect to happen?
I would have expected that the vcluster would always have the IPv6 family (since host cluster is IPv6) or at least not change the family after a restart.
How can we reproduce it (as minimally and precisely as possible)?
I guess someone would have to create an IPv6 cluster and restart the vcluster control plane a few times to reproduce the issue.
Anything else we need to know?
Workaround:
To the top level of the vcluster.yaml one can set an undocumented value:
serviceCIDR: "fd22:663c:50ba::/108"
to force the vcluster to be of IpV6 familyserviceCIDR: "10.96.0.0/12"
to force the vcluster to be of IpV4 familyHost cluster Kubernetes version
vcluster version
VCluster Config