Présentation : mise en réseau double pile IPv4 et IPv6
RÉSUMÉ Contrail® Networking™ natif du cloud prend en charge la mise en réseau double pile pour votre cluster Kubernetes. Lorsque vous ajoutez un cluster Kubernetes, la double pile est activée par défaut. Le déployeur Cloud-Native Contrail Networking crée ensuite des réseaux de pods et des réseaux de services double pile (IPv4, IPv6).
Présentation des protocoles IPv4 et IPv6
L’évolutivité et la complexité sans cesse croissantes des réseaux des petites, moyennes et entreprises signifient que la demande d’adresses IP est plus importante que jamais. En raison de la demande croissante d’adresses IP, le nombre d’adresses IPv4 que les fournisseurs de services allouent est rare. En outre, les fournisseurs de services doivent desservir simultanément les clients IPv4 actuels et les nouveaux clients IPv6. Comme IPv4 comprend la majorité de l’infrastructure réseau actuelle, la plupart de ces réseaux IPv6 tentent de communiquer avec les destinations IPv4.
La pénurie d’adresses IPv4 n’est pas nouvelle, et les solutions modernes comme la mise en réseau virtuelle double pile facilitent la transition efficace entre IPv4 et IPv6. Un équipement double pile dispose d’interfaces réseau qui envoient et reçoivent des paquets IPv4 et IPv6. Dans le cas du réseau virtuel, la fonctionnalité double pile de votre cluster Kubernetes assigne des adresses IPv4 et IPv6 aux pods.
Pré-requis pour la mise en réseau double pile
La mise en réseau double pile nécessite les éléments suivants :
-
Kubernetes version 1.20 ou ultérieure
-
Prise en charge de la mise en réseau double pile par les fournisseurs
Votre fournisseur doit être capable de fournir aux nœuds Kubernetes des interfaces réseau IPv4 et IPv6 routables.
-
Un plug-in réseau prenant en charge une double pile (fourni avec Cloud-Native Contrail Networking)
Activer la mise en réseau double pile
Les distributions Kubernetes suivantes prennent en charge la mise en réseau double pile :
- Kubeadm
- Kubespray
Vous devez configurer un cluster Kubeadm ou Kubespray Kubernetes avec double pile featureGate .
Prenons le fichier YAML suivant. Notez que l’indicateur double pile featureGate est IPv6DualStack: true et que le sous-réseau CIDR (Classless Inter-Domain Routing) IPv6 est présent sous forme podSubnet et serviceSubnet.
apiVersion: kubeadm.k8s.io/v1beta2
bootstrapTokens:
- groups:
- system:bootstrappers:kubeadm:default-node-token
token: abcdef.0123456789abcdef
ttl: 24h0m0s
usages:
- signing
- authentication
kind: InitConfiguration
localAPIEndpoint:
advertiseAddress: 0.0.0.0
bindPort: 6443
nodeRegistration:
name: hostname
criSocket: unix:///var/run/crio/crio.sock
kubeletExtraArgs:
fail-swap-on: "false"
network-plugin: "cni"
cni-conf-dir: "/etc/cni/net.d"
cni-bin-dir: "/opt/cni/bin"
---
apiServer:
timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes-contrail-dev
controllerManager: {}
dns:
type: CoreDNS
etcd:
local:
dataDir: /var/lib/etcd
imageRepository: k8s.gcr.io
kind: ClusterConfiguration
kubernetesVersion: v1.20.0
networking:
dnsDomain: cluster.local
serviceSubnet: 10.96.0.0/12,2222:0:0:0::/108
podSubnet: 192.168.0.0/16,2001:0:0:0::/64
scheduler: {}
featureGates:
IPv6DualStack: true
---
apiVersion: kubelet.config.k8s.io/v1beta1
authentication:
anonymous:
enabled: false
webhook:
cacheTTL: 0s
enabled: true
x509:
clientCAFile: /etc/kubernetes/pki/ca.crt
authorization:
mode: Webhook
webhook:
cacheAuthorizedTTL: 0s
cacheUnauthorizedTTL: 0s
cgroupDriver: systemd
clusterDNS:
- 10.96.0.10
clusterDomain: cluster.local
cpuManagerReconcilePeriod: 0s
evictionPressureTransitionPeriod: 0s
fileCheckFrequency: 0s
healthzBindAddress: 127.0.0.1
healthzPort: 10248
httpCheckFrequency: 0s
imageMinimumGCAge: 0s
kind: KubeletConfiguration
logging: {}
nodeStatusReportFrequency: 0s
nodeStatusUpdateFrequency: 0s
rotateCertificates: true
runtimeRequestTimeout: 0s
shutdownGracePeriod: 0s
shutdownGracePeriodCriticalPods: 0s
staticPodPath: /etc/kubernetes/manifests
streamingConnectionIdleTimeout: 0s
syncFrequency: 0s
volumeStatsAggPeriod: 0s
podNetwork. Les réseaux de pods suivants que vous créez contiennent un sous-réseau IPv6. Par conséquent, les pods reçoivent des adresses IPv4 et IPv6.
Contrail Networking natif du cloud ne prend actuellement pas en charge IPv6 pour les services. Le réseau de services est IPv4 uniquement.