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.