我最近在工作中的开发环境中应用了内部服务部署过程,在 Centos7 之上使用了内部 kubernetes 集群。
我也是初学者,但据我所知,
如果我有一个安装了 docker 的自定义 linux 发行版(来自源代码),我可以在上面运行 k8s 吗??
- 是的。您可以在自定义的 linux 发行版上安装和运行 kubernetes 集群,但您的 linux 发行版需要满足最低要求,例如内核版本(3.10+)。
(即 Ubuntu16.04+ .. Centos 7)
任何与 docker 兼容的 linux-kernel 也与 k8s 兼容,或者在内核级别有更多修改(因为实际上 k8s 支持像 Ubuntu、CentOS、Debian 等特定的 dist ......但不是任何一个)?
- 由于 kubernetes 不运行任何容器,而是让容器在集群主机内相互通信,我同意前者(任何与 docker 兼容的 linux-kernel 也与 k8s 兼容)。 (资源需求是一个不同的问题。)
仅供参考,我的集群使用:
$ 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