Membuat cluster standar untuk menjalankan workload container

Dokumen ini menjelaskan cara membuat cluster Kubernetes standar di zona Google Distributed Cloud (GDC) yang terisolasi. Cluster standar menyediakan cluster Kubernetes yang sangat dapat dikonfigurasi dan memiliki cakupan project, yang mencakup kumpulan minimum layanan terkelola yang disertakan. Cluster standar menawarkan lebih banyak fleksibilitas untuk konfigurasi layanan daripada cluster bersama, tetapi juga memerlukan overhead pengelolaan yang lebih besar. Untuk mengetahui informasi selengkapnya tentang cluster standar, lihat Konfigurasi cluster Kubernetes.

Cluster standar adalah resource zona dan tidak dapat mencakup beberapa zona. Untuk mengoperasikan cluster di lingkungan multi-zona, Anda harus membuat cluster secara manual di setiap zona.

Dokumen ini ditujukan untuk audiens seperti developer aplikasi dalam grup operator aplikasi, yang bertanggung jawab untuk mengelola workload container dalam organisasi mereka. Untuk mengetahui informasi selengkapnya, lihat Audiens untuk dokumentasi GDC dengan air gap.

Sebelum memulai

Untuk membuat cluster standar, minta izin yang diperlukan dan siapkan lingkungan Anda.

Meminta peran IAM

Hubungi Admin IAM Organisasi Anda untuk memberi Anda peran berikut:

  • Admin IAM Project (project-iam-admin): berikan peran yang diperlukan kepada pengguna lain untuk mengelola akses dalam cluster standar.
  • Admin Cluster Standar (standard-cluster-admin): buat cluster standar di project.

Peran ini terikat ke namespace project Anda.

Menyiapkan lingkungan Anda

  • Pastikan Anda memiliki penyiapan yang sesuai untuk mengakses dan mengelola cluster standar. Untuk mengetahui informasi selengkapnya, lihat Mengelola akses ke cluster standar.
  • Buat file kubeconfig server API zona untuk menghosting cluster Anda. Tetapkan variabel lingkungan MANAGEMENT_API_SERVER ke jalur kubeconfig. Untuk mengetahui informasi selengkapnya, lihat Resource server API pengelolaan zona.
  • Tinjau batas cluster untukpertimbangan resource.

Merencanakan blok CIDR pod

Untuk mengalokasikan blok CIDR pod berukuran sesuai untuk workload Anda, Anda harus menghitung jumlah alamat IP yang diperlukan untuk cluster Kubernetes sebelum membuatnya. Sebagian besar parameter jaringan tidak dapat diubah setelah cluster dibuat.

Cluster Kubernetes mengikuti logika berikut saat mengalokasikan alamat IP:

  • Kubernetes menetapkan blok CIDR /24 yang terdiri dari 256 alamat ke setiap node. Jumlah ini sesuai dengan maksimum default 110 pod per node untuk cluster Kubernetes.
  • Ukuran blok CIDR yang ditetapkan ke node bergantung pada nilai pod maksimum per node.
  • Blok ini selalu berisi alamat setidaknya dua kali lebih banyak dari jumlah maksimum pod per node.

Lihat contoh berikut untuk memahami cara nilai default Ukuran mask per node= /24 dihitung untuk mengakomodasi 110 pod:

Maximum pods per node = 110
Total number of IP addresses required = 2 * 110 = 220

Per node mask size = /24
Number of IP addresses in a /24 = 2(32 - 24) = 256

Tentukan mask CIDR pod yang diperlukan untuk dikonfigurasi untuk cluster Kubernetes berdasarkan jumlah node yang diperlukan. Rencanakan penambahan node di masa mendatang ke cluster saat mengonfigurasi rentang CIDR:

  Total number of nodes supported = 2(Per node mask size - pod CIDR mask)

Karena ada Ukuran mask per node= /24 default , lihat tabel berikut yang memetakan mask CIDR pod ke jumlah node yang didukung.

Mask CIDR Pod Perhitungan: 2(Ukuran mask per node - CIDR mask) Jumlah maksimum node yang didukung, termasuk bidang kontrol node
/21 2(24 - 21) 8
/20 2(24-20) 16
/19 2(24 - 19) 32
/18 2(24 - 18) 64

Setelah menghitung blok CIDR pod untuk cluster Kubernetes, konfigurasikan blok tersebut sebagai bagian dari alur kerja pembuatan cluster di bagian berikutnya.

Membuat cluster standar

Untuk membuat cluster standar, selesaikan langkah-langkah berikut:

Konsol

  1. Di pemilih project, pilih project Anda.

    Cluster standar adalah resource yang memiliki cakupan project. Jika memilih organisasi, Anda akan membuat cluster bersama, yang memiliki cakupan organisasi. Untuk mengetahui informasi selengkapnya, lihat hierarki resource.

  2. Di menu navigasi, pilih Kubernetes Engine > Clusters.

  3. Klik Create Cluster.

  4. Di kolom Name, tentukan nama untuk cluster.

  5. Pilih zona tempat cluster akan dibuat.

  6. Pilih versi Kubernetes untuk cluster.

  7. Klik Next.

  8. Konfigurasikan setelan jaringan untuk cluster Anda. Anda tidak dapat mengubah setelan jaringan ini setelah membuat cluster. Protokol Internet default dan satu-satunya yang didukung untuk cluster Kubernetes adalah Protokol Internet versi 4 (IPv4).

    1. Jika ingin membuat node load balancer khusus, masukkan jumlah node yang akan dibuat. Secara default, Anda menerima nol node, dan traffic load balancer berjalan melalui node bidang kontrol.

    2. Pilih CIDR Layanan (Classless Inter-Domain Routing) yang akan digunakan. Layanan yang di-deploy, seperti load balancer, dialokasikan alamat IP dari rentang ini.

    3. Pilih CIDR Pod yang akan digunakan. Cluster mengalokasikan alamat IP dari rentang ini ke pod dan VM Anda.

    4. Klik Next.

  9. Tinjau detail node pool default yang dibuat otomatis untuk cluster. Klik Edit untuk mengubah node pool default.

  10. Untuk membuat node pool tambahan, pilih Add Node Pool. Saat mengedit node pool default atau menambahkan node pool baru, Anda dapat menyesuaikannya dengan opsi berikut:

    1. Tetapkan nama untuk node pool. Anda tidak dapat mengubah nama setelah membuat node pool.
    2. Tentukan jumlah node pekerja yang akan dibuat di node pool.
    3. Pilih class mesin yang paling sesuai dengan persyaratan workload Anda. Lihat daftar setelan berikut:

      • Jenis mesin
      • CPU
      • Memori
    4. Klik Save.

  11. Klik Create untuk membuat cluster.

Pembuatan cluster standar dapat memerlukan waktu hingga 60 menit untuk diselesaikan.

API

  1. Buat resource kustom Cluster dan simpan sebagai file YAML, seperti cluster.yaml:

    apiVersion: cluster.gdc.goog/v1
    kind: Cluster
    metadata:
      name: CLUSTER_NAME
      namespace: PROJECT_NAME
    spec:
      clusterNetwork:
        podCIDRSize: POD_CIDR
        serviceCIDRSize: SERVICE_CIDR
      initialVersion:
        kubernetesVersion: KUBERNETES_VERSION
      nodePools:
      - machineTypeName: MACHINE_TYPE
        name: NODE_POOL_NAME
        nodeCount: NUMBER_OF_WORKER_NODES
        taints: TAINTS
        labels: LABELS
        acceleratorOptions:
          gpuPartitionScheme: GPU_PARTITION_SCHEME
      releaseChannel:
        channel: UNSPECIFIED
    

    Ganti kode berikut:

    • CLUSTER_NAME: nama cluster. Nama cluster tidak boleh diakhiri dengan -system. Sufiks -system dicadangkan untuk cluster yang dibuat oleh GDC.
    • PROJECT_NAME: nama project tempat cluster akan dibuat.
    • POD_CIDR: ukuran rentang jaringan tempat alamat IP virtual pod dialokasikan. Jika tidak ditetapkan, nilai default 21 akan digunakan.
    • SERVICE_CIDR: ukuran rentang jaringan tempat alamat IP virtual layanan dialokasikan. Jika tidak ditetapkan, nilai default 23 akan digunakan.
    • KUBERNETES_VERSION: versi Kubernetes cluster, seperti 1.26.5-gke.2100. Untuk mencantumkan versi Kubernetes yang tersedia untuk dikonfigurasi, lihat Mencantumkan versi Kubernetes yang tersedia untuk cluster.
    • MACHINE_TYPE: jenis mesin untuk node pekerja node pool. Lihat jenis mesin yang tersedia untuk mengetahui apa yang dapat dikonfigurasi.
    • NODE_POOL_NAME: nama node pool.
    • NUMBER_OF_WORKER_NODES: jumlah node pekerja yang akan disediakan di node pool.
    • TAINTS: taint yang akan diterapkan ke node node pool ini. Kolom ini bersifat opsional.
    • LABELS: label yang akan diterapkan ke node node pool ini. Kolom ini berisi daftar key-value pair. Kolom ini bersifat opsional.
    • GPU_PARTITION_SCHEME: skema partisi GPU, jika Anda menjalankan workload GPU. Kolom ini bersifat opsional. Contohnya, mixed-2. GPU tidak dipartisi jika kolom ini tidak ditetapkan. Untuk mengetahui informasi selengkapnya tentang profil Multi-Instance GPU (MIG) yang tersedia, lihat Profil MIG yang didukung.
  2. Terapkan resource kustom ke instance GDC Anda:

    kubectl apply -f cluster.yaml --kubeconfig MANAGEMENT_API_SERVER
    

    Ganti MANAGEMENT_API_SERVER dengan jalur kubeconfig server API zona. Jika Anda belum membuat file kubeconfig untuk server API di zona target, lihat Login.

Pembuatan cluster standar dapat memerlukan waktu hingga 60 menit untuk diselesaikan.

Terraform

  1. Dalam file konfigurasi Terraform, sisipkan cuplikan kode berikut:

    provider "kubernetes" {
      config_path = "MANAGEMENT_API_SERVER"
    }
    
    resource "kubernetes_manifest" "cluster-create" {
      manifest = {
        "apiVersion" = "cluster.gdc.goog/v1"
        "kind" = "Cluster"
        "metadata" = {
          "name" = "CLUSTER_NAME"
          "namespace" = "PROJECT_NAME"
        }
        "spec" = {
          "clusterNetwork" = {
            "podCIDRSize" = "POD_CIDR"
            "serviceCIDRSize" = "SERVICE_CIDR"
          }
          "initialVersion" = {
            "kubernetesVersion" = "KUBERNETES_VERSION"
          }
          "nodePools" = [{
            "machineTypeName" = "MACHINE_TYPE"
            "name" = "NODE_POOL_NAME"
            "nodeCount" = "NUMBER_OF_WORKER_NODES"
            "taints" = "TAINTS"
            "labels" = "LABELS"
            "acceleratorOptions" = {
              "gpuPartitionScheme" = "GPU_PARTITION_SCHEME"
            }
          }]
          "releaseChannel" = {
            "channel" = "UNSPECIFIED"
          }
        }
      }
    }
    

    Ganti kode berikut:

    • MANAGEMENT_API_SERVER: jalur kubeconfig server API zona. Jika Anda belum membuat file kubeconfig untuk server API di zona target, lihat Login.
    • CLUSTER_NAME: nama cluster. Nama cluster tidak boleh diakhiri dengan -system. Sufiks -system dicadangkan untuk cluster yang dibuat oleh GDC.
    • PROJECT_NAME: nama project tempat cluster akan dibuat.
    • POD_CIDR: ukuran rentang jaringan tempat alamat IP virtual pod dialokasikan. Jika tidak ditetapkan, nilai default 21 akan digunakan.
    • SERVICE_CIDR: ukuran rentang jaringan tempat alamat IP virtual layanan dialokasikan. Jika tidak ditetapkan, nilai default 23 akan digunakan.
    • KUBERNETES_VERSION: versi Kubernetes cluster, seperti 1.26.5-gke.2100. Untuk mencantumkan versi Kubernetes yang tersedia untuk dikonfigurasi, lihat Mencantumkan versi Kubernetes yang tersedia untuk cluster.
    • MACHINE_TYPE: jenis mesin untuk node pekerja node pool. Lihat jenis mesin yang tersedia untuk mengetahui apa yang dapat dikonfigurasi.
    • NODE_POOL_NAME: nama node pool.
    • NUMBER_OF_WORKER_NODES: jumlah node pekerja yang akan disediakan di node pool.
    • TAINTS: taint yang akan diterapkan ke node node pool ini. Kolom ini bersifat opsional.
    • LABELS: label yang akan diterapkan ke node node pool ini. Kolom ini berisi daftar key-value pair. Kolom ini bersifat opsional.
    • GPU_PARTITION_SCHEME: skema partisi GPU, jika Anda menjalankan workload GPU. Kolom ini bersifat opsional. Contohnya, mixed-2. GPU tidak dipartisi jika kolom ini tidak ditetapkan. Untuk mengetahui informasi selengkapnya tentang profil Multi-Instance GPU (MIG) yang tersedia, lihat Profil MIG yang didukung.
  2. Terapkan cluster standar baru menggunakan Terraform:

    terraform apply
    

Pembuatan cluster standar dapat memerlukan waktu hingga 60 menit untuk diselesaikan.

Langkah berikutnya