基于rancher部署k8s及使用

K8s概述

k8s全称kubernetes,这个名字大家应该都不陌生,k8s是为容器服务而生的一个可移植容器的编排管理工具,越来越多的公司正在拥抱k8s,并且当前k8s已经主导了云业务流程,推动了微服务架构等热门技术的普及和落地,正在如火如荼的发展。
那么,K8S实现了什么?
从架构设计层面,我们关注的可用性,伸缩性都可以结合k8s得到很好的解决,如果你想使用微服务架构,搭配k8s,真的是完美,再从部署运维层面,服务部署,服务监控,应用扩容和故障处理,k8s都提供了很好的解决方案。
具体来说,主要包括以下几点:
 服务发现与调度
 负载均衡
 服务自愈
 服务弹性扩容
 横向扩容
 存储卷挂载
总而言之,k8s可以使我们应用的部署和运维更加方便。

二、 K8s的集群架构

 主节点,承载 k8s 的控制和管理整个集群系统的控制面板
 工作节点,运行用户实际的应用
在这里插入图片描述

三、 使用Rancher部署k8s

Rancher是业界唯一完全开源的企业级容器管理平台,为企业用户提供在生产环境中落地使用容器所需的一切功能与组件。
Rancher2.0基于Kubernetes构建,使用Rancher,DevOps团队可以轻松测试、部署和管理应用程序,运维团队可以部署、管理和维护一切Kubernetes集群,无论集群运行在何基础设施之上。

安装docker指定版本

# curl http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker.repo
# yum makecache fast
# yum install -y docker-ce

系统准备

# systemctl stop firewalld && systemctl disable firewalld
# sed -i 's/enforcing/disabled/g' /etc/selinux/config; setenforce 0
# systemctl start docker && systemctl enable docker

安装rancher

# docker run -d --privileged --name rancher -v /home/volume/rancher:/var/lib/rancher --restart=unless-stopped -p 70:80 -p 442:443 rancher/rancher:v2.4.8

浏览器访问

设定好密码之后登录
基于rancher部署k8s及使用_第1张图片

K8S集群部署

登录进来之后,点击添加集群,选择添加主机自建kubernetes集群:
基于rancher部署k8s及使用_第2张图片
选择集群选项:
基于rancher部署k8s及使用_第3张图片
点击下一步之后,勾选集群角色,这里我就在一台机器上部署集群,所以全部勾选:
基于rancher部署k8s及使用_第4张图片
复制下方命令,在集群对应角色的机器上执行。
执行完之后,页面会出现注册成功的提示:
基于rancher部署k8s及使用_第5张图片
此时集群正处于准备状态中等待一段时间集群自动搭建完成:
基于rancher部署k8s及使用_第6张图片
等待一段时间集群自动搭建完成,显示为active状态集群就搭建完成:
基于rancher部署k8s及使用_第7张图片
查看集群状态:
基于rancher部署k8s及使用_第8张图片
点击执行kubectl命令行:
基于rancher部署k8s及使用_第9张图片
基于rancher部署k8s及使用_第10张图片
查看集群主机:
基于rancher部署k8s及使用_第11张图片
角色配置一目了然
查看项目及命名空间:
基于rancher部署k8s及使用_第12张图片

部署应用

部署NFS

打开应用商店并点启动:
基于rancher部署k8s及使用_第13张图片
启动nfs-provisioner
基于rancher部署k8s及使用_第14张图片
基于rancher部署k8s及使用_第15张图片
启动完成后,应用列表中显示Active
基于rancher部署k8s及使用_第16张图片

部署其他应用:

打开部署服务
基于rancher部署k8s及使用_第17张图片
基于rancher部署k8s及使用_第18张图片
添加数据卷,选前面安装的NFS服务并配置容量及容器与主机的映射路径:
基于rancher部署k8s及使用_第19张图片
基于rancher部署k8s及使用_第20张图片
填好相关参数之后,点击启动:
基于rancher部署k8s及使用_第21张图片
可以看到,nginx服务已经正常运行,点击 Pod副本数,可以看到下面运行的nginx pod数立马增加1,这就实现了动态伸缩。
打开命令行,新增一个网页,之前容器挂载目录是/usr/share/nginx/html,新增一个网页,再次刷新页面,就可看到新页面了:
基于rancher部署k8s及使用_第22张图片

jenkins 调用Rancher2.x api实现CI/CD

Rancher提供了api给我们调用,从而实现不用通过访问Rancher UI 或使用 Rancher CLI 来对应用服务进行例如启动,停止,创建,升级等一系列的操作;

Rancher创建api key

点击用户右上角–>API & Keys
基于rancher部署k8s及使用_第23张图片
添加key
基于rancher部署k8s及使用_第24张图片
输入描述,选择永不过期,这里不指定作用范围。
请根据实际情况来原则
基于rancher部署k8s及使用_第25张图片
创建成功后,一定要保存。它只会显示一次
基于rancher部署k8s及使用_第26张图片
我只需要用到2个:

Access Key(用户名):
token-v82g7
Secret Key(密码):
zzph8mnrv7r2q5qqt9kds85xvjcwzpg5btkttpvj72nmfll8jmxn67

Jekins安装Rancher插件

在jekins安装插件:Redeploy Rancher2.x Workload Plugin
基于rancher部署k8s及使用_第27张图片
添加rancher的凭据
基于rancher部署k8s及使用_第28张图片
查看rancher的API接口
基于rancher部署k8s及使用_第29张图片
查看redeploy的地址,复制红框的URL地址
基于rancher部署k8s及使用_第30张图片

Jekins配置rancher

在工作中引入rancher的插件:
基于rancher部署k8s及使用_第31张图片
配置工作负载API的地址,就是粘贴rancher中复制的API地址
基于rancher部署k8s及使用_第32张图片

你可能感兴趣的:(运维)