주의
여러 컴퓨터에 대한 전체 배포는 현재 실험적 기능입니다. 이 기능에 대해 적극적으로 작업하고 있습니다.
분산 마이크로 서비스 아키텍처를 지원하도록 여러 컴퓨터에서 실행되도록 AKS Edge Essentials 클러스터를 구성할 수 있습니다. AKS Edge Essentials는 정적 구성을 위한 것이며 클라우드의 AKS 또는 Azure Local의 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
이 명령은 aksedge-config.json이라는 구성 파일을 만듭니다. 여기에는 Linux 노드를 사용하여 확장 가능한 클러스터를 만드는 데 필요한 구성이 포함됩니다. 파일이 현재 작업 디렉터리에 만들어집니다. 구성 매개 변수(예: 프록시 설정)에 대한 자세한 설명은 배포 JSON 구성을 참조하세요.
구성 파일을 만들기 위한 추가 옵션은 다음 예제를 참조하세요.
확장 가능한 Kubernetes 배포에 대해 주의해야 할 주요 매개 변수는 다음과 같습니다.
외부 스위치 정보: 전체 배포는 외부 스위치를 사용하여 노드 간 통신을 사용하도록 설정합니다. 매개 변수를
MachineConfigType.NetworkConnection.AdapterName
다음 중 하나Ethernet
또는Wi-Fi
다음으로 지정해야 합니다.# 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 어댑터를 사용하는 경우에 발생하는 알려진 문제가 있습니다. 이 경우 먼저 Hyper-V 관리자인 Virtual Switch Manager를 사용하여 외부 스위치를 만들고, 스위치를 Wi-Fi 어댑터에 매핑한 다음, 이 섹션에 설명된 대로 구성 JSON에 스위치 세부 정보를 제공합니다.IP 주소: 제어 평면, Kubernetes 서비스 및 노드(VM)에 대해 네트워크에서 무료 IP 주소를 할당해야 합니다. 자세한 내용은 AKS Edge Essentials 네트워킹 개요를 참조하세요. 예를 들어 192.168.1.0/24 IP 주소 범위가 있는 로컬 네트워크에서는 DHCP 범위 외부에 1.151 이상이 있을 수 있으므로 무료일 수 있습니다. AKS Edge Essentials는 현재 IPv4 주소만 지원합니다. 어떤 무료 IP 주소를 사용할 수 있는지 알고 있는 것이 가장 좋습니다. 그러나 GitHub 리포지토리AksEdge-ListUsedIPv4s 스크립트를 사용하여 구성에서 해당 IP 주소를 사용하지 않도록 현재 사용 중인 IP를 볼 수 있습니다. 구성 파일의
Network
섹션에서는ControlPlaneEndpointIp
,Ip4GatewayAddress
,Ip4PrefixLength
,ServiceIPRangeSize
,ServiceIPRangeStart
및DnsServers
매개 변수를 제공해야 합니다.
중요
Kubernetes pod cidr
는 10.42.0.0/16
K3 및 10.244.0.0/24
K8용입니다. Kubernetes service cidr
는 10.43.0.0/16
K3 및 10.96.0.0/12
K8용입니다.
-
Arc
: 이 섹션이 필요합니다. AKS Edge Essentials를 배포하는 동안 Arc 매개 변수는 AKS Edge Essentials 클러스터를 Azure Arc에 연결하는 데 사용됩니다. 필요한 Arc 매개 변수에 대한 자세한 내용은 Arc 설명서 연결을 참조하세요.
중요
AKS Edge Essentials 1.10.868.0 릴리스부터 구성 파일의 Arc
섹션이 필요합니다. Azure Arc 연결은 AKS Edge Essentials 배포 중에 자동으로 발생합니다.
- 기본적으로 값은
Network.NetworkPlugin
.입니다flannel
. Flannel은 K3S 클러스터의 기본 CNI입니다. K8S 클러스터에서NetworkPlugin
를calico
로 변경합니다. - 이전 매개 변수 외에도, 배포 구성에 따라 다음 매개 변수를 설정할 수 있습니다:
설명한 대로 , , , , , , , , , 및 .
2단계: 구성 파일 유효성 검사
aksedge-config.json 파일을 업데이트한 후 AksEdgePrompt 도구를 실행합니다. 이 도구는 모듈이 로드된 관리자 권한 PowerShell 창을 엽니다. 그런 다음, Test-AksEdgeNetworkParameters
cmdlet을 사용하여 네트워크 매개 변수의 유효성을 검사하려면 다음 명령을 실행합니다.
Test-AksEdgeNetworkParameters -JsonConfigFilePath .\aksedge-config.json
3단계: 전체 배포 클러스터 만들기
Test-AksEdgeNetworkParameters
가 true
을(를) 반환하면, 배포를 만들 준비가 된 것입니다.
New-AksEdgeDeployment
cmdlet을 사용하여 배포를 만들 수 있습니다.
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과 같은 CpuCount
매개 변수 및/또는 MemoryInMB
매개 변수를 지정할 수도 있습니다.
생성된 구성 파일을 사용하고 다음 명령을 실행하여 Windows 노드를 추가할 수 있습니다.
Add-AksEdgeNode -JsonConfigFilePath .\ScaleConfig.json
다양한 배포 옵션에 대한 예제 구성
노드에 리소스 할당
Arc에 연결하고 GitOps를 사용하여 앱을 배포하려면 4개 이상의 LinuxNode.CpuCount
CPU(처리 능력), 4GB 이상 LinuxNode.MemoryinMB
(RAM)을 할당하고 0보다 큰 숫자를 할당합니다 ServiceIpRangeSize
. 여기서는 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 노드 만들기
컴퓨터에서 Linux 컨트롤 플레인과 Windows 작업자 노드를 모두 실행하려면 다음 명령을 사용하여 구성 파일을 만듭니다.
New-AksEdgeConfig -DeploymentType ScalableCluster -NodeType LinuxAndWindows -outFile .\aksedge-config.json | Out-Null
명령을 사용하여 배포를 만듭니다.
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"
}
}
]
}
다음 단계
- 애플리케이션을 배포합니다.
- 개요
- AKS 클러스터 제거