Solve this practical challenge by reworking a flawed pod, making it use a native sidecar:
> Kubernetes Pod With a Faulty Init Sequence
labs.iximiuz.com/challenges/k...
Solve this practical challenge by reworking a flawed pod, making it use a native sidecar:
> Kubernetes Pod With a Faulty Init Sequence
labs.iximiuz.com/challenges/k...
docker run nginx ☑️
But can you explain what actually happens when you run this command?
I prepared a Docker 101 challenge that helps you explore the internals of Linux containers - check it out: labs.iximiuz.com/challenges/s...
docker run nginx ☑️
But can you explain what actually happens when you run this command?
I prepared a Docker 101 challenge that helps you explore the internals of Linux containers - check it out: labs.iximiuz.com/challenges/s...
Building small and secure images for Python projects is surprisingly hard:
- Which base image to choose?
- How to manage dependencies?
- How to structure the Dockerfile?
Learn more (with solutions): labs.iximiuz.com/challenges/d...
Building small and secure images for Python projects is surprisingly hard:
- Which base image to choose?
- How to manage dependencies?
- How to structure the Dockerfile?
Learn more (with solutions): labs.iximiuz.com/challenges/d...
python:3
Yes, it's a Docker Official Image, and it's a good image to build your app, but:
- It has TWO pythons inside 🐍 x 2 = 🤯
- It brings 800MB+ of dev/build packages.
What to use instead in production 👉 python:3-slim
python:3
Yes, it's a Docker Official Image, and it's a good image to build your app, but:
- It has TWO pythons inside 🐍 x 2 = 🤯
- It brings 800MB+ of dev/build packages.
What to use instead in production 👉 python:3-slim
- Expose a local service to the Internet
- Map a remote service to a local port
- Query an AWS RDS database with a local GUI client
- Access a server in your private VPC from a dev machine
...and a lot more. Visual memo 👇
- Expose a local service to the Internet
- Map a remote service to a local port
- Query an AWS RDS database with a local GUI client
- Access a server in your private VPC from a dev machine
...and a lot more. Visual memo 👇
Distroless images come in many flavors, and it might not be obvious which one (if any!) is the best fit for your application.
Here is my attempt to explain the difference and use cases on a single diagram:
Distroless images come in many flavors, and it might not be obvious which one (if any!) is the best fit for your application.
Here is my attempt to explain the difference and use cases on a single diagram:
Did you know that the below commands:
docker pull nginx
docker pull nginx:latest
docker pull library/nginx:latest
docker pull docker[.]io/library/nginx:latest
...pull exactly the same Docker Hub image?
Learn more 👉 labs.iximiuz.com/skill-paths/...
Did you know that the below commands:
docker pull nginx
docker pull nginx:latest
docker pull library/nginx:latest
docker pull docker[.]io/library/nginx:latest
...pull exactly the same Docker Hub image?
Learn more 👉 labs.iximiuz.com/skill-paths/...
Is "FROM scratch" good enough for you? Check out these hands-on challenges to learn about the most typical Go container pitfalls:
- static linking labs.iximiuz.com/challenges/d...
- dynamic linking labs.iximiuz.com/challenges/d...
Is "FROM scratch" good enough for you? Check out these hands-on challenges to learn about the most typical Go container pitfalls:
- static linking labs.iximiuz.com/challenges/d...
- dynamic linking labs.iximiuz.com/challenges/d...
Port publishing is a form of traditional Port Forwarding implemented with iptables (kernel).
When the host receives a packet on a "published" port, its destination address (i.e., the host's IP) is replaced with the container's IP.
Port publishing is a form of traditional Port Forwarding implemented with iptables (kernel).
When the host receives a packet on a "published" port, its destination address (i.e., the host's IP) is replaced with the container's IP.
An IP address is assigned to the bridge device, and each container connected to this bridge gets a Default Gateway route with this IP.
For outgoing (from containers) packets, the source IPs get replaced ("translated") with the bridge IP (via iptables).
An IP address is assigned to the bridge device, and each container connected to this bridge gets a Default Gateway route with this IP.
For outgoing (from containers) packets, the source IPs get replaced ("translated") with the bridge IP (via iptables).
The host's ends of the veth pairs are connected to a virtual switch (a.k.a. bridge) device.
One bridge forms one container network, where containers can intercommunication on L2/L3 (Ethernet/IP).
The host's ends of the veth pairs are connected to a virtual switch (a.k.a. bridge) device.
One bridge forms one container network, where containers can intercommunication on L2/L3 (Ethernet/IP).
An IP address is assigned to the container's end of the veth pair. For the container, it creates a route table record to access its network.
However, the host's ends of the veth pairs remain without addresses to avoid introducing routing conflicts.
An IP address is assigned to the container's end of the veth pair. For the container, it creates a route table record to access its network.
However, the host's ends of the veth pairs remain without addresses to avoid introducing routing conflicts.
A pair of connected virtual network devices is used to access an otherwise isolated container.
One end of the veth pair is moved to the container's network namespace, and the other end remains in the host's network context.
A pair of connected virtual network devices is used to access an otherwise isolated container.
One end of the veth pair is moved to the container's network namespace, and the other end remains in the host's network context.
1/6: Network namespaces (netns)
A separate network namespace gives a Linux container its own virtualized (and fully isolated from the host) network "context" - a loopback device, a route table, netfilter/iptables rules, etc.
1/6: Network namespaces (netns)
A separate network namespace gives a Linux container its own virtualized (and fully isolated from the host) network "context" - a loopback device, a route table, netfilter/iptables rules, etc.
The only way to mastery is through practice. Can you map one port to another using:
- socat labs.iximiuz.com/challenges/p...
- netcat labs.iximiuz.com/challenges/p...
- iptables labs.iximiuz.com/challenges/p...
Happy hacking!
The only way to mastery is through practice. Can you map one port to another using:
- socat labs.iximiuz.com/challenges/p...
- netcat labs.iximiuz.com/challenges/p...
- iptables labs.iximiuz.com/challenges/p...
Happy hacking!
- Which Port Is a Service Listening On? labs.iximiuz.com/challenges/l...
- Which Process Is Listening on a Port? labs.iximiuz.com/challenges/l...
How fast can you solve them?
- Which Port Is a Service Listening On? labs.iximiuz.com/challenges/l...
- Which Process Is Listening on a Port? labs.iximiuz.com/challenges/l...
How fast can you solve them?
ima.ge.cx/docker.io/library/nginx
ima.ge.cx/docker.io/library/nginx
Tasks Dev Tools 🚀
Inspect the status, duration, stdout, stderr, and other attributes of the init and regular tasks in a slick new UI.
Start here 👉 labs.iximiuz.com/playgrounds/...
Tasks Dev Tools 🚀
Inspect the status, duration, stdout, stderr, and other attributes of the init and regular tasks in a slick new UI.
Start here 👉 labs.iximiuz.com/playgrounds/...
Treat yourself with a bunch of endorphin injections by cracking interactive Linux, networking, Docker, and Kubernetes puzzles and dive into quality long reads on the same topics: labs.iximiuz.com/premium
Treat yourself with a bunch of endorphin injections by cracking interactive Linux, networking, Docker, and Kubernetes puzzles and dive into quality long reads on the same topics: labs.iximiuz.com/premium
- Linux containers isolate network and fs but share host CPU cores/RAM.
- cgroup memory limits aren’t considered by the Go runtime.
- The Go GC assumes the host’s total memory.
- Ignoring cgroup limits risks terminations by OOM Killer.
- Linux containers isolate network and fs but share host CPU cores/RAM.
- cgroup memory limits aren’t considered by the Go runtime.
- The Go GC assumes the host’s total memory.
- Ignoring cgroup limits risks terminations by OOM Killer.
Every Kubernetes playground comes equipped with k'exp - an exploration-tailored Kubernetes UI that I wrote some time ago.
Here is me poking around in the K3s playground labs.iximiuz.com/playgrounds/... 👇
Every Kubernetes playground comes equipped with k'exp - an exploration-tailored Kubernetes UI that I wrote some time ago.
Here is me poking around in the K3s playground labs.iximiuz.com/playgrounds/... 👇
Why do some commands mimic process management while others resemble file operations? 🤔
Understanding the dual nature of containers is the key. Dive deeper: labs.iximiuz.com/tutorials/do...
Why do some commands mimic process management while others resemble file operations? 🤔
Understanding the dual nature of containers is the key. Dive deeper: labs.iximiuz.com/tutorials/do...
The "Asia" server is located in India (Mumbai), and it's a big one 🚀
The "Asia" server is located in India (Mumbai), and it's a big one 🚀
capacity++ && latency--
$300/mo for this beauty 🙈 But now I can afford it - thanks to everyone who supported the platform this week and got the premium membership!
capacity++ && latency--
$300/mo for this beauty 🙈 But now I can afford it - thanks to everyone who supported the platform this week and got the premium membership!