AKS Edge Essentials의 전체 Kubernetes 배포
주의
여러 컴퓨터에 대한 전체 배포는 현재 실험적 기능입니다. 이 기능에 대해 적극적으로 작업하고 있습니다.
분산 마이크로 서비스 아키텍처를 지원하도록 여러 컴퓨터에서 실행되도록 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 어댑터를 사용하는 경우 명령을 사용하여 외부 스위치
New-AksEdgeDeployment
를 자동으로 만드는 알려진 문제가 있습니다. 이 경우 먼저 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
매개 변수를 제공해야 합니다.
Important
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용입니다.
- 기본적으로 값은
Network.NetworkPlugin
.입니다flannel
. Flannel은 K3S 클러스터의 기본 CNI입니다. K8S 클러스터에서 다음NetworkPlugin
으로calico
변경합니다. - 이전 매개 변수 외에도 배포 구성
LinuxNode.CpuCount
설명한 대로 , ,LinuxNode.MemoryInMB
LinuxNode.DataSizeInGB
,LinuxNode.Ip4Address
,WindowsNode.CpuCount
,WindowsNode.MemoryInMB
WindowsNode.Ip4Address
Init.ServiceIPRangeSize
, 및 .Network.InternetDisabled
2단계: 구성 파일 유효성 검사
aksedge-config.json 파일을 업데이트한 후 AksEdgePrompt 도구를 실행합니다. 이 도구는 모듈이 로드된 관리자 권한 PowerShell 창을 엽니다. 그런 다음, 다음 명령을 실행하여 cmdlet을 사용하여 네트워크 매개 변수의 유효성을 Test-AksEdgeNetworkParameters
검사합니다.
Test-AksEdgeNetworkParameters -JsonConfigFilePath .\aksedge-config.json
3단계: 전체 배포 클러스터 만들기
반환Test-AksEdgeNetworkParameters
되면 true
배포를 만들 준비가 된 것입니다. 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과 같은 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 클러스터 제거