目的
Kubernetes是Google 2014年创建管理的,是Google 10多年大规模容器管理技术Borg的开源版本。它是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。本文详细介绍了集群的搭建。
规划
一台master结点,两台node结点
| 主机名 | IP | OS | 配置 | 
|---|---|---|---|
| k8s-master | 192.168.6.201 | CentOS 7 | 2 CPUs, 2G | 
| k8s-node1 | 192.168.6.202 | CentOS 7 | 2 CPUs, 2G | 
| k8s-node2 | 192.168.6.203 | CentOS 7 | 2 CPUs, 2G | 
组件功能:

安装
设置主机名
192.168.6.201上执行
1  | # 设置master节点主机名  | 
192.168.6.202上执行
1  | # 设置node1节点主机名  | 
192.168.6.203上执行
1  | # 设置node2节点主机名  | 
所有节点上添加hosts
1  | 192.168.6.201 k8s-master  | 
安装docker-ce
所有节点上(k8s-master, k8s-node1, k8s-node2)安装docker-ce:
1  | # 安装必要软件包  | 
环境准备
所有节点上(k8s-master, k8s-node1, k8s-node2)做如下准备工作
1  | # 关闭firewalld  | 
安装kubelet kubeadm kubectl
所有节点上(k8s-master, k8s-node1, k8s-node2)安装kubelet kubeadm kubectl:
1  | # 配置kubernetes镜像源  | 
下载镜像
k8s-master节点上执行如下命令获取下载镜像所需列表
1  | # 获取所需镜像列表  | 
由于国内无法访问k8s.gcr.io镜像仓库,先从daocloud.io镜像仓库下载所需镜像,然后修改镜像标签
所有节点上(k8s-master, k8s-node1, k8s-node2)下载安装kubernetes集群所需镜像
1  | # 下载镜像  | 
为了简化上述拉取镜像操作,特意写了个批量脚本:
1  | vim sun-k8s.sh  | 
初始化master节点
在k8s-master节点上执行初始化操作
1  | # 初始化master  | 
1  | kubeadm init参数详解:  | 
日志如下
1  | # 初始化master  | 
在k8s-master节点上按照提示执行如下命令:
1  | mkdir -p $HOME/.kube  | 
安装网络插件
这里选择安装flannel网络插件,也可以安装其他网络插件。master节点上安装flannel网络插件:
1  | # 下载kube-flannel.yaml  | 
pod状态确认结果如下:
1  | [root@k8s-master ~]# kubectl get pod --all-namespaces  | 
加入node节点
master初始化成功时,屏幕会输出加入节点的命令如下所示:
1  | # 加入节点  | 
两台node节点上都执行加入节点命令:
1  | [root@k8s-node1 ~]# kubeadm join 192.168.92.201:6443 --token 19jjaa.6q8jc5u15ykqqoyf \  | 
确认集群状态
kubernetes集群安装完成,确认集群状态:
1  | # 确认node状态  | 
至此,k8s集群已搭建完成,enjoy it。

