Kubernetes is great! It helps many engineering teams to realize the dream of SOA (Service Oriented Architecture). For the longest time, we build our applications around the concept of monolith mindset, which is essentially having a large computational instance running all services provided in an application. Things like account management, billing, report generation are all running from a shared resource. This worked pretty well until SOA came along and promised us a much brighter future. By breaking down applications to smaller components, and having them to talk to each other using REST or gRPC. We hope expect things will only get better from there but only to realize a new set of challenges awaits. How about cross services communication? How about observability between microservices such as logging or tracing? This post demonstrates how to set up OpenTracing inside a Kubernetes cluster that enables end-to-end tracing between serv
One of my clients is a big company that has a very variable but predictable database usage pattern.
In the weekdays morning they come up with a huge amount of INSERTs and UPDATEs while for the rest of the day, form noon on,
the usage is fairly limited to a decent amount of SELECTs with very low writing activity.
The smallest class type that can handle the morning's volume is db.r3.large
but having such an instance running all day long and in the weekends is just a big waste of resources money
(or a big favour we do to Amazon, from their point of view).
So I was wondering if there's some autoscaling mechanism for Aurora writers (there is, but only for replicas),
Helper setup to edit .yaml files with Vim:
List of general purpose commands for Kubernetes management:
This guide has moved to a GitHub repository to enable collaboration and community input via pull-requests.
https://github.com/alexellis/k8s-on-raspbian
Alex
| $pfxFile = 'c:\path\to\cert.pfx' | |
| $password = Read-Host -Prompt 'password' -AsSecureString | |
| $cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 | |
| $cert.Import($pfxFile, $password, [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable) | |
| $pfxBlob = [System.Convert]::ToBase64String($cert.Export([Security.Cryptography.X509Certificates.X509ContentType]::Pkcs12)) | |
| "THUMBPRINT: $($cert.Thumbprint)" | |
| "PFX BLOB: `n$pfxBlob" |
| # Prometheus Recoding and Alert Rules Collection | |
| # Copyright (C) 2017 Matous Jan Fialka, <http://mjf.cz/> | |
| # Released under the terms of The MIT License | |
| groups: | |
| - name: node_common | |
| interval: 30s | |
| rules: |
| version: '2' | |
| services: | |
| mongo: | |
| image: mongo:3.2 | |
| hostname: 'mongo' | |
| volumes: | |
| - ./db/data:/data/db | |
| - ./db/dump:/dump | |
| command: mongod --smallfiles --oplogSize 128 --replSet rs0 |
Let's take a look at how Kubernetes jobs are crafted. I had been jamming some kind of work-around shell scripts in the entrypoint* for some containers in the vnf-asterisk project that Leif and I have been working on. And that's not perfect when we can use Kubernetes jobs, or in their new parlance, "run to completion finite workloads" (I'll stick to calling them "jobs"). They're one-shot containers that do one thing, and then end (sort of like a "oneshot" of systemd units, at least how we'll use them today). I like the idea of using them to complete some service discovery for me when other pods are coming up. Today we'll fire up a pod, and spin up a job to discover that pod (by querying the API for info about it), and put info into etcd. Let's get the job done.
This post also exists as a [gist on github](https