近几年Google的Kubernetes(简称k8s)已经成为分布式容器编排和管理领域事实上的标准,在基于容器的微服务架构下的分布式应用开发、部署和运维管理等领域,会有越来越多的用户部署和使用k8s平台。对于初学着来说,部署一个多机k8s集群一来缺少环境、另外也相对比较复杂。为了满足用户尝试和使用的便利性需要,可以使用两种方法在一个单机环境下(物理机或者虚拟机)部署一个k8s环境:
- Minikube: 这种方式是Google推荐的本地(单机)部署方法,它在一个虚拟机(或物理机)上部署一个单节点k8s集群,用于开发或测试。
- kubeadm-dind: 这种方式是在一个虚拟机(或物理机)上部署一个多节点k8s集群(Minikube是单节点),它要求在虚拟机上有一个docker daemon运行。kubeadm-dind使用docker-in-docker(简称DinD)技术在虚拟机上首先以容器的方式启动k8s的多个节点(master节点和多个woker node节点),然后在节点内部再启动若干容器运行k8s相应的组件以完成部署一个k8s集群。
本文将向大家介绍kubeadm-dind方式的k8s部署的方法。使用这种方法部署成功后,大家就可以在自己的单机环境下学习和使用k8s了。后面,我会在另一篇文章中介绍TiDB部署到k8s的方法,需要大家先按照本文的描述部署好一个kubeadm-dind方式下的k8s集群。
环境要求说明:
- 机器资源:一个VM,2 vCPU 、4GB 内存
- 操作系统:CentOS 7.3或更高
- Docker:17.03或更高
- Kubectl:1.10.5或更高
- 网络:国内由于对很多google的站点进行了屏蔽,很多容器镜像无法直接下载,所以要采用变通的方法,具体描述见本文后面的描述。如果读者有条件的化,可以购买阿里云或者UCloud海外云主机,也可以解决这一问题。
下面是具体的部署方法和一些注意事项:
1. 安装Docker
这里介绍在CentoOS 7.4上安装Docker 17.03社区版本的方法:
(1) 这里建议国内读者使用阿里云镜像安装
#先安装doc