Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I det här avsnittet visar vi hur du ansluter containerslutpunkter till ett befintligt virtuellt klientnätverk som skapats via SDN. Du använder nätverksdrivrutinen l2bridge (och eventuellt l2tunnel) som är tillgänglig med Windows libnetwork-plugin-programmet för Docker för att skapa ett containernätverk på den virtuella klientdatorn.
I avsnittet containernätverksdrivrutiner diskuterade vi att flera nätverksdrivrutiner är tillgängliga via Docker i Windows. För SDN använder du drivrutinerna l2bridge och l2tunnel . För båda drivrutinerna befinner sig varje containerslutpunkt i samma virtuella undernät som containerhostens (tenant) virtuella maskin.
Värdnätverkstjänsten (HNS) tilldelar dynamiskt IP-adresserna för containerslutpunkter via plugin-programmet för privata moln. Containerslutpunkterna har unika IP-adresser men delar samma MAC-adress för den virtuella containervärdmaskinen (hyresgästen) på grund av adressöversättning på lager 2.
Nätverkspolicy (ACL:er, inkapsling och QoS) för dessa container-slutpunkter genomdrivs på den fysiska Hyper-V-värden som tas emot av nätverksstyrenheten och definieras i överliggande hanteringssystem.
Skillnaderna mellan l2bridge - och l2tunneldrivrutinerna är:
| l2bridge | l2tunnel |
|---|---|
Containerslutpunkter som finns på:
|
ALL nätverkstrafik mellan två containerslutpunkter vidarebefordras till den fysiska Hyper-V värden oavsett värd eller undernät. Nätverksprincipen gäller för både nätverkstrafik mellan undernät och mellan värdar. |
Note
Dessa nätverkslägen fungerar inte för att ansluta Windows-containerslutpunkter till ett virtuellt klientnätverk i det offentliga Azure-molnet.
Prerequisites
En distribuerad SDN-infrastruktur med nätverksstyrenheten.
Ett virtuellt klientnätverk har skapats.
En distribuerad virtuell klientdator med funktionen Windows Container aktiverad, Docker installerad och Hyper-V funktionen aktiverad. Funktionen Hyper-V krävs för att installera flera binärfiler för l2bridge- och l2tunnelnätverk.
# To install HyperV feature without checks for nested virtualization dism /Online /Enable-Feature /FeatureName:Microsoft-Hyper-V /All
Note
Kapslad virtualisering och exponerande av virtualiseringstillägg krävs inte om du inte använder Hyper-V Containers.
Workflow
1. Lägg till flera IP-konfigurationer i en befintlig NIC-resurs för virtuella datorer via nätverksstyrenheten (Hyper-V värd)2. Aktivera nätverksproxyn på värden för att allokera CA IP-adresser för containerslutpunkter (Hyper-V värd)3. Installera plugin-programmet för privata moln för att tilldela CA IP-adresser till containerslutpunkter (virtuell containervärd)4. Skapa ett l2bridge - eller l2tunnelnätverk med docker (containervärd-VM)
Note
Flera IP-konfigurationer stöds inte på VM NIC-resurser som skapats via System Center Virtual Machine Manager. För dessa distributionstyper rekommenderar vi att du skapar NIC-resursen för virtuella datorer utan band med hjälp av Nätverksstyrenheten PowerShell.
1. Lägg till flera IP-konfigurationer
I det här steget förutsätter vi att VM-nätverkskortet för den virtuella maskinen har en IP-konfiguration med IP-adressen 192.168.1.9 och är ansluten till ett VNet-resurs-ID av 'VNet1' och en VM-undernätsresurs av 'Subnet1' i IP-undernätet 192.168.1.0/24. Vi lägger till 10 IP-adresser för containrar från 192.168.1.101 – 192.168.1.110.
Import-Module NetworkController
# Specify Network Controller REST IP or FQDN
$uri = "<NC REST IP or FQDN>"
$vnetResourceId = "VNet1"
$vsubnetResourceId = "Subnet1"
$vmnic= Get-NetworkControllerNetworkInterface -ConnectionUri $uri | where {$_.properties.IpConfigurations.Properties.PrivateIPAddress -eq "192.168.1.9" }
$vmsubnet = Get-NetworkControllerVirtualSubnet -VirtualNetworkId $vnetResourceId -ResourceId $vsubnetResourceId -ConnectionUri $uri
# For this demo, we will assume an ACL has already been defined; any ACL can be applied here
$allowallacl = Get-NetworkControllerAccessControlList -ConnectionUri $uri -ResourceId "AllowAll"
foreach ($i in 1..10)
{
$newipconfig = new-object Microsoft.Windows.NetworkController.NetworkInterfaceIpConfiguration
$props = new-object Microsoft.Windows.NetworkController.NetworkInterfaceIpConfigurationProperties
$resourceid = "IP_192_168_1_1"
if ($i -eq 10)
{
$resourceid += "10"
$ipstr = "192.168.1.110"
}
else
{
$resourceid += "0$i"
$ipstr = "192.168.1.10$i"
}
$newipconfig.ResourceId = $resourceid
$props.PrivateIPAddress = $ipstr
$props.PrivateIPAllocationMethod = "Static"
$props.Subnet = new-object Microsoft.Windows.NetworkController.Subnet
$props.Subnet.ResourceRef = $vmsubnet.ResourceRef
$props.AccessControlList = new-object Microsoft.Windows.NetworkController.AccessControlList
$props.AccessControlList.ResourceRef = $allowallacl.ResourceRef
$newipconfig.Properties = $props
$vmnic.Properties.IpConfigurations += $newipconfig
}
New-NetworkControllerNetworkInterface -ResourceId $vmnic.ResourceId -Properties $vmnic.Properties -ConnectionUri $uri
2. Aktivera nätverksproxyn
I det här steget gör du det möjligt för nätverksproxyn att allokera flera IP-adresser för den virtuella containervärddatorn.
Om du vill aktivera nätverksproxyn kör du skriptetConfigureMCNP.ps1 på den Hyper-V värd som är värd för den virtuella containervärden (klientdatorn).
PS C:\> ConfigureMCNP.ps1
3. Installera plugin-programmet för privata moln
I det här steget installerar du ett plugin-program så att HNS kan kommunicera med nätverksproxyn på Hyper-V-värden.
Om du vill installera plugin-programmet kör du skriptetInstallPrivateCloudPlugin.ps1 inuti den virtuella containervärdens (klientorganisationens) virtuella dator.
PS C:\> InstallPrivateCloudPlugin.ps1
4. Skapa ett l2bridge Container Network
I det här steget använder du docker network create-kommandot på den virtuella containervärden (tenant) för att skapa ett nätverk av typen l2bridge.
# Create the container network
C:\> docker network create -d l2bridge --subnet="192.168.1.0/24" --gateway="192.168.1.1" MyContainerOverlayNetwork
# Attach a container to the MyContainerOverlayNetwork
C:\> docker run -it --network=MyContainerOverlayNetwork <image> <cmd>
Note
Statisk IP-tilldelning stöds inte med l2bridge - eller l2tunnelcontainernätverk när den används med Microsoft SDN Stack.
Mer information
Mer information om hur du distribuerar en SDN-infrastruktur finns i Distribuera en programvarudefinierad nätverksinfrastruktur.