Créer un service NodePort dans OKS

Un NodePort est un type de service Kubernetes qui expose votre application sur tous les worker nodes, via un port TCP/UDP spécifié permettant un accès externe au service.

Vous pouvez créer un service NodePort en utilisant OKS.

Créer un service NodePort

Kubernetes vous permet d’ouvrir des ports dans la fourchette suivante : 30000-32767.

Pour créer un service NodePort, vous devez attacher les annotations nécessaires à vos manifestes.

Les manifestes de service sont des fichiers de configuration YAML ou JSON définissant l’état souhaité d’une ressource Service. Ils décrivent comment un service est exposé dans votre cluster OKS, avec des détails tels que :

  • Le type de service (ClusterIP, NodePort, LoadBalancer),

  • Les ports que le service doit exposer,

  • Le sélecteur pour les pods que le service cible,

  • Toutes les annotations ou étiquettes pertinentes.

L’exemple suivant crée une installation KeyDB accessible sur le port 30379, à partir de l’IP 1.2.3.4/32 uniquement.

Exemple de manifeste
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: keydb-deployment
  name: keydb-deployment
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: keydb-deployment
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: keydb-deployment
    spec:
      containers:
      - image: eqalpha/keydb:alpine
        name: keydb-container
        ports:
        - containerPort: 6379
        resources:
          requests:
            cpu: 1
        volumeMounts:
        - name: data
          mountPath: /keydb-master-data
        - name: keydb-config
          mountPath: /keydb-master
      volumes:
      - name: keydb-config
        configMap:
          name: my-keydb-config
      - name: data
        emptyDir: {}
status: {}
---
apiVersion: v1
kind: Service
metadata:
  name: keydb-service
  namespace: default
  labels:
    app: keydb-deployment
  annotations:
    service.oks.outscale.com/source-ranges: "1.2.3.4/32"
spec:
  ports:
  - port: 6379
    targetPort: 6379
    nodePort: 30379
  selector:
    app: keydb-deployment
  type: NodePort

Utiliser des annotations pour vos NodePorts

Le tableau ci-dessous répertorie les annotations prises en charge pour vos services NodePort OKS.

Sauf indication contraire, les listes doivent être séparées par des virgules.

Annotation Description Valeur par défaut

service.oks.outscale.com/source-ranges

La liste des CIDR autorisés à accéder au NodePort.

Par exemple : 1.2.3.4/32, 5.6.7.8/32, 9.10.11.12/32.

0.0.0.0/0 vous permet d’ouvrir l’accès à l’ensemble de l’Internet.

Aucun (pas d’accès)

service.oks.outscale.com/oks-target-node-pools

La liste des nodes auxquels autoriser l’accès externe.

Par exemple : nodepool-1, big-nodes, web-facing.

None (tous les worker nodes)

Pages connexes