您的位置:首页 > 运维架构 > Docker

Kubernetes(K8S)集群管理Docker容器(部署篇)

2017-11-23 09:56 1236 查看
今天这篇文章教给大家如何快速部署一套Kubernetes集群。K8S集群部署有几种方式:kubeadm、minikube和二进制包。前两者属于自动部署,简化部署操作,我们这里强烈推荐初学者使用二进制包部署,因为自动部署屏蔽了很多细节,使得对各个模块感知很少,非常不利用学习。

所以,这篇文章也是使用二进制包部署Kubernetes集群。

本章目录





一、架构拓扑图





二、环境规划

角色
IP
组件
master
4000

192.168.0.211
etcd

kube-apiserver

kube-controller-manager

kube-scheduler
node01
192.168.0.212
kubelet

kube-proxy

docker
node02
192.168.0.213
kubelet

kube-proxy

docker
环境说明:

操作系统:Ubuntu16.04 or CentOS7

Kubernetes版本:v1.8.3

Docker版本:v17.09-ce

均采用当前最新稳定版本。

关闭selinux。


三、部署集群


3.1 下载二进制包

打开下面网址,下载下面两个红色框框的包。

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.8.md#v183









下载完成后,上传到服务器:

kubernetes-server-linux-amd64.tar.gz上传到master节点。

kubernetes-node-linux-amd64.tar.gz 上传到node节点。


3.2 安装etcd3

注意:Ubuntu系统etcd配置文件在/etc/default/etcd。


3.3 运行Master节点组件


3.3.1 apiserver

创建配置文件:

创建systemd服务文件:

启动服务,并设置开机启动:

注意:apiserver默认支持etcd3,如果是etcd2,需启动时指定版本选项--storage-backend=etcd2


3.3.2 scheduler

创建配置文件:

创建systemd服务文件:

启动服务,并设置开机启动:


3.3.3 controller-manager

创建配置文件:

创建systemd服务文件:

启动服务,并设置开机启动:


3.3.4 小结

Master节点组件就全部启动了,需要注意的是服务启动顺序有依赖,先启动etcd,再启动apiserver,其他组件无顺序要求。

查看Master节点组件进程状态:





说明组件都在运行。

如果启动失败,请查看启动日志,例如:

#journalctl -u kube-apiserver


3.4 运行Node节点组件


3.4.1 kubelet

创建kubeconfig配置文件:

kubeconfig文件用于kubelet连接master apiserver。

创建配置文件:

创建systemd服务文件:

启动服务,并设置开机启动:


3.4.2 proxy

创建配置文件:

创建systemd服务文件:

启动服务,并设置开机启动:


3.4.3 小结

其他节点加入集群与node01方式相同,但需修改kubelet的--address和--hostname-override选项为本机IP。

查看Node节点组件进程状态:





说明组件都在运行。

如果启动失败,请查看启动日志,例如:

#journalctl -u kubelet


3.5 验证集群是否部署成功

设置可执行文件到系统变量,方便使用:

查看集群节点状态:



两个节点都加入到了kubernetes集群,就此部署完成。

另外,近期录制了<<Docker高级应用实战课程>>,包括Swarm和Kubernetes集群管理系统,集群也是Docker技术应用精髓所在!有需要的不妨看看。

课程地址:https://ke.qq.com/course/246704

博主会继续更新Kubernetes相关文章,有需要的朋友可以关注下。



QQ技术群,有需要的朋友可以加下:



(Python运维开发群 249171211)



(Docker技术交流群
516039855)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: