序言
目前K8S是大趋所示,对容器的编排管理有一统江湖的意思
- Rancher 2.0发布之后,基础编排平台从Cattle变成了Kubernetes,Rancher 2.0使用的编排技术完成转向成为Kubernetes,
- Rancher 2.0与Rancher 1.6有了很大区别。目前,在这两个版本之间还没有直接的升级路径。
基于如上的种种原因我们直接从Rancher2.X开始学习,没有必要再去学习一定会被取代的东西和知识点了。
本文主要内容来自于:
- https://docs.rancher.cn/docs/rancher2/quick-start-guide/_index -----------api说明
- https://docs.rancher.cn/rancher2/ ----------------------rancher2.X版本总说明页面
- https://docs.rancher.cn/docs/rancher2/installation/other-installation-methods/single-node-docker/_index/ ------------2.4.X版本的安装与2.5.X版本的安装不一样.
- https://blog.51cto.com/10950710/2478360?source=dra (特别鸣谢+>+)
准备工作
安装失败处理办法
如果内置启动创建K8S会有很多问题,这时候就需要清空下实例,重新搭建.方法如下(心酸的血泪史,建议不要安装最新版本的rancher因为未知的坑在等待你,选择rancher/rancher:stable版本):
1 | docker stop $(docker ps -aq) |
安装Rancher 2.x
首先需要安装Docker,具体参考https://blog.csdn.net/cuiyaonan2000/article/details/102542581
1 | #修改时区 |
设置账号密码,以及设置能访问该rancher的ip或者域名

右下角将英文切换成中文,左下角是rancher的版本号

创建K8S集群
点击集群选项卡右上角的----添加集群–》选择自定义创建
**可以看到K8S的服务商有很多哈,这里我们是选择从现有节点中创建。

这里只输入个集群名称就行了,同时也可以选择K8S的版本这里我就用的默认

如下的这个步骤很重要(这里的命令是用于添加集群,同时给运行的集群设置角色,------即不同机器添加不同的角色,运行不同的命令)
- 主机选项中勾选
Etcd与Control两个选项,复制命令,然后在master主机执行命令—如此表示该主机是管理机器 - 主机选项中勾选
Worker,复制命令,然后在node主机执行命令----如此表示该主机是工作主机 - 官方文档说明的是,在主机和工作机器上都分别执行后再点击如下截图的完成。但是后续应该可以再动态添加的。

执行完上面的步骤后–其实要很长时间这里我就做了2台虚拟机。
如下所示:红色字体表示当前正在做的事情-----全自动。中间如果服务器挂掉了也没事它也会自动重启然后在继续搭建k8s服务器
因为–restart=unless-stopped 总之这是个很漫长的过程 慢慢等待吧,除非有什么问题。

如下可以看到2个角色 一个是 所有角色 一个 worker角色,且都在配置阶段------这个有点坑为啥呢,因为中间如果有问题你不知道啊,然后程序就会不断的重启去搭建K8S。。。。。。很坑
最终如果现实如下的内容就表示成功了.状态是active,处理器和内存占有率可以看到,最新版本的安装把我坑惨了,各种问题~~~~~~~

部署服务–官方说法部署工作负载
工作负载即 Kubernetes 对一组 Pod 的抽象模型,用于描述业务的运行载体,包括 Deployment、Statefulset、Daemonset、Job、CronJob 等多种类型,详情请参考名词解释。
官网上提供了两种类型的工作负载:它们都是将集群外部流量导入到集群内的方式,只是实现方式不同-----cuiyaonan2000。
NodePort
NodePort 服务是引导外部流量到你的服务的最原始方式。
NodePort,正如这个名字所示,在所有节点(虚拟机)上开放一个特定端口,任何发送到该端口的流量都被转发到对应服务。

Ingress—所以选你了
Ingress 事实上不是一种服务类型。相反,它处于多个服务的前端,扮演着“智能路由”或者集群入口的角色。
例如:任何发往域名 foo.yourdomain.com 的流量转到 foo 服务,将路径 yourdomain.com/bar/path 的流量转到 bar 服务。

用例部署
Rancher Server 中存在一个项目的概念,默认存在两个项目:default 和 system,类似于 namespaces 但是并不是 namespaces,而且 namespaces 还率属于某项目下,项目可以配置 Pod 安全策略以及资源配额,可以理解为更好的划分各个项目资源隔离。default 项目可以理解为非系统项目的个人自定义项目,system 项目可以理解为具有所有 Kubernetes 和 Rancher 系统命名空间的系统项
在我们成功创建一个集群后,系统会自动创建2个项目一个是Default,一个是System,如下图所示.这里我们选择Default里面进行相关容器的部署

选择–>部署服务

你可以在部署页中输入你的应用名称,可以指定部署多少个Pod(k8s中的概念),选择对应的镜像,然后配置各种参数策略,
如果你想进行数据持久化可以到数据卷的tab中进行配置,
如果你有参数的定义可以到环境变量的tab中进行指定,最后再启动它。
这看起来似乎是更方便的让我们执行了docker run命令,前提是你得熟悉docker中各种命令的使用及含义
如下我们启动一个tomcat镜像----这里有个小问题就是tomcat镜像没法用,启动了访问不了,使用tomcat:alpine镜像就没问题