请选择 进入手机版 | 继续访问电脑版

Linux云计算虚拟化-使用rancher搭建k8s集群并发布电商网站

[复制链接]
时间苍白了等待 发表于 2021-1-2 12:13:58 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
文章目次



Linux云盘算虚拟化-使用Rancher搭建k8s集群并使用lnmp架构发布电商网站

1. Rancher先容

Rancher是一个开源容器管理平台,可以资助企业在生产情况中轻松快捷的摆设和管理容器。Rancher可以轻松管理各个情况的kubernetes,满意IT需求并为devops团队提供支持。
k8s已经成为容器编排标准,也成为了各类云与虚拟化厂商提供的标准根本架构。Rancher用户可以选择使用Rancher Kubernetes Engine(RKE)创建集群,也可以使用GKE`AKS\EKS`等云k8s服务。Rancher用户还可以导入和管理现有的k8s集群。


  • GKE:Google Kubernetes Engine, Google 的 k8s 托管服务
  • AKS:Azure Kubernetes 服务 (AKS) ,微软的 k8s 托管服务
  • EKS:Amazon Elastic Container Service for Kubernetes ,Amazon 的 K8S 托管服务
Rancher为 DevOps 工程师提供了一个直观的用户界面来管理他们的服务容器,用户不需要深入相识 Kubernetes 概念就可以开始使用 Rancher。 Rancher 包罗应用商店,支持一键式摆设 Compose模板。
docker-compose 是 Docker 容器举行编排的工具,界说和运行多容器的应用,可以一条下令启动多个容器,使用 docker-compose不再需要使用 shell 脚原来启动容器。
docker-compose 默认的模板文件是 docker-compose.yml,此中界说的每个服务都必须通过image 指令指定镜像或 build 指令(需要 Dockerfile)来自动构建。
Rancher组成部分:
①根本设施编排


  • Rancher可以使用任何公有云大概私有云的Linux主机资源。
  • Linux主机可以是虚拟机,也可以是物理机。
  • Rancher仅需要主机有CPU,内存,当地磁盘和网络资源。
  • 从Rancher的角度来说,一台云厂商提供的云主机和一台自己的物理机是一样的。
  • Rancher为运行容器化的应用实现了一层机动的根本设施服务。Rancher的根本设施服务包罗网络, 存储, 负载平衡, DNS和安全模块。
  • Rancher的根本设施服务也是通过容器摆设的,所以同样Rancher的根本设施服务可以运行在任何Linux主机上。
②容器编排与调治


  • Rancher包罗了当前全部主流的编排调治引擎,比方Docker Swarm,Kubernetes,和Mesos。
  • Rancher还支持自己的Cattle容器编排调治引擎。
  • Cattle被广泛用于编排Rancher自己的根本设施服务以及用于Swarm集群,Kubernetes集群和Mesos集群的设置,管理与升级。
③应用商店


  • Rancher的用户可以在应用商店里一键摆设由多个容器组成的应用。
  • 用户可以管理这个摆设的应用,而且可以在这个应用有新的可用版本时举行自动化的升级。
  • Rancher提供了一个由Rancher社区维护的应用商店,此中包罗了一系列的盛行应用。
  • Rancher的用户也可以创建自己的私有应用商店。
④企业级权限管理


  • Rancher支持机动的插件式的用户认证。支持Active Directory,LDAP, Github等 认证方式。
  • Rancher支持在情况级别的基于脚色的访问控制 (RBAC),可以通过脚色来设置某个用户大概用户组对开发情况大概生产情况的访问权限。
Rancher的主要组件和功能:

rancher官网:https://rancher.com/ https://www.rancher.cn/
中文官方文档:https://docs.rancher.cn/rancher2/
2. 使用Rancher搭建k8s集群

2.1 实验情况先容

实验拓扑图:

各主机先容:
主机名IP所在系统版本作用rancher192.168.43.175centos7.6rancher服务器master192.168.43.245centos7.6k8s-master,盘算服务器,Etcd , Control,Worker节点node192.168.80.147centos7.6k8s-node,盘算服务器先容一个小本领:当某条指令需要在所有主机上执行,可以用xshell远程毗连上所有主机,然后选择所有会话执行下令,这样就不需要一台一台执行。

以下内容所有主机都要操纵:
  1. # 所有主机都关闭防火墙systemctl stop firewalld && systemctl disable firewalld# 禁用selinxsed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinuxsed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/configsetenforce 0# 卸载交换内存swapoff -ased -i 's/.*swap.*/#&/g' /etc/fstab# 修改主机名hostnamectl set-hostname rancherhostnamectl set-hostname masterhostnamectl set-hostname node# 移除原先的yum源,安装aliyun的centos7和epel源# 这里视情况选择是否执行mv /etc/yum.repos.d/* /optwget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repowget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repoyum clean allyum makecache
复制代码
所有主机安装docker:
  1. # 所有节点都安装dockeryum install -y yum-utils device-mapper-persistent-data lvm2# 添加docker源yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 安装docker19# yum install docker-ce docker-ce-cli containerd.io -y【直接安装会安装docker20版本,在rancher中会导致创建集群失败。】yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpmyum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-cli-19.03.9-3.el7.x86_64.rpmyum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-19.03.9-3.el7.x86_64.rpm# 启动docker并参加到开机自启systemctl start docker && systemctl enable docker.service && systemctl status docker# 设置docker镜像加速器,加速pull镜像到当地的速度tee /etc/docker/daemon.json 80/tcp, 0.0.0.0:443->443/tcp   sad_hopper
复制代码
输入网址:https://192.168.43.175/
①设置登录暗码:

②询问这个URL是否可以被所有节点访问,确认可以就好。

③设置中文界面

④注销重新登录:https://192.168.43.175/login

3. 添加集群并为集群添加节点

3.1 创建集群及添加master节点

①创建集群:

②自界说创建k8s集群:

③设置集群名称和网络驱动:


④设置master节点:

  1. # 创建k8s集群的master节点,纵然用镜像运行一个容器作为master节点[root@master ~]# sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.3.3 --server https://192.168.43.175 --token q448457pthn8zzvkplxpwkrsn8ddjm8wzrspl54wgjl6m2d65zgw54 --ca-checksum 638d9803e912eceb52d2246f61179802ccfb4b97a526b25ba37da78e78f19cf6 --etcd --controlplane --workerdea4bf2d798ccc25db021d5d6e3635f28a3938d5cc6187cd7b24b9f54b2fec8d
复制代码

点击“完成”即可。
⑤检察k8s集群创建进度,大概几分钟就能安装好。【镜像在当地,不消pull的情况下】


看到“Active”就表明k8s集群已经安装乐成了。
  1. # 如果遇到报错,大概是master节点之前安装过k8s导致的,可以先把原来安装的k8s先删掉,再执行上述操纵。# 如果遇到pull有问题,大概是pull太慢导致的,可以思量先pull到当地,然后使用当地镜像。# 可以通过检察k8s的日志和docker容器的日志检察安装情况:docker logs 容器名              # docker容器日志tail -100 /var/log/messages    # k8s日志
复制代码
⑥检察下集群和各节点情况:




3.2 添加node到k8s集群

①编辑集群:

②选择worker脚色,在对应的节点上添加:

  1. # 在node上运行[root@node ~]# sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.3.3 --server https://192.168.43.175 --token mw776bmzz99wqtfxx2l8pm9rngzlmdfc8772kcl88htvcfjw5xzxwp --ca-checksum c2f26cf0411c030a7e3b71c92667505e083c568eb2a44cc6365cf8b42ed72df8 --worker
复制代码

③检察集群添加节点情况:


可以看到,node节点也添加进k8s集群中了。
4. 使用rancher自带监控检察k8s集群运行状态

①点击“启用监控并检察实时监控指标”




②等候安装grafana组件,可视化监控数据
看到下图就算安装乐成了:

④检察grafana监控数据



⑤可以选择监控哪个节点

以上内容就是集群的创建及集群各指标的监控。
5. 分布式LNMP架构摆设电商网站

5.1 CoreDNS集群内部服务发现



  • CoreDNS,从kubernetes1.2开始成为了k8s的默认DNS服务器。
  • kubeadm安装的k8s集群,默认装有CoreDNS,使用下令kubeadm init --feature-gates=CoreDNS=true启用即可。
  • 在kubernetes集群中,直接访问service name,然后通过CoreDNS域名分析服务找到集群IP。
  • 在rancher情况中已经安装了CoreDNS服务,无需重复安装。
5.2 在rancher节点安装并测试kubectl

①安装kubectl
  1. # 设置kubernetes的yum源[root@rancher ~]# tee /etc/yum.repos.d/kubernetes.repo 自界说域名->填写域名</p> [align=center][img]https://img-blog.csdnimg.cn/20201231214131734.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNjUyMjA5OQ==,size_16,color_FFFFFF,t_70#pic_center[/img][/align]
  2. 添加服务->服务选择“nginx-shop”->端口(服务名)选择“nginx”
  3. [align=center][img]https://img-blog.csdnimg.cn/20201231214437798.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNjUyMjA5OQ==,size_16,color_FFFFFF,t_70#pic_center[/img][/align]
  4. [align=center][img]https://img-blog.csdnimg.cn/20201231215737808.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNjUyMjA5OQ==,size_16,color_FFFFFF,t_70#pic_center[/img][/align]
  5. [size=4]5.7 安装ecshop[/size]
  6. [b]①设置域名分析:[/b]
  7. [b]在当地设置域名与IP对应关系:[/b]
  8. C:\Windows\System32\drivers\etc
  9. [align=center][img]https://img-blog.csdnimg.cn/20201231215020400.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNjUyMjA5OQ==,size_16,color_FFFFFF,t_70#pic_center[/img][/align]
  10. [code]# 用notepad++打开,记事本打开应该生存不了# 在hosts文件末了加上这句192.168.43.147       shop.com
复制代码
②安装ecshop
输入网址:http://shop.com
谷歌应该打不开,要用火狐。





③打开首页及背景:
首页:http://shop.com/

背景:http://shop.com/admin/privilege.php?act=login

6. 总结


  • docker装的是19版本,镜像堆栈用的是aliyun的,加速pull速度。
  • 在线pull安装rancher的速度非常慢,发起先pull需要的镜像,生存到当地。
  • 如果所有的镜像都有,那创建k8s集群是很快的,如果5分钟还没搞定,大概是因为有的镜像没有,docker在线pull中。
  • 如果所有的镜像都有,但照旧报错,大概是装rancher、master、node的主机之前装过k8s,要把之前的文件删除干净。还原也可以。
  • 摆设php、nginx、mysql的方法差不多,都是先摆设deployment和pod,再摆设service
  • 把ecshop的网页数据放到调用的位置即可,本文放到node节点上的/web/html目次,而mysql数据的存放位置在node节点的/web/data目次下。
  • 通过ingress添加规则,将域名分析到边沿节点,然后外部用户就可以通过域名访问k8s集群中的服务。

来源:https://blog.csdn.net/weixin_36522099/article/details/111479458
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )