如何在Docker容器中运行本地Kubernetes集群

时间:2020-02-23 14:31:38  来源:igfitidea点击:

问题:我可以在Docker中运行Kubernetes吗?如果我们想在没有任何承诺的情况下测试Kubernetes,最简单,最快的方法是使用Docker容器。此方法没有很多准备工作,也不占用大量资源。只需具备可以运行Docker的任何体面的Linux机器即可。

前面我们已经介绍了其他方法,这些方法可以在Linux上运行一个轻量级Kubernetes集群。

使用Ansible和Kubespray部署生产Kubernetes集群

通过MicroK8和Snap部署轻量级Kubernetes

如何在KVM上运行Minikube

对于Docker Lovers,我们可以探索此方法。设置已在CentOS 7和Ubuntu服务器上完成。但是对于其他Linux发行版,该过程应该类似。

安装Docker

首先安装Docker运行时引擎,它将用于运行所有Kubernetes服务。

通过运行以下命令确认docker是否正确安装:

$docker info
..............
Client:
 Debug Mode: false

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 19.03.1
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
 runc version: 425e105d5a03fabd737a126ad93d62a9eeede87f
 init version: fec3683
 Security Options:
  apparmor
  seccomp
   Profile: default
 Kernel Version: 4.15.0-54-generic
 Operating System: Ubuntu 18.04.2 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 7.604GiB
 Name: k8s-server
 ID: KRK3:OLPP:CCB2:CE5K:6PSD:D6JP:4Q6X:HL7H:46FN:YECO:CXL5:BQTX
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

安装Go

我们需要安装Go(Golang),因为它将用于构建所需的软件包。

如何在Fedora上安装Go(Golang)

如何在CentOS/RHEL 8上安装Go

如何在Ubuntu/CentOS 7上安装Go

安装同类工具

kindis是一种使用Docker容器节点运行本地Kubernetes集群的工具。
该类主要用于测试Kubernetes 1.11+,最初针对一致性测试。

$GO111MODULE="on" go get sigs.k8s.io/kind

将种类二进制文件复制到PATH中的目录中。

sudo cp ~/go/bin/kind /usr/local/bin/

检查安装的版本。

$kind version
v0.4.0

使用Docker容器节点运行本地Kubernetes集群。

现在,我们满足了所有要求。我们应该准备好创建在Docker容器上运行的本地Kubernetes集群。

sudo kind create cluster

我们应该获得如下输出:

kind create cluster | sudo tee -a kind_output.txt
Creating cluster "kind" ...
 • Ensuring node image (kindest/node:v1.15.0)