Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Deploy Knative Functions

Dernière mise à jour :Aug 25, 2026

Knative Functions propose un modèle de programmation simplifié pour créer et déployer des fonctions sur Knative, en masquant les complexités liées à Knative, Kubernetes et aux conteneurs. Créez votre fonction, laissez la plateforme construire l'image du conteneur, personnalisez les paramètres de construction et de déploiement, puis déployez-la en tant que service Knative.

Prérequis

Assurez-vous d'avoir :

Étape 1 : Installer l'interface CLI func

Téléchargez le binaire func correspondant à votre système d'exploitation depuis la page des versions de func.

Exemple pour Linux :

  1. Renommez le binaire en func :

    mv <path-to-binary-file> func

    Remplacez <path-to-binary-file> par le chemin d'accès au binaire téléchargé, par exemple func_linux_amd64.

  2. Rendez le binaire exécutable :

    chmod +x func
  3. Déplacez le binaire vers un répertoire inclus dans votre variable PATH :

    mv func /usr/local/bin
  4. Vérifiez l'installation :

    func version

    L'affichage de la version confirme la réussite de l'installation.

Étape 2 : Créer une fonction

Knative Functions prend en charge les environnements d'exécution suivants, tous compatibles avec les invocations HTTP et CloudEvent :

Cet exemple utilise Go.

  1. Créez une fonction :

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

    Exemple : créez une fonction Go nommée hello :

    func create -l go hello

    Sortie attendue :

    Created go function in /usr/local/bin/hello
  2. Listez les fichiers du répertoire hello :

    ls hello/

    Sortie attendue :

    func.yaml  go.mod  handle.go  handle_test.go  README.md
  3. Consultez le fichier func.yaml généré dans le répertoire hello :

    cat func.yaml

    Sortie attendue :

    specVersion: 0.35.0
    name: hello
    runtime: go
    created: 2023-12-13T06:48:45.419587147Z
  4. Modifiez le fichier func.yaml pour configurer le registre et les paramètres de déploiement. Exemple complet :

    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

    Champs clés :

    Champ Description
    registry Registre de conteneurs pour les images construites. Exemple : registry.cn-beijing.aliyuncs.com/knative-release-xxx
    build.builderImages.pack Image de construction pour la fonction. Exemple : registry-cn-beijing.ack.aliyuncs.com/acs/knative-func-builder-jammy-tiny:latest
    deploy.namespace Namespace Kubernetes cible pour la fonction.

Étape 3 : Déployer la fonction

Exécutez la commande func deploy depuis le répertoire hello. Cette commande utilise le nom du projet comme nom du service Knative et le combine avec le registre pour construire l'adresse de l'image.

func deploy

Sortie attendue

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

Vérifiez le déploiement :

func info

Sortie attendue :

Function name:
  hello
Function is built in image:

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

Étape 4 : Appeler la fonction

  1. Ajoutez une entrée au fichier hosts pour mapper le domaine du service Knative à l'IP de la passerelle :

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

    Remplacez 121.xx.xxx.xx par l'IP de votre passerelle Knative et hello.default.example.com par le domaine de votre déploiement.

  2. Appelez la fonction :

    func invoke

    Sortie attendue :

    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:

    La sortie confirme que la fonction a reçu et traité la requête HTTP.

  3. Vérifiez que les pods de la fonction ont été créés :

    kubectl get pod

    Sortie attendue :

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

Étapes suivantes

Consultez la rubrique FAQ Knative pour obtenir des réponses aux questions courantes sur Knative dans ACK.