Distribuzioni Kubernetes complete in Azure Kubernetes Edge Essentials
Attenzione
La distribuzione completa in più computer è attualmente una funzionalità sperimentale. Stiamo lavorando attivamente a questa funzionalità.
È possibile configurare un cluster Essentials edge del servizio Azure Kubernetes per l'esecuzione in più computer per supportare un'architettura di microservizi distribuiti. Il servizio Azure Kubernetes Edge Essentials è destinato a configurazioni statiche e non abilita la creazione/eliminazione dinamica della macchina virtuale o la gestione del ciclo di vita del cluster, a differenza del servizio Azure Kubernetes nel cloud o nel servizio Azure Kubernetes HCI. Il servizio Azure Kubernetes Edge Essentials ha una sola macchina virtuale Linux per ogni computer, insieme a una macchina virtuale Windows, se necessario. Ogni macchina virtuale ha un'allocazione statica di RAM, archiviazione e core CPU fisici assegnati al momento dell'installazione. In una distribuzione a più nodi, uno dei computer è il computer primario con il nodo di controllo Kubernetes e gli altri computer saranno computer secondari con i nodi di lavoro. In questo scenario di distribuzione verrà configurato il cluster K8S usando un commutatore esterno. Con questa configurazione, è possibile eseguire kubectl
da un altro computer nella rete, valutare le prestazioni del carico di lavoro in un commutatore esterno e così via.
Prerequisiti
Configurare il computer come descritto nell'articolo Configurare il computer .
Passaggio 1: parametri di configurazione della distribuzione Kubernetes completi
È possibile generare i parametri necessari per creare un cluster scalabile usando il comando seguente:
New-AksEdgeConfig -DeploymentType ScalableCluster -outFile .\aksedge-config.json | Out-Null
Verrà creato un file di configurazione denominato aksedge-config.json che include la configurazione necessaria per creare un cluster scalabile con un nodo Linux. Il file viene creato nella directory di lavoro corrente. Per altre opzioni per la creazione del file di configurazione, vedere gli esempi seguenti. Una descrizione dettagliata dei parametri di configurazione è disponibile qui.
I parametri chiave da notare per una distribuzione scalabile di Kubernetes sono:
Informazioni sul commutatore esterno: una distribuzione completa usa un commutatore esterno per abilitare la comunicazione tra i nodi. È necessario specificare il
MachineConfigType.NetworkConnection.AdapterName
parametro comeEthernet
oWi-Fi
:# get the list of available adapters in the machine Get-NetAdapter -Physical | Where-Object { $_.Status -eq 'Up' }
Se è stato creato un commutatore esterno in Hyper-V, è possibile scegliere di specificare i dettagli di vswitch nel file di configurazione. Se non si crea un commutatore esterno nella console di gestione di Hyper-V ed eseguire il
New-AksEdgeDeployment
comando, Azure Kubernetes Edge Essentials crea automaticamente un commutatore esterno denominatoaksedgesw-ext
e lo usa per la distribuzione.Nota
In questa versione si verifica un problema noto con la creazione automatica di un commutatore esterno con il
New-AksEdgeDeployment
comando se si usa una scheda Wi-Fi per il commutatore. In questo caso, creare prima il commutatore esterno usando la console di gestione del commutatore virtuale Hyper-V, eseguire il mapping dell'opzione alla scheda Wi-Fi e quindi specificare i dettagli del commutatore nel codice JSON di configurazione, come descritto di seguito.Indirizzi IP: è necessario allocare indirizzi IP gratuiti dalla rete per il piano di controllo, i servizi Kubernetes e i nodi (VM). Per altri dettagli, vedere Panoramica della rete di Azure Kubernetes Edge Essentials. Ad esempio, in una rete locale con l'intervallo di indirizzi IP 192.168.1.0/24, potrebbe essere presente 1.151 e versioni successive all'esterno dell'ambito DHCP e pertanto è probabile che sia libero. Azure Kubernetes Edge Essentials supporta attualmente solo indirizzi IPv4. Idealmente, saprai quali indirizzi IP gratuiti puoi usare; Tuttavia, è possibile usare lo script AksEdge-ListUsedIPv4s dal repository GitHub per visualizzare gli indirizzi IP attualmente in uso, per evitare di usare tali indirizzi IP nella configurazione. I parametri seguenti dovranno essere forniti nella
Network
sezione del file di configurazione:ControlPlaneEndpointIp
,Ip4GatewayAddress
,Ip4PrefixLength
,ServiceIPRangeSize
,ServiceIPRangeStart
eDnsServers
.Il
Network.NetworkPlugin
valore predefinito èflannel
. Flannel è l'interfaccia CNI predefinita per un cluster K3S. In un cluster K8S modificare inNetworkPlugin
calico
.Oltre ai parametri precedenti, è possibile impostare i parametri seguenti in base alla configurazione della distribuzione, come descritto di seguito:
LinuxNode.CpuCount
,LinuxNode.MemoryInMB
,LinuxNode.DataSizeInGB
,LinuxNode.Ip4Address
WindowsNode.CpuCount
,WindowsNode.MemoryInMB
,WindowsNode.Ip4Address
,Init.ServiceIPRangeSize
, eNetwork.InternetDisabled
.
Passaggio 2: convalidare il file di configurazione
Dopo aver aggiornato il file aksedge-config.json , eseguire lo strumento AksEdgePrompt. Questo strumento apre una finestra di PowerShell con privilegi elevati con i moduli caricati. Eseguire quindi il comando seguente per convalidare i parametri di rete usando il Test-AksEdgeNetworkParameters
cmdlet :
Test-AksEdgeNetworkParameters -JsonConfigFilePath .\aksedge-config.json
Passaggio 3: Creare un cluster di distribuzione completo
Se Test-AksEdgeNetworkParameters
restituisce true
, si è pronti per creare la distribuzione. È possibile creare la distribuzione usando il New-AksEdgeDeployment
cmdlet :
New-AksEdgeDeployment -JsonConfigFilePath .\aksedge-config.json
Il New-AksEdgeDeployment
cmdlet recupera automaticamente il file kubeconfig.
Passaggio 4: convalidare la distribuzione
kubectl get nodes -o wide
kubectl get pods --all-namespaces -o wide
Di seguito è illustrata una schermata di un cluster Kubernetes:
Passaggio 5: aggiungere un nodo di lavoro Windows (facoltativo)
Attenzione
I nodi di lavoro di Windows sono una funzionalità sperimentale in questa versione. Stiamo lavorando attivamente a questa funzionalità.
Se si vuole aggiungere un nodo Windows a un solo computer Linux esistente, è possibile eseguire:
New-AksEdgeScaleConfig -ScaleType AddNode -NodeType Windows -WindowsNodeIp "xxx" -outFile .\ScaleConfig.json | Out-Null
È anche possibile specificare parametri come CpuCount
e/o MemoryInMB
per la macchina virtuale Windows qui.
È possibile usare il file di configurazione generato ed eseguire il comando seguente per aggiungere il nodo Windows
Add-AksEdgeNode -JsonConfigFilePath .\ScaleConfig.json
Configurazione di esempio per diverse opzioni di distribuzione
Allocare risorse ai nodi
Per connettersi ad Arc e distribuire le app con GitOps, allocare quattro CPU o più per ( LinuxNode.CpuCount
potenza di elaborazione), 4 GB o più per LinuxNode.MemoryinMB
(RAM) e assegnare un numero maggiore di 0 a ServiceIpRangeSize
. In questo caso vengono allocati 10 indirizzi IP per i servizi Kubernetes:
{
"Init": {
"ServiceIpRangeSize": 10,
"ServiceIPRangeStart": "192.168.1.151"
},
"Network": {
"ControlPlaneEndpointIp": "192.168.1.191",
"NetworkPlugin": "calico",
"Ip4GatewayAddress": "192.168.1.1",
"Ip4PrefixLength": 24,
"DnsServers": ["192.168.1.1"]
},
"Machines": [
{
"NetworkConnection": {
"AdapterName": "Ethernet"
},
"LinuxNode": {
"CpuCount": 4,
"MemoryInMB": 4096,
"DataSizeInGB": 20,
"Ip4Address": "192.168.1.171"
}
}
]
}
Create nodi Linux e Windows
Per eseguire sia il piano di controllo Linux che il nodo del ruolo di lavoro Windows in un computer, creare il file di configurazione usando il comando seguente:
New-AksEdgeConfig -DeploymentType ScalableCluster -NodeType LinuxAndWindows -outFile .\aksedge-config.json | Out-Null
Create la distribuzione usando il comando :
New-AksEdgeDeployment -JsonConfigFilePath .\aksedge-config.json
{
"Machines": [
{
"NetworkConnection": {
"AdapterName": "Ethernet"
},
"LinuxNode": {
"CpuCount": 4,
"MemoryInMB": 4096,
"DataSizeInGB": 20,
"Ip4Address": "192.168.1.171"
},
"WindowsNode": {
"CpuCount": 2,
"MemoryInMB": 4096,
"Ip4Address": "192.168.1.172"
}
}
]
}
Passaggi successivi
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per