Git Product home page Git Product logo

kubernetes-starter-kit-developers's Introduction

Day-2 Operations-ready DigitalOcean Kubernetes (DOKS) for Developers

Webinar video from 9/28/2021

Automating GitOps and Continuous Delivery With DigitalOcean Kubernetes

In this tutorial, we provide developers a hands-on introduction on how to get started with an operations-ready Kubernetes cluster on DigitalOcean Kubernetes (DOKS). Kubernetes is easy to set up and developers can use identical tooling and configurations across any cloud. Making Kubernetes operationally ready requires a few more tools to be set up, which are described in this tutorial.

Resources used by the Starter Kit include the following:

  • DigitalOcean Droplets (for DOKS cluster).

  • DigitalOcean Load Balancer.

  • DigitalOcean Block Storage for persistent storage.

  • DigitalOcean Spaces for object storage.

  • Kubernetes Helm Charts:

    ingress-nginx ingress-ambassador prometheus-stack loki-stack velero triliovault sealed-secrets

Notes:

  • Main branch should generally work. Just note that it is being frequently updated. If you want to be safe, pick a specific tag version corresponding to DOKS release (eg. v1.21.3, v1.21.5).
  • Tags specific points in a repository’s history when an important change applied.

Remember to verify and delete the resources at the end of the tutorial, if you no longer need those.

Operations-ready Setup Overview

Below is a diagram that gives a high-level overview of the Starter Kit setup, as well as the main steps:

Setup Overview

Table of Contents

  1. Scope
  2. Set up DO Kubernetes
  3. Set up DO Container Registry
  4. Set up Ingress Controller
  5. Set up Observability
  6. Set up Backup and Restore
  7. Kubernetes Secrets
  8. Scaling Application Workloads
  9. Continuous Delivery using GitOps
  10. Estimate Resource Usage of Starter Kit

Scope

This tutorial demonstrates the basic setup you need to be operations-ready.

All the steps are done manually using the command line interface (CLI). If you need end-to-end automation, refer to the last section.

None of the installed tools are exposed using Ingress or Load Balancer. To access the console for individual tools, we use kubectl port-forward.

We will use brew (on MacOS) to install the required command-line utilities on our local machine and use the command to work on a DOKS cluster.

For every service that gets deployed, we will enable metrics and logs. At the end, we will review the overhead from all these additional tools and services. That gives an idea of what it takes to be operations-ready after your first cluster install.

This tutorial will use manifest files from this repo. It is recommended to clone this repository to your local environment. The below command can be used to clone this repository.

git clone https://github.com/digitalocean/Kubernetes-Starter-Kit-Developers.git

git checkout <TAG>   # If you want to pick a tested tag corresponding to DOKS release, eg. v1.21.3

Notes:

  • For this Starter Kit, we recommend to start with a node pool of higher capacity nodes (say, 4cpu/8gb RAM) and have at least 2 nodes. Otherwise, review and allocate node capacity if you run into pods in PENDING state.
  • We customize the value files for Helm installs of individual components. To get the original value file, use helm show values. For example: helm show values prometheus-community/kube-prometheus-stack --version 30.0.1.
  • There are multiple places where you will change a manifest file to include a secret token for your cluster. Please be mindful of handling the secrets, and do not commit to public Git repositories. A safer method to use is Sealed Secrets or External Secrets Operator, explained in Kubernetes Sealed Secrets. The sample manifests provided in the Section 14 - Continuous Delivery using GitOps section, shows you how to use Sealed Secrets in combination with Flux CD, and reference sensitive data in each manifest that require secrets.
  • To keep the components up to date, helm provides you the option to upgrade them to latest version or desired version. For example helm upgrade kube-prom-stack prometheus-community/kube-prometheus-stack --version 30.0.0 --namespace monitoring -f "04-setup-prometheus-stack/assets/manifests/prom-stack-values-v30.0.1.yaml".

If you want to automate installation for all the components, refer to Section 14 - Continuous Delivery using GitOps.

Go to Section 1 - Set up DigitalOcean Kubernetes.

kubernetes-starter-kit-developers's People

Contributors

yusufkaratoprak avatar v-ctiutiu avatar bikram20 avatar vladciobancai avatar v-bpastiu avatar kumaripurnima avatar lgarbo avatar bhagirathhapse avatar chandansagar avatar vomba avatar suruaku avatar leonvisscher avatar saadismail avatar sharmita3 avatar takotab avatar dchebakov avatar facklambda avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.