Few words after using
- works only with docker, there is also a podman provider (not tested)
- docker image node-image simulates a k8s node - all components in one image, started by systemd
- docker container is priviledged
- easy to start just use
kindcommand, under the hood it download right
node-imageversion and start it
node-imageis based on base-image
- you can run multiple node cluster
- you can customize
kindconfiguration ie. number/types of nodes, exposed ports to host, extra mounts, kubeadm patches
- when you customize
kindon boot apply those changes
kindcontainer is bound to docker network driver bridge
kindships with simple CNI kindnet and it's also swappable
- CRI is implemented by
kindis using internal image registry
- hard to expose services when running MacOSX, Windows, easier to expose services as k8s ingress
- good for testing, because of fast start
- not fully featured as minikube
- cannot easily simulate cluster upgrade
Custom node condition in Kubernetes
When you go through node object in k8s you can see that there is a field called
$ kubectl describe node kind-control-plane ... Conditions: Type Status LastHeartbeatTime LastTransitionTime Reason Message ---- ------ ----------------- ------------------ ------ ------- MemoryPressure False Sun, 30 Aug 2020 10:54:31 +0200 Sun, 30 Aug 2020 10:53:23 +0200 KubeletHasSufficientMemory kubelet has ...
ICMP Echo permissions
Network ping tool, one of the most widely used tool to debug network problem. It's mainly using ICMP protocol, due to specific security requirements to send/receive ICMP ECHO packets regular user is not allowed to use it. How can dealt with it on linux box ?
- the easiest way ...
gRPCurl - curl for gRPC
CNI - the Container Network Interface
CNI is simple interface based on environment variables and JSON config. Both environment variables and JSON config are processed by CNI plugin started by container management system like Kubernetes. CNI plugin is responsible for connecting container namespace into selected network, second responsibility for CNI is to provide IP address it ...read more
Docker and Kubernetes at network layer
I wrote some posts about how kubernetes is interacting with docker at CRI level, but what about networking ? Docker has developed it's own solution called CNM to maintain network, to interact with it just use commands under docker network. How it looks like in k8s multi node environment:
# docker ...
dropwatch - discover where network packets are dropped
Let's imagine situation where you experience network problem with dropping packets and you've no idea where the problem is located. So first of all prepare environment:
# iptables -A OUTPUT -p icmp -j DROP # ping -c 3 -W 1 18.104.22.168 PING 22.214.171.124 (8 ...
mkubectx - single command across all your selected kubernetes contexts
Pause - most popular container in k8s environment
Probably the most popular container in kubernetes environment. Container image is really small:
$ docker images | grep -i pause k8s.gcr.io/pause 3.2 80d28bedfe5d 2 months ago 683kB
Codebase is also small pause. According to source code it is responsible for doing pretty... nothing, except of dealing ...read more
How to change default k8s container runtime to containerd ?
Default kubelet container runtime configuration use docker as CRI. Containerd has another implementation of CRI, it should fullfill the same requirements as docker so ie. it's responsible to maintain container images. Containerd extends its functionality by using plugins, one of them is
cri. To interact with containerd we can ...