部署kubernetes集群

一、部署说明
最近很多学生问我kubernetes的技术问题,回答了很多次,突然间想我是不是做一些帖子,可以让我的学生能看到,身边想学习的人也都能看到呢!于是我打算开始写这边文章,如果访问量大,学习的人多,我会每周更新一篇的速度去将kubernetes的技术一直更新下去。
随着云计算的发展,容器技术不断的更新,发展。从docker到kubernetes,企业也在不断的升级自己的架构,代表公司就是我们熟悉的京东,从2015年开始不断的使用容器来承载自己的业务。2018年618,60%的业务都是由kubernetes来完成的。
相比openstack+kvm+docker来说,kubernetes集群更加稳定,更加容易上手,性能更加优秀。越来越多的公司都在从docker转到kubernetes上来。
那么想把业务放到kubernetes,就必须先搭建一个kubernetes集群,接下来我就来给大家来部署一个kubernetes集群。
我们的课程也会从实战出发,一步一步教给大家如何使用Kubernetes,如何将业务放到kubernetes.
废话少说,干活。

            说明:实验中的机器是CENTOS7.5 关闭firewall selinux。

二、实验架构
kubernetes集群分为master和node两个成员。
master负责节点负责对外提供一系列管理集群的 API 接口,并且通过和node节点交互来实现对集群的操作管理。
node负责节点是实际运行 Docker 容器的节点,负责和节点上运行的 Docker 进行交互,并且提供了代理功能。
部署kubernetes集群
三、实验步骤
1.根据实验拓扑配置计算机的主机名、IP地址、hosts.
以master.ayitula.com机器为例,看下图:
部署kubernetes集群
2.部署master
[root@master ~]# yum -y install kubernetes etcd
[root@master ~]# vi /etc/kubernetes/config
部署kubernetes集群
[root@master ~]# vi /etc/kubernetes/apiserver
部署kubernetes集群
启动相关服务
etcd:key-value键值存储数据库,用来存储kubernetes的信息的。
[root@master ~]# systemctl restart etcd
apiserver:用户和 kubernetes 集×××互的入口,封装了核心对象的增删改查操作,提供了 RESTFul 风格的 API 接口,通过 etcd 来实现持久化并维护对象的一致性。
[root@master ~]# systemctl restart kube-apiserver
controller-manager:主要是用于保证 replicationController 定义的复制数量和实际运行的 pod 数量一致,另外还保证了从 service 到 pod 的映射关系总是最新的。
[root@master ~]# systemctl restart kube-controller-manager
scheduler:负责集群资源的调度和管理,例如当有 pod 异常退出需要重新分配机器时,scheduler 通过一定的调度算法从而找到最合适的节点。
[root@master ~]# systemctl restart kube-scheduler

使用netstat命令查看服务是否全部启动

部署kubernetes集群
可以看到我的服务全部启动成功,OK!去部署Node

3.部署node
[root@node1 ~]# yum -y install kubernetes etcd
[root@node1 ~]# vi /etc/kubernetes/kubelet
部署kubernetes集群
启动相关服务
kubelet:运行在node 节点,负责和节点上的 Docker 交互,例如启停容器,监控运行状态等。
[root@node1 ~]# systemctl restart kubelet
proxy:运行在 node节点,负责为 pod 提供代理功能,会定期从 etcd 获取 service 信息,并根据 service 信息通过修改 iptables 来实现流量转发,将流量转发到要访问的 pod 所在的节点上去。
[root@node1 ~]# systemctl restart kube-proxy
docker: docker 容器守护进程
[root@node1 ~]# systemctl restart docker
通过netstat命令查看服务启动器情况

部署kubernetes集群

OK,服务启动成功

部署第二个Node node2.ayitula.com. 步骤同理,我就不在复制了。同上
4.测试
使用kubectl命令查看master是否识别了node
[root@master ~]# kubectl get node

                                        哈哈,看到了吧,实验完成了。
                                        下一节部署pod,大家下周来看吧!!!

猜你喜欢

转载自blog.51cto.com/biying/2164624