AKS Edge Essentials 전체 Kubernetes 배포
주의
여러 컴퓨터에 대한 전체 배포는 현재 실험적 기능입니다. 이 기능에 대해 적극적으로 작업 중입니다.
분산 마이크로 서비스 아키텍처를 지원하도록 여러 컴퓨터에서 실행되도록 AKS Edge Essentials 클러스터를 구성할 수 있습니다. AKS Edge Essentials 정적 구성용이며 클라우드 또는 AKS HCI의 AKS와 달리 동적 VM 생성/삭제 또는 클러스터 수명 주기 관리를 사용하도록 설정하지 않습니다. AKS Edge Essentials 필요한 경우 Windows VM과 함께 각 컴퓨터당 하나의 Linux VM만 있습니다. 각 VM에는 설치 시 할당된 RAM, 스토리지 및 실제 CPU 코어의 정적 할당이 있습니다. 다중 노드 배포에서 컴퓨터 중 하나는 Kubernetes 제어 노드가 있는 기본 머신이고 다른 컴퓨터는 작업자 노드가 있는 보조 컴퓨터가 됩니다. 이 배포 시나리오에서는 외부 스위치를 사용하여 K8S 클러스터를 구성합니다. 이 구성을 사용하면 네트워크의 다른 컴퓨터에서 를 실행하고 kubectl
, 외부 스위치에서 워크로드 성능을 평가하는 등의 작업을 수행할 수 있습니다.
사전 요구 사항
컴퓨터 설정 문서에 설명된 대로 컴퓨터를 설정합니다 .
1단계: 전체 Kubernetes 배포 구성 매개 변수
다음 명령을 사용하여 확장 가능한 클러스터를 만드는 데 필요한 매개 변수를 생성할 수 있습니다.
New-AksEdgeConfig -DeploymentType ScalableCluster -outFile .\aksedge-config.json | Out-Null
그러면 Linux 노드를 사용하여 확장 가능한 클러스터를 만드는 데 필요한 구성을 포함하는 aksedge-config.json 라는 구성 파일이 만들어집니다. 파일이 현재 작업 디렉터리에 만들어집니다. 구성 파일을 만들기 위한 추가 옵션은 다음 예제를 참조하세요. 구성 매개 변수에 대한 자세한 설명 은 여기에서 확인할 수 있습니다.
확장 가능한 Kubernetes 배포에 주의해야 할 주요 매개 변수는 다음과 같습니다.
외부 스위치 정보: 전체 배포는 외부 스위치를 사용하여 노드 간 통신을 사용하도록 설정합니다. 매개 변수를
MachineConfigType.NetworkConnection.AdapterName
또는Wi-Fi
로Ethernet
지정해야 합니다.# get the list of available adapters in the machine Get-NetAdapter -Physical | Where-Object { $_.Status -eq 'Up' }
Hyper-V에서 외부 스위치를 만든 경우 구성 파일에서 vswitch 세부 정보를 지정하도록 선택할 수 있습니다. Hyper-V 관리자에서 외부 스위치를 만들고 명령을 실행
New-AksEdgeDeployment
하지 않으면 AKS Edge Essentials 라는aksedgesw-ext
외부 스위치를 자동으로 만들어 배포에 사용합니다.참고
이 릴리스에서는 스위치에 Wi-Fi 어댑터를 사용하는 경우 명령을 사용하여 외부 스위치
New-AksEdgeDeployment
를 자동으로 만드는 데 알려진 문제가 있습니다. 이 경우 먼저 Hyper-V 관리자 - 가상 스위치 관리자를 사용하여 외부 스위치를 만들고, 스위치를 Wi-Fi 어댑터에 매핑한 다음, 아래 설명된 대로 구성 JSON에 스위치 세부 정보를 제공합니다.IP 주소: 제어 평면, Kubernetes 서비스 및 노드(VM)에 대해 네트워크에서 무료 IP 주소를 할당해야 합니다. 자세한 내용은 AKS Edge Essentials 네트워킹 개요를 참조하세요. 예를 들어 192.168.1.0/24 IP 주소 범위가 있는 로컬 네트워크에서는 DHCP scope 외부에 1.151 이상이 있을 수 있으므로 무료일 수 있습니다. AKS Edge Essentials 현재 IPv4 주소만 지원합니다. 이상적으로 사용할 수 있는 무료 IP 주소를 알 수 있습니다. 그러나 구성에서 해당 IP 주소를 사용하지 않도록 GitHub 리포지토리의 AksEdge-ListUsedIPv4s 스크립트를 사용하여 현재 사용 중인 IP를 볼 수 있습니다. 구성 파일
ControlPlaneEndpointIp
의 섹션에서 , , ,Ip4GatewayAddress
Ip4PrefixLength
ServiceIPRangeSize
,ServiceIPRangeStart
및DnsServers
매개 변수를 제공해야Network
합니다.기본적으로 값은
Network.NetworkPlugin
입니다flannel
. Flannel은 K3S 클러스터의 기본 CNI입니다. K8S 클러스터에서 를NetworkPlugin
로calico
변경합니다.이전 매개 변수 외에도 , , , , ,
WindowsNode.CpuCount
WindowsNode.Ip4Address
WindowsNode.MemoryInMB
LinuxNode.DataSizeInGB
Init.ServiceIPRangeSize
LinuxNode.MemoryInMB
LinuxNode.Ip4Address
및Network.InternetDisabled
에 설명된LinuxNode.CpuCount
대로 배포 구성에 따라 다음 매개 변수를 설정할 수 있습니다.
2단계: 구성 파일 유효성 검사
aksedge-config.json 파일을 업데이트한 후 AksEdgePrompt 도구를 실행합니다. 이 도구는 모듈이 로드된 관리자 권한 PowerShell 창을 엽니다. 그런 다음, 다음 명령을 실행하여 cmdlet을 사용하여 네트워크 매개 변수의 유효성을 Test-AksEdgeNetworkParameters
검사합니다.
Test-AksEdgeNetworkParameters -JsonConfigFilePath .\aksedge-config.json
3단계: 전체 배포 클러스터 만들기
가 반환true
되면 Test-AksEdgeNetworkParameters
배포를 만들 준비가 된 것입니다. cmdlet을 사용하여 배포를 New-AksEdgeDeployment
만들 수 있습니다.
New-AksEdgeDeployment -JsonConfigFilePath .\aksedge-config.json
cmdlet은 New-AksEdgeDeployment
kubeconfig 파일을 자동으로 검색합니다.
4단계: 배포 유효성 검사
kubectl get nodes -o wide
kubectl get pods --all-namespaces -o wide
Kubernetes 클러스터의 스크린샷은 다음과 같습니다.
5단계: Windows 작업자 노드 추가(선택 사항)
주의
Windows 작업자 노드는 이 릴리스의 실험적 기능입니다. 이 기능에 대해 적극적으로 작업 중입니다.
기존 Linux 전용 컴퓨터에 Windows 노드를 추가하려는 경우 다음을 실행할 수 있습니다.
New-AksEdgeScaleConfig -ScaleType AddNode -NodeType Windows -WindowsNodeIp "xxx" -outFile .\ScaleConfig.json | Out-Null
여기에서 Windows VM에 대한 및/또는 MemoryInMB
등의 CpuCount
매개 변수를 지정할 수도 있습니다.
생성된 구성 파일을 사용하고 다음 명령을 실행하여 Windows 노드를 추가할 수 있습니다.
Add-AksEdgeNode -JsonConfigFilePath .\ScaleConfig.json
다양한 배포 옵션에 대한 예제 구성
노드에 리소스 할당
Arc에 연결하고 GitOps를 사용하여 앱을 배포하려면 (처리 능력), 4GB 이상 LinuxNode.MemoryinMB
(RAM)에 CPU 4개 이상을 할당 LinuxNode.CpuCount
하고 0ServiceIpRangeSize
보다 큰 숫자를 에 할당합니다. 여기서는 Kubernetes 서비스에 대해 10개의 IP 주소를 할당합니다.
{
"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"
}
}
]
}
Linux 및 Windows 노드 Create
컴퓨터에서 Linux 컨트롤 플레인과 Windows 작업자 노드를 모두 실행하려면 다음 명령을 사용하여 구성 파일을 만듭니다.
New-AksEdgeConfig -DeploymentType ScalableCluster -NodeType LinuxAndWindows -outFile .\aksedge-config.json | Out-Null
명령을 사용하여 배포를 Create.
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"
}
}
]
}
다음 단계
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기