Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Déployer des nœuds Windows sur EKS des clusters
Avant le déploiement Windows nœuds, tenez compte des considérations suivantes.
-
Vous pouvez utiliser le réseau hôte sur les nœuds Windows à l'aide des pods
HostProcess
. Pour plus d'informations, voir Création d'une fenêtre HostProcessPoddans le Kubernetes . -
EKSLes clusters Amazon doivent contenir un ou plusieurs Linux ou des nœuds Fargate pour exécuter le système principal Pods qui ne fonctionnent que sur Linux, comme CoreDNS.
-
Les journaux d'
kube-proxy
événementskubelet
et les journaux d'EKS Windows
événements sont redirigés vers le journal des événements et leur limite est fixée à 200 Mo. -
Vous ne pouvez pas utiliser l'option Attribuer des groupes de sécurité à des modules individuels avec Pods en cours d'exécution Windows nœuds.
-
Vous ne pouvez pas utiliser le réseau personnalisé avec Windows nœuds.
-
Vous ne pouvez pas utiliser
IPv6
avec Windows nœuds. -
Windows les nœuds prennent en charge une interface Elastic Network par nœud. Par défaut, le nombre de Pods que vous pouvez exécuter par Windows node est égal au nombre d'adresses IP disponibles par elastic network interface pour le type d'instance du nœud, moins une. Pour plus d'informations, consultez la section Adresses IP par interface réseau et par type d'instance dans le guide de EC2 l'utilisateur Amazon.
-
Dans un EKS cluster Amazon, un seul service doté d'un équilibreur de charge peut prendre en charge jusqu'à 1 024 back-end Pods. Chaque Pod possède sa propre adresse IP unique. La limite précédente de 64 Pods n'est plus le cas, après une mise à jour de Windows Server
commençant par le build du système d'exploitation 17763.2746 . -
Les conteneurs Windows ne sont pas pris en charge pour Amazon EKS Pods sur Fargate.
-
Vous ne pouvez pas récupérer les journaux depuis le
vpc-resource-controller
Pod. Vous le pouviez auparavant lorsque vous déployiez le contrôleur sur le plan de données. -
Il y a un temps de stabilisation avant qu'une adresse
IPv4
ne soit affectée à un nouveau pod. Cela empêche le trafic de s'écouler vers un pod plus ancien avec la même adresseIPv4
en raison de règleskube-proxy
périmées. -
La source du contrôleur est gérée sur GitHub. Pour contribuer ou signaler des problèmes contre le contrôleur, visitez le projet
sur GitHub. -
Lorsque vous spécifiez un AMI identifiant personnalisé pour Windows groupes de nœuds gérés, ajoutez-les
eks:kube-proxy-windows
à votre carte de configuration de l' AWS IAMauthentificateur. Pour de plus amples informations, veuillez consulter Limites et conditions lors de la spécification d'un AMI identifiant. -
S'il est essentiel de préserver IPv4 les adresses disponibles pour votre sous-réseau, reportez-vous au Guide des EKS meilleures pratiques - Gestion des adresses IP réseau Windows
pour obtenir des conseils. -
Un cluster existant. Le cluster doit exécuter l'un des Kubernetes versions et versions de plate-forme répertoriées dans le tableau suivant. N’importe quel compte Kubernetes et les versions de plate-forme ultérieures à celles répertoriées sont également prises en charge.
Version de Kubernetes Version de la plateforme 1,31
eks.4
1,30
eks.2
1,29
eks.1
1,28
eks.1
1,27
eks.1
1,26
eks.1
1,25
eks.1
1,24
eks.2
-
Votre cluster doit en avoir au moins un (nous en recommandons au moins deux) Linux nœud ou Fargate Pod courir CoreDNS. Si vous activez l'ancienne version Windows support, vous devez utiliser un Linux nœud (vous ne pouvez pas utiliser un Fargate) Pod) pour courir CoreDNS.
-
Un IAMrôle de EKS cluster Amazon existant.
Enable Windows Prise en charge de par la
-
Si vous n'avez pas de nœuds Amazon Linux dans votre cluster et que vous utilisez des groupes de sécurité pour Pods, passez à l'étape suivante. Sinon, confirmez que la politique gérée
AmazonEKSVPCResourceController
est attachée à votre rôle de cluster. RemplacezeksClusterRole
avec le nom de votre rôle de cluster.aws iam list-attached-role-policies --role-name eksClusterRole
L'exemple qui suit illustre un résultat.
{ "AttachedPolicies": [ { "PolicyName": "AmazonEKSClusterPolicy", "PolicyArn": "arn:aws: iam::aws:policy/AmazonEKSClusterPolicy" }, { "PolicyName": "AmazonEKSVPCResourceController", "PolicyArn": "arn:aws: iam::aws:policy/AmazonEKSVPCResourceController" } ] }
Si la politique est attachée, comme c'est le cas dans la sortie précédente, passez à l'étape suivante.
-
Associez la politique gérée A mazonEKSVPCResource Controller à votre IAMrôle de EKS cluster Amazon. Remplacez
eksClusterRole
avec le nom de votre rôle de cluster.aws iam attach-role-policy \ --role-name eksClusterRole \ --policy-arn arn:aws: iam::aws:policy/AmazonEKSVPCResourceController
-
Créez un fichier nommé
vpc-resource-controller-configmap.yaml
avec le contenu suivant.apiVersion: v1 kind: ConfigMap metadata: name: amazon-vpc-cni namespace: kube-system data: enable-windows-ipam: "true"
-
Appliquer le
ConfigMap
à votre cluster.kubectl apply -f vpc-resource-controller-configmap.yaml
-
Vérifiez que vous
aws-auth
ConfigMap
avez un mappage pour le rôle d'instance du Windows nœud pour inclure le groupeeks:kube-proxy-windows
RBAC d'autorisations. Vous pouvez vérifier en exécutant la commande suivante.kubectl get configmap aws-auth -n kube-system -o yaml
L'exemple qui suit illustre un résultat.
apiVersion: v1 kind: ConfigMap metadata: name: aws-auth namespace: kube-system data: mapRoles: | - groups: - system:bootstrappers - system:nodes - eks:kube-proxy-windows # This group is required for Windows DNS resolution to work rolearn: arn:aws: iam::111122223333:role/eksNodeRole username: system:node:{{EC2PrivateDNSName}} [...]
Vous devriez voir
eks:kube-proxy-windows
répertorié sous les groupes. Si le groupe n'est pas spécifié, vous devez le mettre à jourConfigMap
ou le créer pour inclure le groupe requis. Pour en savoir plus surConfigMap
aws-auth
, consultez Appliquer la ConfigMap aws-auth à votre cluster.
Déployer des modules Windows
Lorsque vous déployez des pods sur votre cluster, vous devez spécifier le système d'exploitation qu'ils utilisent si vous exécutez plusieurs types de nœuds.
Dans Linux Pods, utilisez le texte de sélection de nœuds suivant dans vos manifestes.
nodeSelector: kubernetes.io/os: linux kubernetes.io/arch: amd64
Dans Windows Pods, utilisez le texte de sélection de nœuds suivant dans vos manifestes.
nodeSelector: kubernetes.io/os: windows kubernetes.io/arch: amd64
Vous pouvez déployer un exemple d'application pour voir les sélecteurs de nœuds utilisés.
Support supérieur Pod densité sur les nœuds Windows
Sur AmazonEKS, chaque Pod se voit attribuer une IPv4
adresse provenant de votreVPC. De ce fait, le nombre de Pods que vous pouvez déployer sur un nœud est limité par les adresses IP disponibles, même si les ressources sont suffisantes pour en exécuter davantage Pods sur le nœud. Étant donné qu'une seule interface réseau élastique est prise en charge par un nœud Windows, par défaut, le nombre maximal d'adresses IP disponibles sur un nœud Windows est égal à :
Number of private IPv4 addresses for each interface on the node - 1
Une adresse IP est utilisée comme adresse IP principale de l'interface réseau, elle ne peut donc pas être attribuée à Pods.
Vous pouvez activer une valeur supérieure Pod densité sur les nœuds Windows en activant la délégation de préfixes IP. Cette fonctionnalité vous permet d'attribuer un préfixe /28
IPv4
à l'interface réseau principale, au lieu d'attribuer des adresses secondaires IPv4
. L'attribution d'un préfixe IP augmente le nombre maximum d'adresses IPv4
disponibles sur le nœud à :
(Number of private IPv4 addresses assigned to the interface attached to the node - 1) * 16
Avec ce nombre nettement plus élevé d'adresses IP disponibles, les adresses IP disponibles ne devraient pas limiter votre capacité à augmenter le nombre de Pods sur vos nœuds. Pour de plus amples informations, veuillez consulter Attribuez davantage d'adresses IP aux EKS nœuds Amazon avec des préfixes.