logo

Kubernetes - Artifacts Management

Last Updated: 2023-02-16

Registries

  • Docker Hub: a public regitry https://hub.docker.com/
  • Harbor: an open source option. Deployed in cluster.
  • From Cloud Providers, e.g. Google Container Registry / Artifact Registry.

Harbor

API:

goharbor.io/v1beta1
HarborCluster
  • cache: Redis
  • database: PostgreSQL
  • storage: FileSystem

Helm

Helm is the package manager for Kubernetes.

Helm charts vs container images:

  • usually don't include application binaries themselves; instead, they provide instructions that tell Kubernetes where to find the container images that it needs to run a certain application.
  • a single chart could install multiple applications. E.g. install web server and database in one chart.
  • container images provide just an application, not the configuration data necessary for running it; Helm charts are more like a complete software installation package. When you run a Helm chart, it installs not just application binaries, but also all of the configuration data necessary to run an application.
  • Helm charts work only for installing software on Kubernetes; containers can run anywhere.
  • Both Helm charts and container images can be stored in a registry like Harbor.

Chart File Structure

my-chart/
  charts/       # dependent charts
  crds/         # Custom Resource Definitions
  templates/    # templates
  Chart.yaml    # info about the chart
  values.yaml   # default values

Template + values = a valid k8s manifest.