docker-swarm-autoscaler
kubernetes
docker-swarm-autoscaler | kubernetes | |
---|---|---|
3 | 663 | |
70 | 107,048 | |
- | 0.8% | |
10.0 | 10.0 | |
over 4 years ago | about 15 hours ago | |
Ruby | Go | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
docker-swarm-autoscaler
-
Running auto-scalling docker services
If you want to have some sort of auto scaling, you will need to monitor to some extent though as this will be the signal for scaling up/down. I noticed that https://github.com/jcwimer/docker-swarm-autoscaler already includes the relevant prometheus configs required for just scaling by cpu.
-
Acorn: A lightweight PaaS for Kubernertes, from Rancher founders
Nomad, Docker Swarm and other solutions support most of these out of the box, Kubernetes is just the most popular and flexible (with which comes a lot of complexity) solution, it seems.
For example, even something as basic as Docker Swarm will see you a lot of the way through.
> How do you implement healthcheck?
Supported by Docker: https://docs.docker.com/engine/reference/builder/#healthchec...
> Does the loadbalancer know how the healthceck is implemented?
When the health checks pass in accordance with the above config, the container state will change from "starting" to "healthy" and traffic will be able to be routed to it. Until then you can have a web server or whatever show a different page/implement circuit breaking or whatever.
> How do you determine it's time to scale?
Docker Swarm doesn't have an abstraction for autoscaling, though there are a few community projects. One can feasibly even write something like that themselves in an evening: https://github.com/jcwimer/docker-swarm-autoscaler
That said, I mostly ignore this concern because I'm yet to see a workload that needs to dynamically scale in any number of private or government projects that I've worked on. Most of the time people want predictable infrastructure and being able to deal with backpressure (e.g. message queue), though that's different with startups.
> How do you implement always-on-process? service unit, initd, cron?
The service abstraction comes out of the box: https://docs.docker.com/engine/swarm/how-swarm-mode-works/se...
You might also want to decide how to best schedule it: wherever available, on a particular node (hostname/tag/...) or on all nodes, which is actually what Portainer agent does! Example: https://docs.portainer.io/start/install/server/swarm/linux
> How do you export the logs?
Docker supports multiple logging drivers: https://docs.docker.com/config/containers/logging/configure/
> How do you inject configs? /etc/environment, profile.d, systemd config, /etc/bestestapp/config?
Docker and Compose/Swarm support environment variables: https://docs.docker.com/compose/compose-file/#environment
If you need config files, you can also use bind mounts: https://docs.docker.com/storage/bind-mounts/
> What about secrets?
Docker supports secrets out of the box: https://docs.docker.com/engine/swarm/secrets/
> Service discovery? Is unbound/bind9?
Docker Swarm supports built in DNS, even allows for multiple separate networks: https://docs.docker.com/engine/swarm/networking/
> These items are best done in a standard way.
Agreed! Though I'd say that the only two options being "running everything on *nix directly" and "running everything in Kubernetes" is a false narrative! The former can work but can also lead to non-standard and error-prone environments with a horrible waste of human resources, whereas the latter can work but can also lead to overcomplicated and hard to debug environments with a horrible waste of human resources.
The best path for many folk probably lies somewhere in the middle, with Nomad/Swarm/Compose/Docker, regardless of what others might claim. The best path for folks interested in a DevOps career is probably running on cloud managed Kubernetes clusters and just using their APIs to lots of great results, not caring about how expensive that is or how easy it would be to self-host on-prem.
kubernetes
-
The guide to kubectl I never had.
I’m joking of course. I’m not really sure about what a faded keyboard says about its owner. What I do know for sure is how important kubectl is to anybody who wants to be a proficient Kubernetes administrator.
-
Streamlining Deployments: Unveiling the Power of GitOps with Kubernetes
In the field of software development, efficiency and agility are always sought after. In the era of cloud-native apps, traditional deployment techniques—which are frequently laborious and prone to errors—are starting to become obstacles. This is when Kubernetes and GitOps come in handy.
- Presentación del Operador LMS Moodle
-
Introducing LMS Moodle Operator
Are you looking for a hassle-free way to deploy Moodle™ Learning Management Systems (LMS) on Kubernetes? Look no further! Krestomatio presents the LMS Moodle Operator, an open-source Kubernetes Operator designed to simplify the deployment and management of Moodle instances on Kubernetes clusters. Let's dive into what makes this tool a great choice for Moodle administrators and developers alike.
-
Using NetBird for Kubernetes Access
Securing access to your Kubernetes clusters is crucial as inadequate security measures can lead to unauthorized access and potential data breaches. However, navigating the complexities of Kubernetes access security, especially when setting up strong authentication, authorization, and network policies, can be challenging.
-
My Favorite DevTools to Build AI/ML Applications!
Deploying AI models into production requires tools that can package applications and manage them at scale. Docker simplifies the deployment of AI applications by containerizing them, ensuring that the application runs smoothly in any environment. Kubernetes, an orchestration system for Docker containers, allows for the automated deployment, scaling, and management of containerized applications, essential for AI applications that need to scale across multiple servers or cloud environments.
-
Building Scalable GraphQL Microservices With Node.js and Docker: A Comprehensive Guide
To learn more, you can start by exploring the official Kubernetes documentation.
-
Building Llama as a Service (LaaS)
With the containerized Node.js/Express API, I could run multiple containers, scaling to handle more traffic. Using a tool called minikube, we can easily spin up a local Kubernetes cluster to horizontally scale Docker containers. It was possible to keep one shared instance of the database, and many APIs were routed with an internal Kubernetes load balancer.
-
The power of the CLI with Golang and Cobra CLI
This package is widely used for powerful CLI builds, it is used for example for Kubernetes CLI and GitHub CLI, in addition to offering some cool features such as automatic completion of shell, automatic recognition of flags (the tags) , and you can use -h or -help for example, among other facilities.
-
Upgrading Hundreds of Kubernetes Clusters
We closely monitor Kubernetes and cloud providers' updates by following official changelogsand using RSS feeds, allowing us to anticipate potential issues and adapt our infrastructure proactively.
What are some alternatives?
etcd - Distributed reliable key-value store for the most critical data of a distributed system
Apache ZooKeeper - Apache ZooKeeper
k3s - Lightweight Kubernetes
bosun - Time Series Alerting Framework
porter - Kubernetes powered PaaS that runs in your own cloud.
Rundeck - Enable Self-Service Operations: Give specific users access to your existing tools, services, and scripts
nf-faas-docker-stack - Experimental: Getting modern OpenFaaS CE to run on Swarm
kine - Run Kubernetes on MySQL, Postgres, sqlite, dqlite, not etcd.
keda - KEDA is a Kubernetes-based Event Driven Autoscaling component. It provides event driven scale for any container running in Kubernetes
BOSH - Cloud Foundry BOSH is an open source tool chain for release engineering, deployment and lifecycle management of large scale distributed services.
kompose - Convert Compose to Kubernetes
Juju - Orchestration engine that enables the deployment, integration and lifecycle management of applications at any scale, on any infrastructure (Kubernetes or otherwise).