Une passerelle ASM prend en charge le protocole HTTPS et le chargement dynamique des certificats. Pour accéder et gérer en toute sécurité les microservices construits avec Knative, utilisez une passerelle ASM afin d'activer l'accès HTTPS. Cette approche chiffre le trafic vers les points de terminaison de service, protégeant ainsi la communication entre les services et renforçant la sécurité et la fiabilité de votre architecture.
Prérequis
Vous avez créé un service Knative dans Knative sur ASM. Pour plus d'informations, consultez la rubrique Déployer une application serverless sur ASM avec Knative.
Vous avez utilisé le nom de domaine personnalisé aliyun.com dans Knative sur ASM. Pour plus d'informations, consultez la rubrique Utiliser un nom de domaine personnalisé dans Knative sur ASM.
Créer un certificat et une clé privée
Avant d'utiliser un nom de domaine, vous devez obtenir un numéro d'enregistrement ICP (Internet Content Provider) pour ce domaine. Cet exemple utilise le nom de domaine aliyun.com pour générer un certificat et une clé privée, puis les enregistre en tant que Secret.
Si vous disposez déjà d'un certificat et d'une clé privée valides pour aliyun.com, nommez le fichier de certificat aliyun.com.crt et le fichier de clé privée aliyun.com.key.
Si vous ne possédez pas de certificat ni de clé privée pour aliyun.com, générez-les à l'aide d'OpenSSL en suivant les étapes ci-dessous.
-
Exécutez la commande suivante pour créer un certificat racine et une clé privée.
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -subj '/O=myexample Inc./CN=aliyun.com' -keyout aliyun.root.key -out aliyun.root.crt -
Exécutez les commandes suivantes pour générer un certificat et une clé privée pour le serveur aliyun.com.
openssl req -out aliyun.com.csr -newkey rsa:2048 -nodes -keyout aliyun.com.key -subj "/CN=aliyun.com/O=myexample organization" openssl x509 -req -days 365 -CA aliyun.root.crt -CAkey aliyun.root.key -set_serial 0 -in aliyun.com.csr -out aliyun.com.crt
Une fois le certificat et la clé privée prêts, exécutez la commande suivante dans le contexte KubeConfig du cluster où réside le pod de la passerelle d'entrée. Cette commande crée un Secret contenant le certificat et la clé privée dans le namespace istio-system. Notez le nom du Secret.
kubectl create -n istio-system secret tls myexample-credential --key=aliyun.com.key --cert=aliyun.com.crt
Activer l'accès HTTPS
-
Enregistrez le contenu suivant sous le nom
default.yaml.apiVersion: istio.alibabacloud.com/v1beta1 kind: ASMKnativeConfig metadata: name: default spec: enabled: true useExisting: true tag: 1.4.0 domainConfig: domainName: aliyun.com # Replace this with your domain name. credentialName: myexample-credential # Replace this with the name of your Secret. -
Connectez-vous à Service Mesh avec kubectl et exécutez la commande suivante.
kubectl apply -f default.yaml
Accéder au service via HTTPS
-
Mettez à jour le fichier hosts pour ajouter un mappage pour le nouveau nom de domaine.
Par exemple :
RemarqueRemplacez
xx.xx.xxx.xxpar l'adresse IP réelle de votre passerelle. Pour savoir comment obtenir l'adresse IP de la passerelle, consultez la rubrique Obtenir l'adresse IP de la passerelle d'entrée.xx.xx.xxx.xx helloworld-go.default.aliyun.com -
Accédez au service via HTTPS.
-
Accès depuis la ligne de commande
Exécutez la commande suivante pour accéder au service via HTTPS en utilisant le certificat.
curl -k --cert aliyun.com.crt --key aliyun.com.key https://helloworld-go.default.aliyun.com # Expected output Hello Knative! -
Accès depuis un navigateur
Saisissez
https://helloworld-go.default.aliyun.comdans la barre d'adresse de votre navigateur.Hello Knative!RemarqueÉtant donné qu'un certificat auto-signé est utilisé, votre navigateur peut afficher un avertissement de sécurité lorsque vous accédez au service. Vous pouvez continuer en toute sécurité.
-
Opérations connexes
Knative sur ASM offre des capacités de déploiement canari basé sur le trafic. Lorsque vous créez un service Knative, Knative génère automatiquement la première révision du service. À chaque modification de la configuration du service, Knative crée une nouvelle révision. Vous pouvez mettre en œuvre un déploiement canari en modifiant le pourcentage de trafic routé vers différentes révisions. Pour plus d'informations, consultez la rubrique Effectuer un déploiement canari basé sur le trafic pour un service Knative dans Knative sur ASM.
Knative Serving injecte un conteneur queue-proxy dans chaque Pod. Ce conteneur rapporte les métriques de concurrence du conteneur d'application à l'Autoscaler. Après réception de ces métriques, l'Autoscaler active la mise à l'échelle automatique en ajustant le nombre de Pods dans le Deployment en fonction du nombre de requêtes concurrentes et de l'algorithme de mise à l'échelle. Pour plus d'informations, consultez la rubrique Mettre à l'échelle automatiquement un service en fonction du nombre de requêtes concurrentes.