2 votes

Conteneur Windows sur EC2 incapable de se connecter à http://169.254.169.254/latest/meta-data

Impossible de comprendre pourquoi mon conteneur docker fonctionnant sur Windows Server 2016 ne parvient pas à atteindre le point de terminaison des métadonnées d'instance AWS pour son hôte. Sous Linux, je ne rencontre pas ces problèmes pour tirer les métadonnées de l'hôte du conteneur, mais je suis un Noob Windows qui ne sait pas pourquoi cela ne fonctionne pas. J'ai cherché des réponses, mais je n'ai pas trouvé de réponse.

Le conteneur est capable d'envoyer un ping à l'internet (8.8.8.8.8)

PS C:\> invoke-webrequest -uri "http://169.254.169.254/latest/meta-data/iam/security-credentials/"
invoke-webrequest : Unable to connect to the remote server
At line:1 char:1
+ invoke-webrequest -uri "http://169.254.169.254/latest/meta-data/iam/s ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

3voto

gillg02 Points 31

Même si un routeur ne devrait pas router une adresse de lien local, Windows peut le faire si vous lui donnez les bonnes routes statiques. Il s'agit juste de quelques règles de réseau... pas de violations de RFC.

Solution de : https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html

# Fetch the default gateway IP of container (bridge to host)
$gateway = (Get-NetRoute | Where { $_.DestinationPrefix -eq '0.0.0.0/0' } | Sort-Object RouteMetric | Select NextHop).NextHop
# Fetch the container internal IP interface index
$ifIndex = (Get-NetAdapter -InterfaceDescription "Hyper-V Virtual Ethernet*" | Sort-Object | Select ifIndex).ifIndex
# Create a new route similar to "169.254.169.254  255.255.255.255      172.30.42.1     172.30.42.82   5256"
New-NetRoute -DestinationPrefix 169.254.169.254/32 -InterfaceIndex $ifIndex -NextHop $gateway

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X