Bagikan melalui


Penyebaran Kubernetes penuh di AKS Edge Essentials

Perhatian

Penyebaran penuh pada beberapa komputer saat ini adalah fitur eksperimental. Kami secara aktif mengerjakan fitur ini.

Anda dapat mengonfigurasi kluster AKS Edge Essentials untuk dijalankan di beberapa komputer untuk mendukung arsitektur layanan mikro terdistribusi. AKS Edge Essentials adalah untuk konfigurasi statis dan tidak mengaktifkan pembuatan/penghapusan VM dinamis atau manajemen siklus hidup kluster, tidak seperti AKS di cloud atau AKS HCI. AKS Edge Essentials hanya memiliki satu VM Linux per setiap komputer, bersama dengan VM Windows jika diperlukan. Setiap VM memiliki alokasi statis RAM, penyimpanan, dan inti CPU fisik yang ditetapkan pada waktu penginstalan. Dalam penyebaran multi-simpul, salah satu komputer adalah komputer utama dengan simpul kontrol Kubernetes, dan komputer lain akan menjadi komputer sekunder dengan simpul pekerja. Dalam skenario penyebaran ini, kita akan mengonfigurasi kluster K8S menggunakan sakelar eksternal. Dengan konfigurasi ini, Anda dapat menjalankan kubectl dari komputer lain di jaringan Anda, mengevaluasi performa beban kerja Anda pada sakelar eksternal, dan sebagainya.

Prasyarat

Siapkan komputer Anda seperti yang dijelaskan dalam artikel Menyiapkan komputer .

Langkah 1: parameter konfigurasi penyebaran Kubernetes penuh

Anda dapat menghasilkan parameter yang diperlukan untuk membuat kluster yang dapat diskalakan menggunakan perintah berikut:

New-AksEdgeConfig -DeploymentType ScalableCluster -outFile .\aksedge-config.json | Out-Null

Ini membuat file konfigurasi yang disebut aksedge-config.json yang mencakup konfigurasi yang diperlukan untuk membuat kluster yang dapat diskalakan dengan simpul Linux. File dibuat di direktori kerja Anda saat ini. Lihat contoh berikut untuk opsi lainnya untuk membuat file konfigurasi. Deskripsi terperinci tentang parameter konfigurasi tersedia di sini.

Parameter kunci yang perlu diperhatikan untuk penyebaran Kubernetes yang dapat diskalakan adalah:

  • Informasi sakelar eksternal: Penyebaran penuh menggunakan sakelar eksternal untuk mengaktifkan komunikasi di seluruh simpul. Anda harus menentukan MachineConfigType.NetworkConnection.AdapterName parameter sebagai Ethernet atau Wi-Fi:

    # get the list of available adapters in the machine
    Get-NetAdapter -Physical | Where-Object { $_.Status -eq 'Up' }
    

    Jika Anda telah membuat sakelar eksternal di Hyper-V, Anda dapat memilih untuk menentukan detail vswitch dalam file konfigurasi Anda. Jika Anda tidak membuat sakelar eksternal di manajer Hyper-V dan menjalankan New-AksEdgeDeployment perintah, AKS Edge Essentials secara otomatis membuat sakelar eksternal bernama aksedgesw-ext dan menggunakannya untuk penyebaran Anda.

    Catatan

    Dalam rilis ini, ada masalah yang diketahui dengan pembuatan otomatis sakelar eksternal dengan New-AksEdgeDeployment perintah jika Anda menggunakan adaptor Wi-Fi untuk sakelar. Dalam hal ini, pertama-tama buat sakelar eksternal menggunakan manajer Hyper-V - Virtual Switch Manager, petakan sakelar ke adaptor Wi-fi, lalu berikan detail sakelar dalam konfigurasi Anda JSON seperti yang dijelaskan di bawah ini.

    Cuplikan layar manajer pengalih Hyper-V.

  • Alamat IP: Anda harus mengalokasikan alamat IP gratis dari jaringan Anda untuk Sarana Kontrol, layanan Kubernetes, dan Simpul (VM). Lihat gambaran umum jaringan Essentials AKS Edge untuk detail selengkapnya. Misalnya, dalam jaringan lokal dengan rentang alamat IP 192.168.1.0/24, Anda mungkin memiliki 1.151 ke atas di luar cakupan DHCP, dan oleh karena itu kemungkinan akan gratis. AKS Edge Essentials saat ini hanya mendukung alamat IPv4. Idealnya, Anda akan tahu alamat IP gratis apa yang dapat Anda gunakan; namun, Anda dapat menggunakan skrip AksEdge-ListUsedIPv4s dari repositori GitHub untuk melihat IP yang saat ini sedang digunakan, untuk menghindari penggunaan alamat IP tersebut dalam konfigurasi Anda. Parameter berikut perlu disediakan di bagian Network file konfigurasi: ControlPlaneEndpointIp, , Ip4GatewayAddress, Ip4PrefixLengthServiceIPRangeSize, ServiceIPRangeStart, dan DnsServers.

  • Nilai Network.NetworkPlugin secara default adalah flannel. Flannel adalah CNI default untuk kluster K3S. Dalam kluster K8S, ubah ke NetworkPlugincalico.

  • Selain parameter sebelumnya, Anda dapat mengatur parameter berikut sesuai dengan konfigurasi penyebaran Anda, seperti yang dijelaskan di sini: LinuxNode.CpuCount, , , LinuxNode.DataSizeInGBLinuxNode.MemoryInMBLinuxNode.Ip4Address, WindowsNode.CpuCount, WindowsNode.MemoryInMB, WindowsNode.Ip4Address, , Init.ServiceIPRangeSizedan .Network.InternetDisabled

Langkah 2: validasi file konfigurasi

Setelah Memperbarui file aksedge-config.json , jalankan alat AksEdgePrompt. Alat ini membuka jendela PowerShell yang ditingkatkan dengan modul yang dimuat. Kemudian jalankan perintah berikut untuk memvalidasi parameter jaringan Anda menggunakan Test-AksEdgeNetworkParameters cmdlet :

Test-AksEdgeNetworkParameters -JsonConfigFilePath .\aksedge-config.json

Langkah 3: buat kluster penyebaran lengkap

Jika Test-AksEdgeNetworkParameters mengembalikan true, Anda siap untuk membuat penyebaran. Anda dapat membuat penyebaran menggunakan New-AksEdgeDeployment cmdlet :

New-AksEdgeDeployment -JsonConfigFilePath .\aksedge-config.json

Cmdlet New-AksEdgeDeployment secara otomatis mengambil file kubeconfig.

Langkah 4: validasi penyebaran Anda

kubectl get nodes -o wide
kubectl get pods --all-namespaces -o wide

Cuplikan layar kluster Kubernetes ditunjukkan di bawah ini:

Diagram memperlihatkan semua pod berjalan.

Langkah 5: tambahkan simpul pekerja Windows (opsional)

Perhatian

Simpul pekerja Windows adalah fitur eksperimental dalam rilis ini. Kami secara aktif mengerjakan fitur ini.

Jika Anda ingin menambahkan simpul Windows ke komputer khusus Linux yang ada, Anda dapat menjalankan:

New-AksEdgeScaleConfig -ScaleType AddNode -NodeType Windows -WindowsNodeIp "xxx" -outFile .\ScaleConfig.json | Out-Null

Anda juga dapat menentukan parameter seperti CpuCount dan/atau MemoryInMB untuk VM Windows Anda di sini.

Anda dapat menggunakan file konfigurasi yang dihasilkan dan menjalankan perintah berikut untuk menambahkan simpul Windows

Add-AksEdgeNode -JsonConfigFilePath .\ScaleConfig.json

Contoh konfigurasi untuk opsi penyebaran yang berbeda

Mengalokasikan sumber daya ke simpul Anda

Untuk terhubung ke Arc dan menyebarkan aplikasi Anda dengan GitOps, alokasikan empat CPU atau lebih untuk LinuxNode.CpuCount (daya pemrosesan), 4 GB atau lebih untuk LinuxNode.MemoryinMB (RAM), dan tetapkan angka yang lebih besar dari 0 ke ServiceIpRangeSize. Di sini, kami mengalokasikan 10 alamat IP untuk layanan Kubernetes Anda:

{
    "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 simpul Linux dan Windows

Untuk menjalankan sarana kontrol Linux dan simpul pekerja Windows pada komputer, buat file konfigurasi menggunakan perintah berikut:

New-AksEdgeConfig -DeploymentType ScalableCluster -NodeType LinuxAndWindows -outFile .\aksedge-config.json | Out-Null

Create penyebaran menggunakan perintah :

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"
          }
      }
  ]
}

Langkah berikutnya