I recently had to create a cron job in Kubernetes that would run a data archive script that would archive the immutable MySQL table data for transactions for the previous day and upload the result to AWS S3.
The job failed today as there was a network connectivity issue to the database and my code tried 3 times and then gave up for today. I then needed to have the job execute so I could have it process yesterdays data and archive it. …
By default, istio creates a service with a publicly accessible classic load balancer (ELB). However, there are times where we only want access from our internal network or a network we are connected to via a secure VPN.
To achieve this we need a copy of our current ingressgateway service and deployment configuration.
The command below will output our current configuration to a file:
kubectl get svc istio-ingressgateway -n istio-system -o yaml > istio-pvt-ingressgateway.yaml
Open the file in your favourite text editor and get ready to make some changes to the file. You can remove all the auto-generated fields. What…
So AWS launched their hosted Kubernetes called EKS (Elastic Kubernetes Service) last year and we merrily jumped onboard and deployed most of our services in the months since then. Everything was looking great and working amazing until I started doing some cleanup on the platform. I am sure that it was possibly my fault for adding deployments, removing deployments, moving nodes around, terminating nodes, etc. over a period of time, I pretty much scrambled its marbles.
The popularity of Kubernetes as a container orchestration service has been growing at an amazing rate. Developers are flocking to the platform and taking advantage of the increase in the speed of their development deployments.
Minikube is a tool that helps you run Kubernetes locally. It runs as a single-node Kubernetes cluster on your machine so you can use it to run your software which will use the same/or similar configuration to run in production.
With Kubernetes you run Docker containers within your pods. These containers are started by running Docker images. These images can be pulled from public repositories…
Out of the box Kubernetes has no support for assigning an EIP to an AWS Network Load Balancer. There is currently a pull request for this feature listed here: https://github.com/kubernetes/kubernetes/issues/63959#issuecomment-484203661
This feature request has unfortunately not been approved yet.
Not to worry though I have put together a simple application you can run as a CronJob on your current Kubernetes cluster that will clone the targets from your Kubernetes Service LoadBalancer to an AWS Network Load Balancer that you create and have an EIP assigned to.
Docker hub repository: https://hub.docker.com/r/newtondev/k8s-aws-nlb-target-cloner
Source code repository: https://github.com/newtondev/k8s-aws-nlb-target-cloner
Want to learn more about Kubernetes. Please check out this great book that I helped review:
Senior DevOps Engineer at InSided. AWS Certified Solutions Architect Associate, AWS Certified Cloud Practitioner.