3.5. Comprendre les mesures personnalisées autoscaler déclenchent les authentifications
L’authentification de déclencheur vous permet d’inclure des informations d’authentification dans un objet mis à l’échelle ou un travail à l’échelle qui peut être utilisé par les conteneurs associés. Il est possible d’utiliser des authentifications de déclenchement pour transmettre Red Hat OpenShift Service sur les secrets AWS, les mécanismes d’authentification pod natifs de plate-forme, les variables d’environnement, etc.
Définissez un objet TriggerAuthentication dans le même espace de noms que l’objet que vous souhaitez mettre à l’échelle. Cette authentification de déclenchement ne peut être utilisée que par les objets de cet espace de noms.
Alternativement, pour partager des informations d’identification entre des objets dans plusieurs espaces de noms, vous pouvez créer un objet ClusterTriggerAuthentication qui peut être utilisé dans tous les espaces de noms.
Les authentifications de déclenchement et l’authentification de déclenchement de cluster utilisent la même configuration. Cependant, une authentification de déclencheur de cluster nécessite un paramètre de type supplémentaire dans la référence d’authentification de l’objet mis à l’échelle.
Exemple secret pour l’authentification de base
apiVersion: v1
kind: Secret
metadata:
name: my-basic-secret
namespace: default
data:
username: "dXNlcm5hbWU="
password: "cGFzc3dvcmQ="
- 1
- Le nom d’utilisateur et le mot de passe à fournir à l’authentification de déclenchement. Les valeurs d’une strophe de données doivent être codées en base-64.
Exemple d’authentification de déclenchement à l’aide d’un secret pour l’authentification de base
kind: TriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata:
name: secret-triggerauthentication
namespace: my-namespace
spec:
secretTargetRef:
- parameter: username
name: my-basic-secret
key: username
- parameter: password
name: my-basic-secret
key: password
- 1
- Indique l’espace de noms de l’objet que vous souhaitez mettre à l’échelle.
- 2
- Indique que cette authentification déclencheur utilise un secret pour l’autorisation lors de la connexion au point de terminaison des métriques.
- 3
- Indique le paramètre d’authentification à fournir en utilisant le secret.
- 4
- Indique le nom du secret à utiliser.
- 5
- Indique la clé dans le secret à utiliser avec le paramètre spécifié.
Exemple d’authentification de cluster avec un secret pour l’authentification de base
kind: ClusterTriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata:
name: secret-cluster-triggerauthentication
spec:
secretTargetRef:
- parameter: username
name: my-basic-secret
key: username
- parameter: password
name: my-basic-secret
key: password
- 1
- Il est à noter qu’aucun espace de noms n’est utilisé avec une authentification de déclenchement de cluster.
- 2
- Indique que cette authentification déclencheur utilise un secret pour l’autorisation lors de la connexion au point de terminaison des métriques.
- 3
- Indique le paramètre d’authentification à fournir en utilisant le secret.
- 4
- Indique le nom du secret à utiliser.
- 5
- Indique la clé dans le secret à utiliser avec le paramètre spécifié.
Exemple secret avec les détails de l’autorité de certification (CA)
apiVersion: v1
kind: Secret
metadata:
name: my-secret
namespace: my-namespace
data:
ca-cert.pem: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0...
client-cert.pem: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0...
client-key.pem: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0t...
Exemple d’authentification de déclenchement à l’aide d’un secret pour les détails de l’AC
kind: TriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata:
name: secret-triggerauthentication
namespace: my-namespace
spec:
secretTargetRef:
- parameter: key
name: my-secret
key: client-key.pem
- parameter: ca
name: my-secret
key: ca-cert.pem
- 1
- Indique l’espace de noms de l’objet que vous souhaitez mettre à l’échelle.
- 2
- Indique que cette authentification déclencheur utilise un secret pour l’autorisation lors de la connexion au point de terminaison des métriques.
- 3
- Indique le type d’authentification à utiliser.
- 4
- Indique le nom du secret à utiliser.
- 5
- Indique la clé dans le secret à utiliser avec le paramètre spécifié.
- 6
- Indique le paramètre d’authentification pour une CA personnalisée lors de la connexion au point de terminaison des métriques.
- 7
- Indique le nom du secret à utiliser.
- 8
- Indique la clé dans le secret à utiliser avec le paramètre spécifié.
Exemple secret avec un jeton porteur
apiVersion: v1
kind: Secret
metadata:
name: my-secret
namespace: my-namespace
data:
bearerToken: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXV"
- 1
- Indique un jeton porteur à utiliser avec l’authentification du porteur. La valeur d’une strophe de données doit être encodée base-64.
Exemple d’authentification de déclenchement avec un jeton porteur
kind: TriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata:
name: token-triggerauthentication
namespace: my-namespace
spec:
secretTargetRef:
- parameter: bearerToken
name: my-secret
key: bearerToken
- 1
- Indique l’espace de noms de l’objet que vous souhaitez mettre à l’échelle.
- 2
- Indique que cette authentification déclencheur utilise un secret pour l’autorisation lors de la connexion au point de terminaison des métriques.
- 3
- Indique le type d’authentification à utiliser.
- 4
- Indique le nom du secret à utiliser.
- 5
- Indique la clé dans le jeton à utiliser avec le paramètre spécifié.
Exemple d’authentification de déclenchement avec une variable d’environnement
kind: TriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata:
name: env-var-triggerauthentication
namespace: my-namespace
spec:
env:
- parameter: access_key
name: ACCESS_KEY
containerName: my-container
- 1
- Indique l’espace de noms de l’objet que vous souhaitez mettre à l’échelle.
- 2
- Indique que cette authentification de déclenchement utilise des variables d’environnement pour l’autorisation lors de la connexion au point de terminaison des métriques.
- 3
- Indiquez le paramètre à définir avec cette variable.
- 4
- Indiquez le nom de la variable d’environnement.
- 5
- Facultatif : Spécifiez un conteneur qui nécessite une authentification. Le conteneur doit être dans la même ressource que celle référencée par scaleTargetRef dans l’objet mis à l’échelle.
Exemple d’authentification de déclenchement avec les fournisseurs d’authentification de pod
kind: TriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata:
name: pod-id-triggerauthentication
namespace: my-namespace
spec:
podIdentity:
provider: aws-eks
- 1
- Indique l’espace de noms de l’objet que vous souhaitez mettre à l’échelle.
- 2
- Indique que cette authentification de déclencheur utilise une authentification pod native de plate-forme lors de la connexion au point de terminaison des métriques.
- 3
- Indique une identité de pod. Les valeurs prises en charge ne sont pas, azure, gcp, aws-eks, ou aws-kiam. La valeur par défaut n’est pas.
Ressources supplémentaires
- Informations sur Red Hat OpenShift Service sur AWS secrets, voir Fournir des données sensibles aux pods.
3.5.1. À l’aide d’authentifications de déclenchement Copier lienLien copié sur presse-papiers!
Les authentifications de déclenchement et les authentifications de déclenchement de clusters sont utilisées en utilisant une ressource personnalisée pour créer l’authentification, puis ajouter une référence à un objet à l’échelle ou à une tâche mise à l’échelle.
Conditions préalables
- Le Custom Metrics Autoscaler Operator doit être installé.
Lorsque vous utilisez un secret, l’objet secret doit exister, par exemple:
Exemple secret
apiVersion: v1 kind: Secret metadata: name: my-secret data: user-name: <base64_USER_NAME> password: <base64_USER_PASSWORD>
Procédure
Créez l’objet TriggerAuthentication ou ClusterTriggerAuthentication.
Créer un fichier YAML qui définit l’objet:
Exemple d’authentification de déclenchement avec un secret
kind: TriggerAuthentication apiVersion: keda.sh/v1alpha1 metadata: name: prom-triggerauthentication namespace: my-namespace spec: secretTargetRef: - parameter: user-name name: my-secret key: USER_NAME - parameter: password name: my-secret key: USER_PASSWORDCréer l’objet TriggerAuthentication:
$ oc create -f <filename>.yaml
Créer ou modifier un fichier ScaledObject YAML qui utilise l’authentification de déclencheur:
Créez un fichier YAML qui définit l’objet en exécutant la commande suivante:
Exemple d’objet mis à l’échelle avec une authentification de déclenchement
apiVersion: keda.sh/v1alpha1 kind: ScaledObject metadata: name: scaledobject namespace: my-namespace spec: scaleTargetRef: name: example-deployment maxReplicaCount: 100 minReplicaCount: 0 pollingInterval: 30 triggers: - type: prometheus metadata: serverAddress: https://thanos-querier.openshift-monitoring.svc.cluster.local:9092 namespace: kedatest # replace <NAMESPACE> metricName: http_requests_total threshold: '5' query: sum(rate(http_requests_total{job="test-app"}[1m])) authModes: "basic" authenticationRef: name: prom-triggerauthentication1 kind: TriggerAuthentication2 Exemple d’objet mis à l’échelle avec une authentification de déclenchement de cluster
apiVersion: keda.sh/v1alpha1 kind: ScaledObject metadata: name: scaledobject namespace: my-namespace spec: scaleTargetRef: name: example-deployment maxReplicaCount: 100 minReplicaCount: 0 pollingInterval: 30 triggers: - type: prometheus metadata: serverAddress: https://thanos-querier.openshift-monitoring.svc.cluster.local:9092 namespace: kedatest # replace <NAMESPACE> metricName: http_requests_total threshold: '5' query: sum(rate(http_requests_total{job="test-app"}[1m])) authModes: "basic" authenticationRef: name: prom-cluster-triggerauthentication1 kind: ClusterTriggerAuthentication2 Créez l’objet mis à l’échelle en exécutant la commande suivante:
$ oc apply -f <filename>