mkubectx - update

Mon 03 May 2021 by admin

I recently do some changes in mkubectx including:

  • golang testing
  • github workflows for testing when PR is submitted
  • github workflows for releasing version supported by gorelaser

Feel free to use and contribute :)


How to get logs from selected container in a pod ?

Sun 07 March 2021 by admin

I faced with the problem where I have to react on specific log entry from an third party application. It wasn't possible to change behaviour of this application, but fortunately it generates specific log when something bad happened. So I decide to use liveness probe with some exec to ...

read more

Ways of distributing pods across nodes

Tue 02 February 2021 by admin

How can more evenly distribute pod across nodes ? After quick research I found that this example of deployment should be ok:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 3
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
      affinity:
        podAntiAffinity ...
read more

GKE Node Debugging

Sun 10 January 2021 by admin

GKE is fully managed k8s cluster in Google Cloud Platform, one of its component is a node pool. Node pool is a managed instance group of compute engine virtual machines to run your workload. In GKE by default compute engine virtual machine runs with COS. COS doesn't provide wide ...

read more

Kind - local k8s

Sun 13 September 2020 by admin

Few words after using kind:

  • 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 kind command, under the hood it download right node-image ...
read more

Custom node condition in Kubernetes

Sun 30 August 2020 by admin

When you go through node object in k8s you can see that there is a field called Conditions:

$ 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 ...
read more

ICMP Echo permissions

Sun 23 August 2020 by admin

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 ...
read more

gRPCurl - curl for gRPC

Sun 26 July 2020 by admin

In previous blog post How kubernetes is interacting with docker ? I was writing about dockershim with golang gRPC example code to get list of docker images. This example was trivial but writing code to get it wasn't trival, is there any generic tool to make such requests ? In HTTP ...

read more

CNI - the Container Network Interface

Sat 04 July 2020 by admin

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

Sun 21 June 2020 by admin

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 ...
read more