All Products
Search
Document Center

Container Service for Kubernetes:Deploy Knative Functions

Last Updated:Aug 21, 2026

Knative Functions menyediakan model pemrograman yang disederhanakan untuk membuat dan men-deploy fungsi di Knative dengan menyembunyikan detail implementasi Knative, Kubernetes, dan kontainer. Buat fungsi Anda, biarkan platform membangun gambar kontainer, sesuaikan pengaturan pembuatan dan penerapan gambar, lalu terapkan sebagai Knative Service.

Prasyarat

Pastikan Anda telah:

Langkah 1: Instal CLI func

Unduh biner func untuk sistem operasi Anda dari func release page.

Contoh untuk Linux:

  1. Ubah nama biner menjadi func:

    mv <path-to-binary-file> func

    Ganti <path-to-binary-file> dengan path biner yang diunduh, misalnya func_linux_amd64.

  2. Jadikan biner dapat dieksekusi:

    chmod +x func
  3. Pindahkan biner ke direktori dalam PATH Anda:

    mv func /usr/local/bin
  4. Verifikasi instalasi:

    func version

    Output versi mengonfirmasi bahwa instalasi berhasil.

Langkah 2: Buat fungsi

Knative Functions mendukung runtime berikut, semuanya kompatibel dengan pemanggilan HTTP dan CloudEvent:

Contoh ini menggunakan Go.

  1. Buat fungsi:

    func create -l <language> <function-name>

    Contoh: Buat fungsi Go bernama hello:

    func create -l go hello

    Output yang diharapkan:

    Created go function in /usr/local/bin/hello
  2. Daftar file dalam direktori hello:

    ls hello/

    Output yang diharapkan:

    func.yaml  go.mod  handle.go  handle_test.go  README.md
  3. Tinjau func.yaml yang dihasilkan di direktori hello:

    cat func.yaml

    Output yang diharapkan:

    specVersion: 0.35.0
    name: hello
    runtime: go
    created: 2023-12-13T06:48:45.419587147Z
  4. Edit func.yaml untuk mengonfigurasi registri dan pengaturan penerapan. Contoh lengkap:

    specVersion: 0.35.0
    name: hello
    runtime: go
    created: 2023-11-29T14:47:34.101658+08:00
    registry: registry.cn-beijing.aliyuncs.com/knative-release-xxx
    image: registry.cn-beijing.aliyuncs.com/knative-release-xxx/hello:latest
    build:
      builderImages:
        pack: registry-cn-beijing.ack.aliyuncs.com/acs/knative-func-builder-jammy-tiny:latest
    deploy:
      namespace: default

    Bidang utama:

    Field Description
    registry Registri kontainer untuk gambar yang dibangun. Contoh: registry.cn-beijing.aliyuncs.com/knative-release-xxx
    build.builderImages.pack Gambar builder untuk fungsi. Contoh: registry-cn-beijing.ack.aliyuncs.com/acs/knative-func-builder-jammy-tiny:latest
    deploy.namespace Namespace Kubernetes target untuk fungsi.

Langkah 3: Terapkan fungsi

Jalankan func deploy dari direktori hello. Perintah ini menggunakan nama proyek sebagai nama Knative Service dan menggabungkannya dengan registri untuk membentuk alamat gambar.

func deploy

Expected output

Building function image
Still building
Still building
Yes, still building
Don't give up on me
Still building
This is taking a while
Still building
Still building
Yes, still building
Function built: registry.cn-beijing.aliyuncs.com/knative-release-xxx/hello:latest
Pushing function image to the registry "registry.cn-beijing.aliyuncs.com" using the "xxx" user credentials
Deploying function to the cluster
Function deployed in namespace "default" and exposed at URL:
   http://hello.default.example.com

Verifikasi penerapan:

func info

Output yang diharapkan:

Function name:
  hello
Function is built in image:

Function is deployed in namespace:
  default
Routes:
  http://hello.default.example.com

Langkah 4: Panggil fungsi

  1. Tambahkan entri file hosts untuk memetakan domain Knative Service ke IP gateway:

    121.xx.xxx.xx hello.default.example.com

    Ganti 121.xx.xxx.xx dengan IP gateway Knative Anda dan hello.default.example.com dengan domain penerapan Anda.

  2. Panggil fungsi:

    func invoke

    Output yang diharapkan:

    POST / HTTP/1.1 hello.default.example.com
      Content-Type: application/json
      Forwarded: for=192.168.102.101;proto=http
      Knative-Serving-Default-Route: true
      X-Forwarded-Proto: http
      User-Agent: Go-http-client/1.1
      Content-Length: 25
      Accept-Encoding: gzip
      K-Proxy-Request: activator
      X-Forwarded-For: 192.168.102.101, 192.168.102.97
      X-Request-Id: 3d82cfc8-f9df-4935-84cd-c6561b4587f6
    Body:

    Output tersebut mengonfirmasi bahwa fungsi menerima dan menangani permintaan HTTP.

  3. Verifikasi bahwa Pod fungsi telah dibuat:

    kubectl get pod

    Output yang diharapkan:

    NAME                                      READY   STATUS    RESTARTS   AGE
    hello-00001-deployment-7b65fcdc4c-gfcbp   2/2     Running   0          34

Langkah selanjutnya

Lihat Knative FAQ untuk pertanyaan umum tentang Knative di ACK.