实践指南-快速解锁Rancher v1.2

本文涉及的产品
资源编排,不限时长
简介:

引言


Rancher v1.2已经发布,相信众多容器江湖的伙伴们正魔拳擦准备好好体验一番。由于Docker能够落地的操作系统众多,各种Docker版本不同的Graph driver,所以通常大版本的第一个release都会在兼容性上有一些小问题。为了更好的体验Rancher v1.2的完整特性,我们选取了Rancher测试比较严格的运行环境。手握众多服务器资源的devops们可以飘过此文,身背MBP或Windows笔记本的Sales/Pre-Sales们可以品读一番。

 

基础软件安装


首先需要安装基础软件,由于Rancher v1.2已经支持Docker v1.2,所以可以直接使用Docker的Mac或Windows版(以下以Mac为例),下载地址:https://www.docker.com/。在Mac上,Docker会使用xhyve轻量级虚拟化来保证一个Linux环境,所以可以把Rancher Server直接运行起来。

 

因为要在MBP上添加多个Host组成小集群,所以需要用虚拟化扩展多个节点添加到Rancher集群中。这里可以使用docker-machine控制VirtualBox来添加节点,VirtualBox下载地址:https://www.virtualbox.org/wiki/Downloads。

 

在Host节点的操作系统上,可以选取RancherOS,我们的目标是快速体验新特性,而Rancher Labs在Rancher和RancherOS的相互兼容性上是做了大量测试的,这样可以避免我们少进坑,直接体验新特性。RancherOS下载地址:https://github.com/rancher/os,推荐使用最新release版本。

 

在用docker-machine驱动VirtualBox来创建Host时,可以指定操作系统ISO的URL路径,由于我们使用RancherOS,所以最好把RancherOS放到本机HTTP服务器内。MBP内自带Apache HTTPD,将Apache的vhosts模块开启,并添加配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 开启vhost /etc/apache2/httpd.conf
# 以下两行的默认注释去掉
LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
Include / private /etc/apache2/extra/httpd-vhosts.conf
  
# vhost的配置 /etc/apache2/extra/httpd-vhosts.conf
# DocumentRoot目录就是在用户根目录下创建Sites
# 如用户名niusmallnan,则DocumentRoot就是/Users/niusmallnan/Sites
<VirtualHost *: 80
     DocumentRoot  "/Users/niusmallnan/Sites" 
     ServerName localhost 
     ErrorLog  "/private/var/log/apache2/sites-error_log" 
     CustomLog  "/private/var/log/apache2/sites-access_log" 
     common 
     <Directory /> 
         Options Indexes FollowSymLinks MultiViews 
         AllowOverride None 
         Order allow,deny 
         Allow from all 
         Require all granted 
     </Directory>
</VirtualHost>
  
# 重启 Apache
$ sudo apachectl restart
  
# 拷贝 RancherOS的ISO 到 DocumentRoot
$ cp rancheros.iso /Users/niusmallnan/Sites/


Rancher安装


首先打开Docker,并配置registry mirror,配置完成后重启Docker。mirror的服务可以去各个公用云厂商申请一个,比如我这里使用的是阿里云的registry mirror,如图所示:


wKioL1i8L73zdsrLAAJQ9xLs2Vk376.png


打开terminal,安装Rancher Server:

1
$ docker run -d --restart=unless-stopped -p  8080 : 8080  rancher/server:stable

若要添加Host节点,则需要通过docker-machine创建Host,这里使用的规格是2核2G(具体可根据自身MBP的性能调整),脚本(add_ros_host.sh)参考如下:

1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/env bash
ROS_ISO_URL= 'http://127.0.0.1/rancheros.iso' 
ROS_CPU_COUNT= 2 
ROS_MEMORY= 2048 
docker-machine create -d virtualbox \
         --virtualbox-boot2docker-url 
$ROS_ISO_URL \
         --virtualbox-cpu-count $ROS_CPU_COUNT \
         --virtualbox-memory $ROS_MEMORY \
         $ 1 
docker-machine ls

添加节点则需执行:

1
$ ./add_ros_host.sh ros- 1

添加完成后,可以进入虚机内进行设置:

1
2
3
4
5
6
7
8
9
10
$ docker-machine ls
NAME  ACTIVE DRIVER     STATE     URL                       SWARM DOCKER ERRORS 
ros- 1  -      virtualbox Running   tcp: //192.168.99.100:2376       v1.12.3
  
# 进入VM中
$ docker-machine ssh ros- 1
# RancherOS内设置registry mirror
$ sudo ros config set rancher.docker.extra_args \
         "['--registry-mirror','https://s06nkgus.mirror.aliyuncs.com']"
$ sudo system-docker restart docker

由于我们要使用VirtualBox的虚机组成一个小集群,所以建议把Rancher的Host Registration URL设置为http://192.168.99.1:8080,如下图所示:


wKiom1i8MBawXs9zAACcFRlJ_BU723.png


添加Rancher agent的时候也要注意,CATTLE_AGENT_IP参数要设置成虚机内192.168.99.0/24网段的IP,如下图所示:


wKioL1i8MCbSAD3ZAADJhR8mI-Q200.png


如此就可以基本完全解锁Rancher v1.2的各种功能了,完整演示各种特性。

 

总结


Docker目前版本分支众多,虽然最新的v1.13即将发布,但是各个公司的使用版本应该说涵盖了v1.9到v1.12,而且Docker graph driver也有很多,再加上很多的LinuxOS,可以说使用Docker而产生组合有很多种,这就会带来各种各样的兼容性问题,因此导致的生产环境故障会让人头疼不已。当然如果纯粹基于演示和调研新功能,我们可以优先兼容性较好的选择。



本文转自 RancherLabs 51CTO博客,原文链接:http://blog.51cto.com/12462495/1903533

相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
相关文章
|
6月前
|
Kubernetes Cloud Native 开发者
OpenKruise:Kubernetes的超级插件,一键解锁容器运行时操作的超能力!
【8月更文挑战第8天】在云原生领域,Kubernetes虽已成为容器编排的标准,但仍有限制,比如批量操作不便和高级调度功能缺失。OpenKruise是一款增强工具,提供CloneSet、Advanced StatefulSet等功能,既保持Kubernetes API特性又增加了扩展性,使Pod管理更灵活。可通过Helm安装OpenKruise,并使用CloneSet轻松实现批量部署。这类增强工具让开发者能更高效地突破原生Kubernetes的限制,预计未来将更加受到欢迎。
97 8
|
6月前
|
运维 监控 数据可视化
"揭秘Docker管理神器Portainer:一键解锁Docker可视化管理新境界,让你的运维工作轻松又高效!"
【8月更文挑战第11天】Docker简化了应用部署与管理,但容器规模增大时,高效管理变得挑战重重。Portainer作为轻量级Docker管理工具,以直观界面和全面功能脱颖而出。它不仅简化了容器的创建、监控与操作,还涵盖了镜像、网络、卷管理及用户权限控制。Portainer易于部署,兼容单机与Swarm集群,降低学习门槛。本文深度剖析Portainer优势,并通过实例展示其实用性,使读者对其功能与价值有深刻理解。
162 3
|
6月前
|
运维 Kubernetes Go
"解锁K8s二开新姿势!client-go:你不可不知的Go语言神器,让Kubernetes集群管理如虎添翼,秒变运维大神!"
【8月更文挑战第14天】随着云原生技术的发展,Kubernetes (K8s) 成为容器编排的首选。client-go作为K8s的官方Go语言客户端库,通过封装RESTful API,使开发者能便捷地管理集群资源,如Pods和服务。本文介绍client-go基本概念、使用方法及自定义操作。涵盖ClientSet、DynamicClient等客户端实现,以及lister、informer等组件,通过示例展示如何列出集群中的所有Pods。client-go的强大功能助力高效开发和运维。
548 1
|
Kubernetes Java Linux
解锁高效部署!快速搭建Kubernetes集群,提升团队生产力!
解锁高效部署!快速搭建Kubernetes集群,提升团队生产力!
128 0
|
6月前
|
Shell 云计算 Docker
零基础到容器技术大神,一键解锁Docker实战秘籍!从零搭建,见证你的技术飞跃,让代码在云端翩翩起舞!
【8月更文挑战第5天】在云计算与微服务当道的今天,容器技术如汹涌浪潮般席卷IT领域。对新手而言,它或许充满神秘,但无须担忧,让我们一同揭开它的面纱。容器是一种轻量级软件打包技术,允许应用及其依赖被打包,在独立的虚拟环境中运行。Docker作为容器界的明星,简化了容器的创建与管理。从安装Docker开始,运行首个容器,深入容器内部执行命令,直至构建自定义镜像,我们将逐步掌握这项关键技术。这不仅是一场技术之旅,更是思维方式的革新,让我们携手探索未来。
86 6
|
Kubernetes Cloud Native 容器
和阿里云一起,用 KubeVela 愉快地在 Kubernetes 上管理应用吧!
【CloudNativeKitchen 倒计时】和阿里云一起,用 KubeVela 愉快地在 Kubernetes 上管理应用吧!
和阿里云一起,用 KubeVela 愉快地在 Kubernetes 上管理应用吧!
|
供应链 Kubernetes 安全
Docker EE 2.0 版本尝鲜测评,带给您无与伦比的容器体验(二)
我们很高兴地宣布,Docker Enterprise Edition 2.0 已经发布,这标志着 Docker 企业级容器平台又向前迈进了一大步。Docker Enterprise Edition (EE) 2.0 是唯一能在多 Linux、多操作系统和多云客户环境中管理部署在 Kubernetes 上的应用程序并确保其安全的平台。
3069 0
|
Kubernetes 安全 Linux
Docker EE 2.0 版本尝鲜测评,带给您无与伦比的容器体验(一)
我们很高兴地宣布,Docker Enterprise Edition 2.0 已经发布,这标志着 Docker 企业级容器平台又向前迈进了一大步。Docker Enterprise Edition (EE) 2.0 是唯一能在多 Linux、多操作系统和多云客户环境中管理部署在 Kubernetes 上的应用程序并确保其安全的平台。
5241 0
|
监控 算法 Java
「实战篇」开源项目docker化运维部署-搭建mysql集群(四)
有了docker虚拟机,就需要利用平台部署数据库的集群,在实际操作之前介绍下数据库集群的方案和各自的特点。
2671 0
|
6月前
|
运维 Ubuntu Shell
Docker命令宝典:解锁容器化技术的无限可能,从镜像管理到容器操作,全面解析与实战指南!
【8月更文挑战第3天】Docker简化了应用的部署与运行,掌握其基本命令对开发者和运维人员至关重要。通过`docker images`可查看本地镜像;使用`docker pull`拉取如最新版Ubuntu镜像;`docker rmi`用于删除不再需要的镜像。运行容器可通过`docker run`命令,结合`-it`等选项提供交互式环境。`docker ps`显示运行中的容器,加上`-a`则列出所有容器。`docker stop`和`docker start`分别用于停止和重启容器,而`docker rm`则删除容器。
121 5

热门文章

最新文章