Case Study Jobteaser Case Study: Scalable Public APIs with KrakenD

You are viewing a previous version of KrakenD Community Edition (v2.2), go to the latest version

Document updated on Dec 11, 2021

Deploying to Kubernetes

Deploying KrakenD in Kubernetes requires a straightforward configuration.

Create a Dockerfile that includes the configuration of the service. Read how to generate a Docker artifact for detailed instructions. You could also use a ConfigMap, although the recommendation is to use immutable artifacts.

From here you need to create a NodePort and send all the traffic to KrakenD.

Deployment definition YAML

The KrakenD deployment definition, in a file called deployment-definition.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: krakend-deployment
spec:
  selector:
    matchLabels:
      app: krakend
  replicas: 2
  template:
    metadata:
      labels:
        app: krakend
    spec:
      containers:
      - name: krakend
        image: YOUR-KRAKEND-IMAGE:1.0.0
        ports:
        - containerPort: 8080
        imagePullPolicy: Never
        command: [ "/usr/bin/krakend" ]
        args: [ "run", "-d", "-c", "/etc/krakend/krakend.json", "-p", "8080" ]
        env:
        - name: KRAKEND_PORT
          value: "8080"

Service definition yaml

The KrakenD service definition, in a file called service-definition.yaml:

apiVersion: v1
kind: Service
metadata:
  name: krakend-service
spec:
  type: NodePort
  ports:
  - name: http
    port: 8000
    targetPort: 8080
    protocol: TCP
  selector:
    app: krakend

Registering the service

Using the kubectl command:

Register deployment 

$kubectl create -f deployment-definition.yaml

Register service 

$kubectl create -f service-definition.yaml

For a more step by step process see this blog entry.

Helm Chart

There is no official Helm chart for KrakenD. However, there is a Helm chart here tracking Krakend releases maintained by Equinix Metal.

Scarf

Unresolved issues?

The documentation is only a piece of the help you can get! Whether you are looking for Open Source or Enterprise support, see more support channels that can help you.

See all support channels