All Products
Search
Document Center

Elastic Container Instance:Tambahkan VNode (manual)

Last Updated:Jun 21, 2026

Jika Anda memiliki kluster Kubernetes yang dikelola sendiri yang berjalan di pusat data lokal (IDC) atau pada instance ECS Alibaba Cloud, Anda harus men-deploy node virtual (VNode) di kluster tersebut untuk menggunakan ECI. Topik ini menjelaskan cara mengonfigurasi sertifikat dan membuat VNode secara manual untuk kluster Kubernetes yang dikelola sendiri.

Prasyarat

  • Anda memiliki kluster Kubernetes versi 1.16 hingga 1.30.

  • Jika kluster Kubernetes Anda dideploy di pusat data lokal, pastikan jaringan pusat data terhubung ke jaringan Alibaba Cloud melalui Express Connect, Smart Access Gateway (SAG), atau VPN Gateway. Untuk informasi selengkapnya, lihat topik berikut:

Sebelum memulai

Sebelum membuat VNode, kumpulkan parameter yang diperlukan dan tinjau izin yang dibutuhkan. Tabel berikut menjelaskan parameter yang akan Anda perlukan.

Parameter

Deskripsi

Cara Mendapatkan

region

Wilayah adalah pusat data fisik. Pilih wilayah berdasarkan faktor seperti lokasi Anda, lokasi pengguna target, dan harga resource. Untuk informasi selengkapnya, lihat Wilayah dan zona ketersediaan.

ECI dan resource terkaitnya dibuat di wilayah yang dipilih.

Anda dapat menemukan wilayah yang didukung ECI di Konsol Elastic Container Instance atau dengan memanggil operasi DescribeRegions.

VPC

VPC adalah jaringan pribadi kustom yang Anda buat di Alibaba Cloud. VPC saling terisolasi secara logis. Untuk informasi selengkapnya, lihat Apa itu VPC?.

ECI dan resource terkaitnya dibuat di VPC yang Anda konfigurasi.

Catatan

Jika kluster Kubernetes Anda dideploy di pusat data lokal, pastikan jaringan pusat data dapat mencapai VPC ini.

Anda dapat membuat dan melihat VPC di halaman VPC pada Konsol VPC.

vSwitch

vSwitch adalah perangkat jaringan dasar dalam VPC yang menghubungkan berbagai resource cloud. Saat Anda membuat ECI dan resource terkaitnya dalam VPC, Anda harus menentukan satu atau beberapa vSwitch, dan sistem akan memilih salah satunya secara otomatis.

Anda dapat membuat dan melihat vSwitch di halaman vSwitch pada Konsol VPC. Pilih vSwitch yang termasuk dalam VPC yang dipilih.

security group

Security group adalah firewall virtual yang mengontrol lalu lintas inbound dan outbound dari resource dalam kelompok tersebut untuk meningkatkan keamanan jaringan. Untuk informasi selengkapnya, lihat Ikhtisar security group.

ECI dan resource terkaitnya ditambahkan ke security group tersebut.

Catatan

Kami menyarankan Anda menggunakan enterprise security group dan menambahkan aturan masuk berikut:

  • Izinkan akses ke semua port (1–65535) dari blok CIDR VPC.

  • Izinkan akses ke port layanan VNode (10250 dan 10255) dari alamat server API Kubernetes.

Anda dapat membuat dan melihat security group di halaman Security Group pada Konsol ECS. Pilih security group yang termasuk dalam VPC yang dipilih.

Saat membuat VNode, Anda harus mengonfigurasi izin yang diperlukan. Ini mencakup izin standar yang digunakan oleh node Kubernetes native dan izin tambahan khusus VNode, seperti dijelaskan dalam tabel berikut.

Jenis

Izin

Deskripsi

Izin standar

system:node

Izin node standar.

system:node-proxier

Izin kube-proxy standar.

system:certificates.k8s.io:certificatesigningrequests:nodeclient

Mengizinkan node membuat permintaan penandatanganan sertifikat (CSR).

system:certificates.k8s.io:certificatesigningrequests:selfnodeclient

Mengizinkan node meminta sertifikat baru berdasarkan sertifikat yang sudah ada. Ini memungkinkan rotasi sertifikat.

Izin tambahan

pods update dan pods patch

Mengizinkan VNode memperbarui anotasi pod, misalnya menambahkan anotasi yang dihitung seperti k8s.aliyun.com/eci-instance-id ke pod.

pvc update dan pvc patch

Mengizinkan VNode memperbarui anotasi PersistentVolumeClaim (PVC).

Konfigurasi kluster

VNode menggunakan file kubeconfig untuk terhubung ke kluster. Oleh karena itu, Anda harus menerbitkan sertifikat (kubeconfig) untuk VNode sebelum membuatnya.

Catatan

Jika Anda menggunakan sertifikat admin kluster, Anda dapat melewati bagian ini.

  1. Hubungkan ke kluster.

  2. Unduh dan jalankan skrip konfigurasi. Pilih TLS bootstrapping atau ServiceAccount untuk menghasilkan file kubeconfig.

    TLS Bootstrap

    Untuk keamanan yang lebih baik, kami merekomendasikan TLS bootstrapping. Metode ini secara otomatis men-deploy komponen vnode-approver. Komponen ini menandatangani CSR yang diajukan oleh VNode dan bersifat open source di GitHub. Untuk informasi selengkapnya, lihat vnode-approver.

    curl -fsSL https://eci-docs.oss-cn-beijing.aliyuncs.com/vnode/vnode-deploy.sh | bash -s -- bootstrap

    ServiceAccount

    Metode ini tidak mendukung rotasi sertifikat. Pastikan token memiliki periode validitas yang panjang atau tidak kedaluwarsa. Hal ini mencegah VNode menjadi tidak tersedia akibat sertifikat yang kedaluwarsa.

    curl -fsSL https://eci-docs.oss-cn-beijing.aliyuncs.com/vnode/vnode-deploy.sh | bash -s -- common
  3. Periksa file kubeconfig.

    File kubeconfig yang dihasilkan bernama vnode-config. Jalankan perintah berikut untuk melihat file tersebut:

    cat vnode-config

    Saat memeriksa file, verifikasi hal berikut:

    • Pastikan VPC tempat VNode akan dibuat dapat mencapai alamat server (misalnya, berada di VPC yang sama atau terhubung melalui jaringan).

      • Jika alamat server berupa alamat IP, alamat tersebut harus dapat diakses dari VPC VNode.

      • Jika alamat server berupa nama domain, nama tersebut harus dapat diselesaikan dalam VPC Alibaba Cloud, dan alamat IP hasilnya harus dapat diakses dari VPC VNode.

    • Jika parameter certificate-authority-data kosong, periksa apakah bidang yang sesuai dalam file ~/.kube/config menggunakan path file.

    TLS Bootstrap

    apiVersion: v1
    kind: Config
    current-context: kubernetes-admin@kubernetes
    contexts:
    - name: kubernetes-admin@kubernetes
      context:
        cluster: kubernetes-admin@kubernetes
        user: vnode
        namespace: kube-system
    clusters:
    - name: kubernetes-admin@kubernetes
      cluster:
        certificate-authority-data: "*****************************************=="
        server: https://10.16.XX.XX:6443
    users:
    - name: vnode
      user:
        token: ******.****************

    ServiceAccount

    apiVersion: v1
    kind: Config
    current-context: kubernetes-admin@kubernetes
    contexts:
    - name: kubernetes-admin@kubernetes
      context:
        cluster: kubernetes-admin@kubernetes
        user: vnode
        namespace: kube-system
    clusters:
    - name: kubernetes-admin@kubernetes
      cluster:
        certificate-authority-data: "*****************************************=="
        server: https://10.16.XX.XX:6443
    users:
    - name: vnode
      user:
        token: ***********************************************

Buat VNode

Prosedur

Anda dapat membuat VNode di Konsol Elastic Container Instance atau dengan memanggil operasi API.

Konsol

  1. Login ke Konsol Elastic Container Instance.

  2. Di bilah navigasi atas, pilih wilayah.

  3. Di panel navigasi kiri, pilih Virtual Node.

  4. Klik Create Virtual Node.

  5. Konfigurasi parameter dan klik OK.

    Tabel berikut menjelaskan parameter tersebut.

    Parameter

    Deskripsi

    VPC, vSwitch, security group

    VPC, vSwitch, dan security group untuk VNode. Resource ini harus disiapkan seperti yang dijelaskan di bagian Sebelum memulai.

    KubeConfig

    kubeconfig dari kluster Kubernetes tempat VNode terhubung. File ini harus dihasilkan seperti yang dijelaskan di bagian Konfigurasi kluster.

    TlsBootstrapEnabled

    Menentukan apakah akan mengaktifkan TLS bootstrapping.

    Aktifkan parameter ini jika Anda menghasilkan file kubeconfig menggunakan metode TLS bootstrap. Ini juga mengaktifkan rotasi sertifikat, yang memungkinkan VNode meminta sertifikat baru secara otomatis sebelum sertifikat saat ini kedaluwarsa.

    Tags

    Tag untuk mengikat VNode.

    Anda dapat menggunakan tag untuk alokasi biaya. Setelah mengikat tag kustom ke VNode, Anda dapat menggunakan tag tersebut untuk memfilter biaya instans VNode selama analisis biaya. Untuk informasi selengkapnya, lihat Lihat tagihan terpisah berdasarkan tag.

    Taints

    Taints yang diterapkan ke VNode.

    resource group

    Resource group adalah fitur yang dapat Anda gunakan untuk mengelompokkan resource di bawah Akun Alibaba Cloud Anda. Setiap akun memiliki resource group default. Untuk informasi selengkapnya, lihat Resource Management.

    Jika Anda tidak menentukan resource group, VNode akan ditambahkan ke resource group default.

API

Anda dapat memanggil operasi CreateVirtualNode untuk membuat VNode. Tabel berikut menjelaskan parameter utamanya. Untuk informasi selengkapnya, lihat CreateVirtualNode.

Nama

Tipe

Contoh

Deskripsi

RegionId

String

cn-shanghai

ID wilayah.

VSwitchId

String

vsw-2ze23nqzig8inprou****

ID vSwitch yang digunakan oleh VNode dan instans ECI-nya.

Anda dapat menentukan 1 hingga 10 vSwitch yang termasuk dalam VPC yang sama.

SecurityGroupId

String

sg-2ze81zoc3yl7a3we****

ID security group. VNode dan instans ECI-nya ditambahkan ke security group ini.

KubeConfig

String

JTVDbmFwaVZlcnNpb24lM0ElMjB2MSU1Q25jbHVzdGVycyUzQSU1Q24tJTIwY2x1c3RlciUzQSU1Q24uLi******

kubeconfig untuk kluster Kubernetes VNode. Nilainya harus dikodekan Base64.

TlsBootstrapEnabled

Boolean

true

Aktifkan parameter ini jika Anda menghasilkan file kubeconfig menggunakan metode TLS bootstrap. Ini juga mengaktifkan rotasi sertifikat, yang memungkinkan VNode meminta sertifikat baru secara otomatis sebelum sertifikat saat ini kedaluwarsa.

Verifikasi hasil

Setelah membuat VNode, tunggu beberapa saat. Kemudian, login ke kluster Kubernetes dan jalankan perintah kubectl get nodes untuk melihat informasi node.

  • Jika VNode ditemukan, berarti pembuatan berhasil. Output yang diharapkan mirip dengan berikut:

    [root@k8s-master ~]# kubectl get nodes
    NAME                          STATUS   ROLES                AGE    VERSION
    cn-beijing.vnd-2-xxx.sx61at   Ready    agent                132m   v1.20.6
    k8s-master                    Ready    control-plane,master 169m   v1.20.6
  • Jika VNode tidak ditemukan, pembuatan gagal. Kami menyarankan Anda melakukan troubleshooting berdasarkan event VNode.

    Di Konsol Elastic Container Instance, buka halaman Virtual Node. Klik ID VNode target, lalu lihat event di tab Events.

    Daftar berikut menjelaskan error event umum:

    • failed to get kubernetes server version, Get \"https://10.50.XX.XX:6443/version?timeout=32s\": net/http: request canceled (Client.Timeout exceeded while awaiting headers

      Error ini menunjukkan bahwa VPC tempat VNode berada tidak dapat terhubung ke alamat IP server API Kubernetes. Pastikan VNode dan server API berada di VPC yang sama. Jika tidak, pastikan keduanya memiliki konektivitas jaringan.

    • failed to get kubernetes server version, Get \"https://lb.kubesphere.local:6443/version?timeout=32s\": dial tcp: lookup lb.kubesphere.local on 100.100.X.:53: no such host

      Error ini menunjukkan bahwa nama domain server API Kubernetes tidak dapat diselesaikan di VPC. Anda dapat mengonfigurasi Alibaba Cloud DNS PrivateZone untuk menambahkan rekaman DNS untuk nama domain tersebut.

Catatan

Jika Anda memiliki pertanyaan atau masalah saat menghubungkan VNode ke kluster Kubernetes yang dikelola sendiri, cari grup DingTalk 44666389 untuk bergabung ke grup dukungan VNode.

Cegah penjadwalan DaemonSet ke VNode

VNode adalah node virtual dan tidak dapat menjalankan DaemonSet. Setelah membuat VNode, Anda harus menambahkan nodeAffinity ke DaemonSet kube-proxy untuk mencegah DaemonSet dijadwalkan ke VNode.

  1. Edit konfigurasi DaemonSet.

    kubectl -n kube-system edit ds kube-proxy
  2. Konfigurasi nodeAffinity.

    Tambahkan YAML berikut ke spec.template.spec:

    affinity:
      nodeAffinity:
        requiredDuringSchedulingIgnoredDuringExecution:
          nodeSelectorTerms:
          - matchExpressions:
            - key: type
              operator: NotIn
              values:
              - virtual-kubelet

Jadwalkan pod ke VNode

Setelah membuat VNode, Anda dapat menggunakan metode berikut untuk menjadwalkan pod agar berjalan sebagai instans ECI di VNode.

  • Penjadwalan manual

    Anda dapat menjadwalkan pod ke VNode secara manual dengan mengonfigurasi nodeSelector dan tolerations, atau dengan menentukan nodeName. Untuk informasi selengkapnya, lihat Jadwalkan pod ke VNode.

  • Penjadwalan otomatis

    Setelah men-deploy komponen eci-profile, Anda dapat mengonfigurasi selector kustom untuk secara otomatis menjadwalkan pod yang cocok ke VNode. Untuk informasi selengkapnya, lihat Gunakan eci-profile untuk menjadwalkan pod ke VNode.