pygeoapi kubernetes introduction

Table of Contents

Introduction

Context

The goal of this series of articles is to share the lessons learned from developing cloud-native GIS (Geographic Information Systems) service infrastructures using open-source software foundations.

These exercises are inspired by real-world projects carried out in a professional context. This type of architecture offers numerous advantages:

  • maintainability: CI/CD based on modern software development practices
  • flexibility:
    • freedom to make technical choices that allow for optimal performance
    • modularity that facilitates the implementation of custom solutions
  • performance: real-time scaling with consistent infrastructure costs

Prerequisites

  • understanding of containerized software architecture principles
  • basic knowledge of Kubernetes

It is possible to follow this article series as a tutorial. In that case, you will need access to a Kubernetes environment.

The examples used in these articles are based on a Minikube instance. Minikube is a practical and cost-effective way to get Kubernetes functionality in a local development environment, without requiring a cloud subscription. However, it is also possible to perform these exercises on a full Kubernetes instance, with a few command adjustments.

Here is the description of the technical stack used for this tutorial:

  • Windows 11 OS
  • WSL2 installed with an Ubuntu distribution
  • Minikube installed on WSL2 Ubuntu (requires kubectl)
  • Docker installed on WSL2 Ubuntu and used as Minikube’s containerization driver
  • Ingress addon installed on Minikube

Article purpose

In this article, we will deploy an instance of pygeoapi in a Kubernetes cluster. Pygeoapi is a GIS server implementing APIs OGC specifications. Compliance of GIS APIs with industry-defined standards is a crucial factor for interoperability.