Last update: Dec 17, 2020
Deploying KrakenD in Kubernetes requires a straightforward configuration.
Dockerfile that includes the configuration of the service. That should be as simple as:
FROM devopsfaith/krakend COPY krakend.json /etc/krakend/krakend.json
If you use flexible-configuration you might want to add a previous generation of the krakend.json file using a multi-step Docker.
From here you need to create a
NodePort and send all the traffic to KrakenD.
deployment definition, in a file called
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, in a file called
apiVersion: v1 kind: Service metadata: name: krakend-service spec: type: NodePort ports: - name: http port: 8000 targetPort: 8080 protocol: TCP selector: app: krakend
$kubectl create -f deployment-definition.yaml
$kubectl create -f service-definition.yaml
For a more step by step process see this blog entry.
For an example of a Helm Chart, see Mikescandy contribution
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.