Création de ressources IngressClassParameters, IngressClass et entrantes
Découvrez comment créer les ressources de trafic entrant Kubernetes requises pour utiliser le contrôleur de trafic entrant natif OCI.
Après avoir installé le contrôleur de trafic entrant natif OCI (en tant que programme autonome ou en tant que module complémentaire de grappe), vous devez créer un certain nombre de ressources Kubernetes différentes pour pouvoir l'utiliser :
- Ressource
IngressClassParameters
: Cette ressource personnalisée spécifie les détails de l'équilibreur de charge OCI à créer pour le contrôleur de trafic entrant natif OCI. - Ressource
IngressClass
: Cette ressource est utilisée pour créer un nouvel équilibreur de charge. La ressourceIngressClass
fait référence à la ressourceIngressClassParameters
pour la forme de l'équilibreur de charge à créer et spécifie si le contrôleur de trafic entrant natif OCI est le contrôleur par défaut pour les ressourcesIngress
. - Ressource
Ingress
: Cette ressource spécifie des règles pour acheminer le trafic externe vers les services dorsaux.
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 kubectl create pour créer chaque ressource.
Créer une ressource IngressClassParameters
Utilisez la ressource IngressClassParameters
personnalisée pour spécifier les détails de l'équilibreur de charge OCI à créer pour le contrôleur de trafic entrant natif OCI.
Définissez la ressource dans un fichier .yaml. Voici un 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 nouvelle 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 du nouvel équilibreur de charge.maxBandwidthMbps: <max-bw>
est la quantité supérieure de bande passante que le nouvel équilibreur de charge doit prendre en charge pendant les pointes de charge de travail.minBandwidthMbps: <min-bw>
représente la quantité de bande passante que le nouvel équilibreur de charge doit toujours disposer pour assurer une disponibilité instantanée pour les charges de travail.reservedPublicAddressId: <reserved-ip-ocid>
est facultativement l'OCID d'une ressource d'adresse IP publique réservée existante à utiliser pour l'équilibreur de charge. Si vous ne spécifiez 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, voir 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 entrant kubectl create -f <filename>.yaml
Créer une ressource IngressClass
Utilisez la ressource IngressClass
pour associer une ressource Ingress
au contrôleur de trafic entrant natif OCI et à la ressource IngressClassParameters
. Vous pouvez également utiliser la ressource IngressClass
pour spécifier si le contrôleur de trafic entrant natif OCI est le contrôleur par défaut pour les ressources Ingress
.
Définissez la ressource dans un fichier .yaml. Voici un 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 si cette valeurIngressClass
est la valeurIngressClass
par défaut à utiliser si une ressourceIngress
ne spécifie pas explicitement une valeuringressClassName
. Il est recommandé de spécifier une valeur par défaut pourIngressClass.
controller: oci.oraclecloud.com/native-ingress-controller
indique le contrôleur de trafic entrant natif OCI en tant que contrôleur de trafic entrant à utilisernamespace: <ns-name>
est le nom de l'espace de noms contenant les paramètres à utiliser lorsque.spec.parameters.scope
est réglé àNamespace
.name: <icp-name>
est le nom de la ressourceIngressClassParameters
qui spécifie les détails de l'équilibreur de charge OCI à créer pour le contrôleur de trafic entrant 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 entrant kubectl create -f <filename>.yaml
Créer une ressource entrante
Utilisez la ressource Ingress
pour spécifier des règles pour acheminer le trafic externe vers les services dorsaux.
Définissez la ressource dans un fichier .yaml. Voici un 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 ressourceIngressClass
spécifie à la fois le contrôleur de trafic entrant à utiliser et le nom de la ressourceIngressClassParameters
qui contient les détails de l'équilibreur de charge OCI à créer pour le contrôleur de trafic entrant natif OCI. SiingressClassName
n'est pas spécifié,IngressClass
par défaut de la grappe est utilisé (IngressClass
contenant l'annotationingressclass.kubernetes.io/is-default-class: "true"
).<ingress-rule>
est une règle comprenant facultativement un hôte et/ou un (ou plusieurs) éléments de chemin. Chaque chemin comporte un serveur dorsal (un nom de service et un numéro de port). Le contrôleur de trafic entrant achemine les demandes qui correspondent au nom d'hôte d'une règle (si spécifié) et au chemin d'accès au serveur dorsal associé. Lorsque vous spécifiez un chemin dans une règle :- Utilisez
pathType: Exact
pour 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 serveur dorsal associé à la règle - utiliser
pathType:Prefix
pour 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 serveur dorsal associé à la règle
Voir Spécification des règles de routage pour le contrôleur de trafic 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 entrant kubectl create -f <filename>.yaml