Création de ressources IngressClassParameters, IngressClass et entrantes
Découvrez comment créer les ressources liées à l'entrée Kubernetes requises pour utiliser le contrôleur d'entrée natif OCI.
Après avoir installé le contrôleur d'entrée natif OCI (soit en tant que programme autonome, soit en tant qu'extension de cluster), vous devez créer un certain nombre de ressources Kubernetes différentes afin de l'utiliser :
- Ressource
IngressClassParameters: cette ressource personnalisée indique les détails de l'équilibreur de charge OCI à créer pour le contrôleur d'entrée natif OCI. - Ressource
IngressClass: cette ressource est utilisée pour créer un équilibreur de charge. La ressourceIngressClassfait référence à la ressourceIngressClassParameterspour la forme de l'équilibreur de charge à créer et indique si le contrôleur d'entrée natif OCI est le contrôleur par défaut pour les ressourcesIngress. - Ressource
Ingress: cette ressource indique les règles permettant d'acheminer le trafic externe vers les services back-end.
Créez chacune des ressources à son tour en définissant la ressource dans un fichier .yaml comme indiqué dans cette rubrique, puis en exécutant la commande de création kubectl pour créer chaque ressource.
Créer une ressource IngressClassParameters
Utilisez la ressource IngressClassParameters personnalisée afin d'indiquer les détails de l'équilibreur de charge OCI à créer pour le contrôleur d'entrée natif OCI.
Définissez la ressource dans un fichier .yaml. Exemple minimal :
apiVersion: "ingress.oraclecloud.com/v1beta1"
kind: IngressClassParameters
metadata:
name: <icp-name>
namespace: <ns-name>
spec:
compartmentId: "<compartment-ocid>"
subnetId: "<subnet-ocid>"
loadBalancerName: "<lb-name>"
isPrivate: false
maxBandwidthMbps: <max-bw>
minBandwidthMbps: <min-bw>
reservedPublicAddressId: <reserved-ip-ocid>où :
name: <icp-name>est le nom de la nouvelle ressourceIngressClassParameters.name: <ns-name>est le nom de l'espace de noms dans lequel créer la ressourceIngressClassParameters.compartmentId: "<compartment-ocid>"est l'OCID du compartiment auquel le nouvel équilibreur de charge doit appartenir.subnetId: "<subnet-ocid>"est l'OCID du sous-réseau de l'équilibreur de charge.loadBalancerName: "<lb-name>"est le nom à attribuer au nouvel équilibreur de charge.maxBandwidthMbps: <max-bw>correspond à la quantité supérieure de bande passante que le nouvel équilibreur de charge doit prendre en charge pendant la période de pic de charge globale.minBandwidthMbps: <min-bw>correspond à la quantité de bande passante que le nouvel équilibreur de charge doit toujours disposer pour fournir une préparation instantanée aux charges globales.reservedPublicAddressId: <reserved-ip-ocid>est éventuellement l'OCID d'une ressource d'adresse IP publique réservée existante à utiliser pour l'équilibreur de charge. Si vous n'indiquez pas d'adresse IP publique réservée, une adresse IP aléatoire est affectée à l'équilibreur de charge. Pour plus d'informations sur la création d'une adresse IP publique réservée, reportez-vous à Création d'une adresse IP publique réservée.
Par exemple :
apiVersion: "ingress.oraclecloud.com/v1beta1"
kind: IngressClassParameters
metadata:
name: native-ic-params
namespace: acme-namespace
spec:
compartmentId: "ocid1.compartment.oc1..aaaaaaaa______ddq"
subnetId: "ocid1.subnet.oc1.iad.aaaaaaaa______dba"
loadBalancerName: "native-ic-lb"
isPrivate: false
maxBandwidthMbps: 400
minBandwidthMbps: 100
Créez la ressource en saisissant kubectl create -f <filename>.yaml
Créer une ressource IngressClass
Utilisez la ressource IngressClass pour associer une ressource Ingress au contrôleur d'entrée natif OCI et à la ressource IngressClassParameters. Vous pouvez également utiliser la ressource IngressClass pour indiquer si le contrôleur d'entrée natif OCI est le contrôleur par défaut des ressources Ingress.
Définissez la ressource dans un fichier .yaml. Exemple minimal :
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
name: <ic-name>
annotations:
ingressclass.kubernetes.io/is-default-class: "<true|false>"
spec:
controller: oci.oraclecloud.com/native-ingress-controller
parameters:
scope: Namespace
namespace: <ns-name>
apiGroup: ingress.oraclecloud.com
kind: ingressclassparameters
name: <icp-name>où :
name: <ic-name>est le nom de la nouvelle ressourceIngressClass.ingressclass.kubernetes.io/is-default-class: "<true|false>"indique siIngressClassest la valeurIngressClasspar défaut à utiliser si une ressourceIngressn'indique pas explicitement une valeuringressClassName. Il est recommandé d'indiquer une valeur par défautIngressClass.controller: oci.oraclecloud.com/native-ingress-controllerindique le contrôleur d'entrée natif OCI en tant que contrôleur d'entrée à utiliser.namespace: <ns-name>est le nom de l'espace de noms contenant les paramètres à utiliser lorsque.spec.parameters.scopeest défini surNamespace.name: <icp-name>est le nom de la ressourceIngressClassParametersqui indique les détails de l'équilibreur de charge OCI à créer pour le contrôleur d'entrée natif OCI.
Par exemple :
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
name: native-ic-ingress-class
annotations:
ingressclass.kubernetes.io/is-default-class: "true"
spec:
controller: oci.oraclecloud.com/native-ingress-controller
parameters:
scope: Namespace
namespace: acme-namespace
apiGroup: ingress.oraclecloud.com
kind: ingressclassparameters
name: native-ic-params
Créez la ressource en saisissant kubectl create -f <filename>.yaml
Créer une ressource entrante
Utilisez la ressource Ingress pour indiquer des règles afin d'acheminer le trafic externe vers les services back-end.
Définissez la ressource dans un fichier .yaml. Exemple minimal :
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: <i-name>
spec:
ingressClassName: <ic-name>
rules:
<ingress-rule>
name: <i-name>est le nom de la ressourceIngress.ingressClassName: <ic-name>est le nom de la ressourceIngressClassà utiliser. La ressourceIngressClassindique à la fois le contrôleur d'entrée à utiliser et le nom de la ressourceIngressClassParametersqui contient les détails de l'équilibreur de charge OCI à créer pour le contrôleur d'entrée natif OCI. SiingressClassNamen'est pas spécifié, le paramètreIngressClasspar défaut du cluster est utilisé (IngressClassavec l'annotationingressclass.kubernetes.io/is-default-class: "true").<ingress-rule>est une règle comprenant éventuellement un hôte et/ou un (ou plusieurs) éléments de chemin. Chaque chemin possède un back-end (nom de service et numéro de port). Le contrôleur entrant achemine les demandes qui correspondent au nom d'hôte d'une règle (si indiqué) et au chemin d'accès au back-end associé. Lorsque vous indiquez un chemin dans une règle :- utilisez
pathType: Exactpour indiquer que le chemin de la demande entrante doit correspondre exactement au chemin de la règle pour que la demande soit acheminée vers le back-end associé à la règle - utilisez
pathType:Prefixpour indiquer que la partie de début du chemin de la demande entrante doit correspondre au chemin de la règle pour que la demande soit acheminée vers le back-end associé à la règle
Reportez-vous à Spécification de règles de routage pour le contrôleur entrant natif OCI.
- utilisez
Par exemple :
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: native-ic-ingress
spec:
ingressClassName: native-ic-ingress-class
rules:
- host: "foo.bar.com"
http:
paths:
- pathType: Exact
path: "/testecho1"
backend:
service:
name: testecho1
port:
number: 80
Créez la ressource en saisissant kubectl create -f <filename>.yaml