Compatibility between Kubernetes and Linux

11/12/2019

What do I need to run / install kubernetes on a node (I refer to linux-kernel level)?, if I have a custom linux distribution with docker installed (from source), can I run k8s on it, or it needs specific kernel config/flags to be enabled ?

Is any linux-kernel compatible with docker isalso compatible with k8s, or there are some more modifications at a kernel level (since actually k8s supports specific distros like Ubuntu, CentOS, Debian.... but not all)?

-- josemareina
docker
kubernetes
kubernetes-pod
linux
linux-kernel

1 Answer

11/12/2019

I have recently applied internal service deployment process in develop environment at work, using internal kubernetes cluster on top of Centos7. I am also a beginner but as far as I know,

if I have a custom linux distribution with docker installed (from source), could I ran k8s on it??

  • Yes. you can install and run kubernetes cluster on a custom linux distribution, but your linux distribution needs to meet the minimum requirements such as kernel version(3.10+). (ie Ubuntu16.04+ .. Centos 7)

Any linux-kernel compatible with docker is compatible too with k8s, or there are more modifications at kernel level (since actually k8s supports sepecifics dists like Ubuntu, CentOS, Debian.... but not any)?

  • Since kubernetes does not run any container but let containers communicate one another within the clustered hosts, I agree with the former (Any linux-kernel compatible with docker is compatible too with k8s). (Resource requirement is a different question.)

FYI, My cluster uses:

$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

$ uname -a
Linux k8s-master.local 3.10.0-957.10.1.el7.x86_64 #1 SMP Mon Mar 18 15:06:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

$ docker --version
Docker version 18.09.5, build e8ff056

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.1", GitCommit:"b7394102d6ef778017f2ca4046abbaa23b88c290", GitTreeState:"clean", BuildDate:"2019-04-08T17:11:31Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.6", GitCommit:"96fac5cd13a5dc064f7d9f4f23030a6aeface6cc", GitTreeState:"clean", BuildDate:"2019-08-19T11:05:16Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}

$ kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.1", GitCommit:"b7394102d6ef778017f2ca4046abbaa23b88c290", GitTreeState:"clean", BuildDate:"2019-04-08T17:08:49Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/amd64"}

$ kubelet --version
Kubernetes v1.14.1
-- dropyourcoffee
Source: StackOverflow