All Products
Search
Document Center

Compute Nest:Paket Helm chart

Last Updated:Jun 21, 2026

Topik ini menjelaskan kasus penggunaan dan prinsip paket penyebaran Helm chart serta cara membuat dan menggunakannya.

Kasus penggunaan

  • Jika Anda perlu menjaga Helm chart tetap privat saat menyebarlayankan layanan, kami merekomendasikan menggunakan paket penyebaran Helm chart di Compute Nest. Paket-paket ini disimpan di repositori ACR Compute Nest dan ditarik secara aman menggunakan kunci sementara.

    Penting

    Untuk Helm chart yang dapat diakses publik, Anda dapat menyebarlayankannya dengan menentukan URL publiknya di templat ROS layanan tersebut. Tidak diperlukan konfigurasi tambahan.

  • Helm chart biasanya digunakan untuk layanan dengan struktur kompleks dan banyak file penyebaran YAML agar pengelolaan file-file tersebut lebih terstruktur. Di Compute Nest, paket penyebaran Helm chart dihosting di repositori ACR. Untuk informasi lebih lanjut tentang mekanisme unggah dan tarik, lihat artefak gambar kontainer.

Cara kerja

Untuk menggunakan paket penyebaran Helm chart dalam templat layanan, Anda harus menentukan dua placeholder berikut. Placeholder ini akan diganti dengan nilai aktual selama penyebaran:

  • {{computenest::helmchart::test}}: Placeholder paket penyebaran. Ini diganti dengan URL lengkap Helm chart, misalnya, oci://compute-nest-chart-registry.cn-hangzhou.cr.aliyuncs.com/${aliUid}/wordpress:15.4.1.

  • {{computenest::helm::dockerconfigjson}}: Rahasia tarik repositori, digunakan untuk menarik Helm chart yang dihosting di repositori ACR Compute Nest.

Penyebaran Helm chart menggunakan modul publik MODULE::ACS::ComputeNest::FluxOciHelmDeploy yang ditentukan oleh Compute Nest. Modul ini menggunakan komponen open-source FluxCD dan saat ini hanya mendukung repositori chart dalam format OCI. Repositori untuk paket penyebaran Helm chart Compute Nest menggunakan format OCI. Contoh templat berikut menunjukkan cara menyebarlayankan paket penyebaran Helm chart menggunakan MODULE::ACS::ComputeNest::FluxOciHelmDeploy:

Resources:
  FluxHelmDeploy:
    Type: MODULE::ACS::ComputeNest::FluxOciHelmDeploy
    Version: v1
    Properties:
      ClusterId:
        Ref: ClusterId
      ReleaseName: wordpress
      Namespace: wordpress
      HelmChartUrl: '{{ computenest::helmchart::test }}'
      DockerConfigJson: '{{ computenest::helm::dockerconfigjson }}'
      ChartValues:
        mariadb:
          primary:
            persistence:
              enabled: true
              storageClass: alicloud-disk-essd
              size: 20Gi
        persistence:
          enabled: false
...

Pembuatan dan penggunaan

Prasyarat

Pastikan CLI Helm telah diinstal dan Anda memiliki Helm chart yang telah dikemas. Jika belum, lihat Dorong dan tarik Helm chart.

Buat paket Helm chart

  1. Konfigurasikan informasi dasar untuk paket penyebaran.

    1. Masuk ke Konsol Compute Nest. Di panel navigasi sebelah kiri, pilih Service Deployment Package. Pada tab Packages, klik Create Deployment Package.

    2. Di bagian Basic Information, konfigurasikan parameter berikut.

      Parameter

      Deskripsi

      Deployment Package Name

      Nama dapat berisi karakter Cina, huruf Inggris, angka, dan garis bawah (_). Nama harus terdiri dari 3 hingga 128 karakter, dengan satu karakter Cina dihitung sebagai dua karakter. Nama paket penyebaran tidak dapat diubah setelah dibuat.

      Version Name

      Nama dapat berisi karakter Cina, huruf Inggris, angka, dan garis bawah (_). Nama harus terdiri dari 3 hingga 50 karakter, dengan satu karakter Cina dihitung sebagai dua karakter.

      Description

      Deskripsi harus terdiri dari 10 hingga 500 karakter. Satu karakter Cina dihitung sebagai dua karakter.

      Resource Group

      Pilih kelompok sumber daya tempat paket penyebaran ini berada.

      Kelompok sumber daya memungkinkan Anda mengelompokkan sumber daya cloud berdasarkan penggunaan, izin, atau kepemilikan, sehingga memungkinkan manajemen sumber daya hierarkis untuk banyak pengguna dan proyek dalam suatu organisasi. Untuk informasi lebih lanjut, lihat kelompok sumber daya.

      Tag Settings

      Pilih atau masukkan kunci tag dan nilai tag lengkap untuk menambahkan tag ke paket penyebaran. Anda dapat mengikat hingga 20 tag ke sebuah resource. Jika tidak tersedia kunci atau nilai tag, Anda dapat membuat tag kustom. Untuk informasi lebih lanjut, lihat Buat dan ikat tag kustom.

  2. Konfigurasikan paket penyebaran Helm chart.

    1. Di bagian Deployment Package Content, atur Deployment Package Type menjadi Helm chart.

    2. Klik Obtain Access Credential untuk mendapatkan kunci sementara untuk namespace tersebut. Kemudian, jalankan perintah yang diberikan di terminal Anda.

      Di tab Helm chart, halaman menampilkan proses tiga langkah. Langkah 1: Masuk ke repositori image dengan menjalankan perintah helm registry login. Langkah 2: Beri tag pada chart dan dorong ke repositori image. Langkah 3: Masukkan nama chart, misalnya, chart-name, lalu jalankan perintah helm push chart-name.tgz oci://xxx untuk menyelesaikan proses dorong.

    3. Setelah Anda mengunggah Helm chart ke repositori ACR Compute Nest, pilih chart yang baru diunggah tersebut dan klik Publish Deployment Package.

  3. Lihat paket penyebaran.

    1. Kembali ke halaman Paket Penyebaran Layanan. Klik nama paket penyebaran Anda untuk membuka halaman Deployment Package Details dan periksa progres pembuatan.

    2. Saat status berubah menjadi Available, paket penyebaran siap digunakan.

Gunakan paket Helm chart

Bagian ini menjelaskan cara menggunakan paket penyebaran Helm chart, dengan contoh pembuatan layanan privat.

  1. Masuk ke Konsol Compute Nest.

  2. Di panel navigasi sebelah kiri, klik My Services. Di tab Created Services pada halaman Layanan Saya, klik Create Service.

  3. Di halaman Buat Layanan Baru, pilih Custom launch sebagai metode pembuatan, pilih Private Service sebagai jenis layanan, lalu klik Next: Configure Settings.

  4. Masukkan informasi dasar untuk layanan dan berikan templat ROS.

    Dalam templat ROS layanan, tambahkan placeholder paket penyebaran Helm chart {{ computenest::helmchart::test}} dan placeholder rahasia tarik {{ computenest::helm::dockerconfigjson}}.

    Contoh templat

    Catatan

    Templat contoh ini hanya untuk tujuan pengujian.

    ROSTemplateFormatVersion: '2015-09-01'
    Description:
      id: penerapan ack baru
      zh-cn: new ack
    Parameters:
      PayType:
        Type: String
        Label:
          id: Jenis Biaya Instance ECS
          zh-cn: 付费类型
        Default: PostPaid
        AllowedValues:
          - PostPaid
          - PrePaid
        AssociationProperty: ChargeType
        AssociationPropertyMetadata:
          LocaleKey: InstanceChargeType
      PayPeriodUnit:
        Type: String
        Label:
          id: Unit Periode Pembayaran
          zh-cn: 购买资源时长周期
        Default: Month
        AllowedValues:
          - Month
          - Year
        AssociationProperty: PayPeriodUnit
        AssociationPropertyMetadata:
          Visible:
            Condition:
              Fn::Not:
                Fn::Equals:
                  - ${PayType}
                  - PostPaid
      PayPeriod:
        Type: Number
        Description:
          id: Saat durasi langganan diukur dalam bulan, nilai yang valid untuk Periode adalah 1 hingga 9, 12, 24, 36, 48, dan 60. <b><font color='red'>Parameter ini hanya valid saat instance ECS berbasis langganan.</font>
          zh-cn: 当购买资源时长为Month时,Period取值:1~9 <b><font color='red'>当ECS实例类型为PrePaid有效</font>
        Label:
          id: Periode
          zh-cn: 购买资源时长
        Default: 1
        AllowedValues:
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
        AssociationProperty: PayPeriod
        AssociationPropertyMetadata:
          Visible:
            Condition:
              Fn::Not:
                Fn::Equals:
                  - ${PayType}
                  - PostPaid
      ZoneId:
        Type: String
        AssociationProperty: ALIYUN::ECS::Instance:ZoneId
        Label:
          id: ID Zona
          zh-cn: 可用区
      EcsInstanceType:
        Type: String
        Label:
          id: Jenis Instance
          zh-cn: 实例类型
        AssociationProperty: ALIYUN::ECS::Instance::InstanceType
        AssociationPropertyMetadata:
          ZoneId: ${ZoneId}
          InstanceChargeType: ${InstanceChargeType}
      EcsInstancePassword:
        NoEcho: true
        Type: String
        AllowedPattern: '[0-9A-Za-z\_\-\&:;''<>,=%`~!@#\(\)\$\^\*\+\|\{\}\[\]\.\?\/]+$'
        Label:
          id: Kata Sandi Instance
          zh-cn: 实例密码
        ConstraintDescription:
          id: Kata sandi harus memiliki panjang 8 hingga 30 karakter dan berisi setidaknya tiga dari jenis karakter berikut: huruf besar, huruf kecil, angka, dan karakter khusus ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/
          zh-cn: 长度 8-30,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ 中的特殊符号)
        MinLength: 8
        MaxLength: 30
        AssociationProperty: ALIYUN::ECS::Instance::Password
      ServerSystemDiskCategory:
        Type: String
        AllowedValues:
          - cloud_efficiency
          - cloud_ssd
          - cloud_essd
        AssociationPropertyMetadata:
          LocaleKey: DiskCategory
          InstanceType: ${EcsInstanceType}
        Label:
          id: Kategori Disk Sistem Server
          zh-cn: Server系统盘磁盘类型
        Default: cloud_essd
      ServerSystemDiskSize:
        Type: Number
        Label:
          id: Ukuran Disk Sistem Server (GB)
          zh-cn: Server节点系统盘大小(GB)
        MinValue: 1
        Default: 500
      VpcCidrBlock:
        Type: String
        Label:
          id: Blok IPv4 CIDR VPC
          zh-cn: 专有网络IPv4网段
        Description:
          zh-cn: VPC的ip地址段范围,您可以使用以下的ip地址段或其子网:<br><font color='green'>[10.0.0.0/8]</font><br><font color='green'>[172.16.0.0/12]</font><br><font color='green'>[192.168.0.0/16]</font>
          id: 'Rentang alamat IP VPC dalam format blok CIDR. <br>Anda dapat menggunakan rentang alamat IP berikut dan subnetnya: <br><font color=''green''>[10.0.0.0/8]</font><br><font color=''green''>[172.16.0.0/12]</font><br><font color=''green''>[192.168.0.0/16]</font>'
        Default: 192.168.0.0/16
        AssociationProperty: ALIYUN::VPC::VPC::CidrBlock
      VSwitchCidrBlock:
        Type: String
        Label:
          id: Blok CIDR VSwitch
          zh-cn: 交换机子网网段
        Description:
          zh-cn: 必须属于VPC的子网段。
          id: Blok CIDR harus merupakan subnet dari blok CIDR VPC.
        Default: 192.168.1.0/24
        AssociationProperty: ALIYUN::VPC::VSwitch::CidrBlock
        AssociationPropertyMetadata:
          VpcCidrBlock: VpcCidrBlock
      PodCidr:
        Type: String
        Description:
          zh-cn: 请填写有效的私有网段,即以下网段及其子网:10.0.0.0/8,172.16-31.0.0/12-16,192.168.0.0/16<br>不能与 VPC 及 VPC 内已有 Kubernetes 集群使用的网段重复。<font color='blue'><b>创建成功后不能修改</font>
          id: 'Tentukan blok CIDR pribadi yang valid dari rentang berikut atau subnetnya: 10.0.0.0/8, 172.16.0.0/12-16, dan 192.168.0.0/16.Blok CIDR tidak boleh tumpang tindih dengan blok CIDR VPC atau kluster Kubernetes yang ada di VPC. <font color=''blue''><b>Ini tidak dapat diubah setelah pembuatan.</font>'
        Label:
          zh-cn: Pod 网络 CIDR
          id: CIDR Jaringan Pod
        AssociationProperty: ALIYUN::CS::ManagedKubernetesCluster::PodCidr
        Default: 10.0.0.0/16
      ServiceCidr:
        Type: String
        Description:
          zh-cn: 可选范围:10.0.0.0/16-24,172.16-31.0.0/16-24,192.168.0.0/16-24不能与 VPC 及 VPC 内已有 Kubernetes 集群使用的网段重复。<font color='blue'><b>创建成功后不能修改</font>
          id: 'Rentang yang didukung: 10.0.0.0/16-24, 172.16.0.0/16-24, dan 192.168.0.0/16-24.Blok CIDR tidak boleh tumpang tindih dengan blok CIDR VPC atau kluster Kubernetes yang ada di VPC. <font color=''blue''><b>Ini tidak dapat diubah setelah pembuatan.</font>'
        Label:
          zh-cn: Service CIDR
          id: CIDR Layanan
        AssociationProperty: ALIYUN::CS::ManagedKubernetesCluster::ServiceCidr
        Default: 172.16.0.0/16
    Resources:
      EcsVpc:
        Type: ALIYUN::ECS::VPC
        Properties:
          VpcName:
            Ref: ALIYUN::StackName
          CidrBlock:
            Ref: VpcCidrBlock
      EcsVSwitch:
        Type: ALIYUN::ECS::VSwitch
        Properties:
          VSwitchName:
            Ref: ALIYUN::StackName
          VpcId:
            Ref: EcsVpc
          ZoneId:
            Ref: ZoneId
          CidrBlock:
            Ref: VSwitchCidrBlock
      EcsSecurityGroup:
        Type: ALIYUN::ECS::SecurityGroup
        Properties:
          SecurityGroupName:
            Ref: ALIYUN::StackName
          VpcId:
            Ref: EcsVpc
          SecurityGroupEgress:
            - PortRange: '-1/-1'
              Priority: 1
              IpProtocol: all
              DestCidrIp: 0.0.0.0/0
              NicType: intranet
          SecurityGroupIngress:
            - PortRange: '-1/-1'
              Priority: 1
              IpProtocol: all
              SourceCidrIp:
                Ref: PodCidr
              Description: Izinkan akses dari jaringan pod.
              NicType: intranet
            - PortRange: '-1/-1'
              Priority: 1
              IpProtocol: all
              SourceCidrIp:
                Ref: VpcCidrBlock
              Description: Izinkan akses dari jaringan VPC.
              NicType: intranet
            - PortRange: '-1/-1'
              Priority: 1
              IpProtocol: icmp
              SourceCidrIp: 0.0.0.0/0
              Description: Izinkan akses melalui ICMP.
              NicType: intranet
            - Priority: 1
              PortRange: 22/22
              SourceCidrIp: 0.0.0.0/0
              IpProtocol: tcp
            - Priority: 1
              PortRange: 443/443
              SourceCidrIp: 0.0.0.0/0
              IpProtocol: tcp
            - Priority: 1
              PortRange: 3001/3001
              SourceCidrIp: 0.0.0.0/0
              IpProtocol: tcp
            - Priority: 1
              PortRange: 31001/31001
              SourceCidrIp: 0.0.0.0/0
              IpProtocol: tcp
            - Priority: 1
              PortRange: 9000/9000
              SourceCidrIp: 0.0.0.0/0
              IpProtocol: tcp
            - Priority: 1
              PortRange: 3389/3389
              SourceCidrIp: 0.0.0.0/0
              IpProtocol: tcp
            - Priority: 1
              PortRange: 80/80
              SourceCidrIp: 0.0.0.0/0
              IpProtocol: tcp
      CsghubServerInstance:
        Type: ALIYUN::ECS::InstanceGroup
        Properties:
          ZoneId:
            Ref: ZoneId
          IoOptimized: optimized
          InstanceChargeType:
            Ref: PayType
          PeriodUnit:
            Ref: PayPeriodUnit
          Period:
            Ref: PayPeriod
          VpcId:
            Ref: EcsVpc
          VSwitchId:
            Ref: EcsVSwitch
          SecurityGroupId:
            Ref: EcsSecurityGroup
          SystemDiskCategory:
            Ref: ServerSystemDiskCategory
          SystemDiskSize:
            Ref: ServerSystemDiskSize
          MaxAmount: 1
          ImageId: centos_7
          InstanceType:
            Ref: EcsInstanceType
          Password:
            Ref: EcsInstancePassword
          InternetMaxBandwidthOut: 50
          InstanceName:
            Fn::Join:
              - '-'
              - - Ref: ALIYUN::StackName
                - '[1,4]'
      InstanceRunCommand:
        Type: ALIYUN::ECS::RunCommand
        Properties:
          Type: RunShellScript
          Sync: true
          CommandContent:
            Fn::Sub:
              - |
                #!/bin/bash
                yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
                yum makecache fast
                yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin jq
                mkdir -p /etc/docker
                tee /etc/docker/daemon.json <<-'EOF'
                {
                    "registry-mirrors": [
                        "https://docker.m.daocloud.io",
                        "https://mirror.baidubce.com",
                        "https://dockerproxy.com",
                        "https://mirror.iscas.ac.cn",
                        "https://huecker.io",
                        "https://dockerhub.timeweb.cloud",
                        "https://noohub.ru",
                        "https://vlgh0kqj.mirror.aliyuncs.com"
                    ]
                }
                EOF
                systemctl enable docker
                systemctl start docker
                sleep 10
                # Instal Server
                wget '{{ computenest::file::csgserver }}' -O csghub-main.tar.gz
                tar -xvf csghub-main.tar.gz
                cd /root/csghub-main/deploy/all_in_one
                sed -i 's/SERVER_DOMAIN=[^,)]*/SERVER_DOMAIN=${PublicAddress}/' .env
                sleep 10
                chmod 777 startup.sh
                ./startup.sh
                sleep 10
                docker compose restart user_server
                sleep 10
                docker compose restart nginx
                docker compose restart user_server
                # Eksekusi perintah yang berhasil menandakan WaitCondition untuk menyelesaikan penantiannya.
              - PublicAddress: 
                  Fn::Select:
                    - 0
                    - Fn::GetAtt:
                        - CsghubServerInstance
                        - PublicIps
          InstanceIds:
            Fn::GetAtt:
              - CsghubServerInstance
              - InstanceIds
          Timeout: 3600
  5. Di bagian Deployment Package Association, konfigurasikan Associate Helm. Klik Select Deployment Package, pilih paket penyebaran dan versi yang diinginkan dari kotak dialog, lalu klik OK untuk mengaitkannya dengan placeholder.

    Di kotak dialog, Identifier asosiasi ditampilkan dalam format seperti {{ computenest::helmchart::wordpress }}. Anda hanya dapat memilih paket penyebaran Helm chart. Setelah asosiasi selesai, bagian Helm Association di bagian bawah halaman menampilkan pemetaan antara identifier asosiasi dan paket penyebaran yang dikaitkan.

  6. Setelah membuat dan berhasil menguji layanan, periksa layanan tersebut terhadap kriteria tinjauan Compute Nest dan kirimkan layanan untuk ditinjau. Untuk informasi lebih lanjut tentang kriteria tinjauan, lihat Kriteria tinjauan.

  7. Setelah layanan dibuat, Anda dapat melihat asosiasi paket penyebaran di halaman detail layanan.

    Di halaman detail layanan, klik tab Deployment Association, lalu klik sub-tab Helm Association. Anda dapat melihat identifier asosiasi (misalnya, {{ computenest::helmchart::wordpress }}) dan informasi paket penyebaran beserta nomor versinya.

Dokumen terkait

  • Untuk informasi lebih lanjut tentang pembuatan layanan, lihat Buat layanan.

  • Jika paket penyebaran atau salah satu versinya tidak lagi diperlukan, Anda dapat menghapusnya. Untuk informasi lebih lanjut, lihat Hapus paket penyebaran.

  • Untuk mengubah konten atau informasi lain dari paket penyebaran, buat versi baru. Untuk informasi lebih lanjut, lihat Buat versi baru.

  • Untuk mengonfigurasi pengaturan peningkatan paket penyebaran, lihat Konfigurasi peningkatan layanan.