目的
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。