Some pods will require user input of some kind to interact with the running container.
An example of this might be a web application. Without the user being able to browse the application in their web browser, the application is useless.
Within Kubernetes, setting up access to a pod from outside is referred to as Ingress. Ingress allows you to manage traffic and routing rules via a resource that is running as part of your cluster or via an external offering such as a load balancer, which is then also managed from within the cluster.
An Ingress resource is essentially…
CQRS (Command Query Responsibility Segregation) is a software pattern, which in its simplest form, looks at segregating Commands from Queries.
Most applications do far more reading from writing, and in this scenario, CQRS can really improve scalability. Databases do not normally scale easily or cheaply (in a cloud environment you may have to jump up a tier based on the resource usage, and this can quickly become costly!)
It is possible to scale resources independently. An example of this may be you have a 20%, 80% split for commands, to queries. Using CQRS means you can have a smallish instance…
Software versioning has always been an issue ever since software has been created. Semantic versioning is a universal way of versioning some software or a development project where multiple versions of the software exist, or plan to exist.
A semantic version comes in the form of a number, split into pieces by a
. such as
ais the major version
bis the minor version
cis a patch
In a real scenario it would look something like:
In this article, I will be working with the following software, it makes sense to have these pre-installed before continuing.
You can install all by using brew if on OSX, or check out the website for detailed installation instructions.
When working with kubernetes, it is sometimes useful to spin up a container within a cluster to just test something quickly.
AWS Client VPN is a managed client-based VPN service that enables you to securely access your AWS resources and resources in your on-premises network. With Client VPN, you can access your resources from any location using an OpenVPN-based VPN client.
With mutual authentication, Client VPN uses certificates to perform authentication between the client and the server.
In order to use this using this guide, you will want to generate some certs, and import them into the certificate manager in AWS.
There is a pretty good guide here:
In my case, I generated the following files:
GitOps is a broad term, which generally describes some processes used when deploying cloud-native applications.
A source control repository is used as a mechanism to provide a declarative description of the current state of some infrastructure.
I’ve recently had to work on services that require to be installed on Windows, and because of this, using a container was out of the question.
It was part of a migration which due to time constraints required lifting and shifting the machines rather than spending time automating and getting it right.
Due to cost, it was not necessary to create high availability as long as the service could recover within a reasonable time (10 minutes) without any loss of backing data.
I had an underutilized raspberry pi, running raspian headless.
I set it up a couple of months back to run pihole
To utilise my pi further, I decided to see if I could run Airflow on it. I have used airflow in the past to run python tasks and thought it could come in handy for running some automation tasks at home.
Turns out it is very easy to set up and runs really well!
SSH tunneling is something I have to do all the time, yet its something that never seems to stick in my brain.
I have created a guide (with examples) to quickly and easily demystify SSH tunneling and get you going.
Use ssh config to save your connections, to save having to go through your bash history to find the command you used last week that worked.
I am a serial bash history searcher, but there are easier ways to setup your ssh tunnels and connections in general using SSH config.
SSH config is usually located at: ~/.ssh/config
If it isn’t…