文档章节

如何在离线或内网环境中设置Rancher 2.0

RancherLabs
 RancherLabs
发布于 2018/05/17 09:38
字数 1622
阅读 347
收藏 0

有时候,我们无法使用像GKE或AKE这样的托管服务,甚至处于离线或与外网隔离的状态,而无法直接访问互联网。然而,即使在这种情况下,仍然是有方法使用Rancher管理集群的。

本文中,我们将向你介绍如何在离线或内网环境中运行Rancher 2.0。

输入图片说明

私有镜像库

因为所有与Rancher相关的服务都在容器中运行,因此首先你需要的是在环境中存储容器。在本文的示例中,我们将使用Docker Registry(Docker镜像仓库)。如果你已经有了镜像仓库,可以跳过这些步骤。

注意:在Rancher 2.0中,只有没有身份认证的镜像仓库才能获取启动和运行Rancher 2.0所需的所有镜像。这并不会影响在工作负载中使用的可配置镜像仓库。

要运行Docker Registry,你需要运行一个registry:2镜像的实例。我们将公开默认端口(5000),挂载一个主机目录确保我们有足够的空间(至少需要8GB)并且获得适当的I/O性能。

docker run -d -p 5000:5000 --restart=always --name registry -v /opt/docker-registry:/var/lib/registry registry:2

让Rancher镜像运行起来

在镜像仓库设置完成后,就开始同步所需的镜像来运行Rancher 2.0。这一步骤我们将讨论两个场景:

  • 场景1:你有一台可访问DockerHub的主机来提取和保存镜像,另有一台可以访问你的私有镜像仓库的单独的主机,以用于push镜像。

  • 场景2:你有一台可以访问DockerHub以及私有镜像仓库的主机。

场景1:一台主机访问DockerHub,另一台访问私有镜像仓库

Rancher每一次的版本更新发布(https://github.com/rancher/rancher/releases/tag/v2.0.0),都会随之提供针对这一场景的插件。你需要如下脚本:

**rancher-save-images.sh:**该脚本将从DockerHub中拉取所有需要的镜像,并且将所有镜像保存成一个rancher-images.tar.gz压缩文件。可以将该文件传输到能够访问你私人镜像仓库的内部部署主机上。

**rancher-load-images.sh:**该脚本将从rancher-images.tar.gz中加载镜像,将它们push到你的私有镜像仓库。在脚本的第一个参数需要提供私有镜像仓库的主机名rancher-load-images.sh registry.yourdomain.com:5000

输入图片说明

场景一的流程

场景2:一台可以访问DockerHub以及私有镜像仓库的主机

针对这一场景,Rancher每一次的版本更新时

(https://github.com/rancher/rancher/releases/tag/v2.0.0),都会提供一个名为rancher-images.txt的文件。该文件包含了运行Rancher 2.0所需要的全部镜像。可以将它绑定到任何现有的自动化服务中同步你可能拥有的镜像,也可以使用我在下面展示的脚本/Docker镜像。

输入图片说明

场景二的流程

配置Rancher,使用私有镜像仓库

流程的最后一步是配置Rancher,将私有镜像仓库作为获取镜像的源。这可以通过在Setting视图中使用system-default-registry进行配置。

输入图片说明

设置栏

输入图片说明

若想要使用私有镜像仓库,在配置设置时不要使用https:// 或http://作为前缀

这样做可以确保那些被用于向集群添加节点的rancher/rancher-agent容器,会使用该值作为前缀。其他需要使用的镜像也需要这样配置。

如果你想在启动rancher/rancher容器时进行配置,可以使用环境变量CATTLE_SYSTEM_DEFAULT_REGISTRY

例如:

docker run -d -p 80:80 -p 443:443 -e CATTLE_SYSTEM_DEFAULT_REGISTRY=registry.yourdomain.com:5000 registry.yourdomain.com:5000/rancher/rancher:v2.0.0

创建一个集群

你可以通过运行rancher/rancher容器所在主机的IP来访问Rancher 2.0 UI。最开始启动大约需要1分钟,第一次访问时系统会提示你设置密码。

输入图片说明

设置密码

接下来,你需要配置URL,节点将通过该地址和Rancher 2.0安装建立联系。在默认情况下,它会显示你访问UI的IP地址,不过当你想使用DNS名称或者负载均衡器的话,你可以在这里进行更改。

在Global视图中,点击Add Cluster

输入图片说明

_ 添加集群_

本文会带领你创建一个没有高级选项的custom集群。想要在你的集群中配置高级选项,请参考相关的文档。

输入图片说明

添加名叫testcluster的自定义集群

点击Next,创建testcluster集群。

在下一个界面,你会获得一个生成的命令,用于在你想要添加到集群的节点上启动。在该命令中使用的镜像应该会自动地用你配置好的私有镜像仓库作为前缀。

输入图片说明

为集群添加节点

现在,对你想要添加的节点,你可以选择要为它们使用哪些角色,并且可以选择配置该节点的IP。如果没有指定,则会自动检测IP。有关Node Roles的含义,也请参考文档。

在项目中配置对镜像仓库的访问

如前所述,目前Rancher 2.0还不支持使用带有身份认证的私有镜像仓库来运行Rancher 2.0需要的镜像。不过在这种情况下,Rancher 2.0支持project中的工作负载。

想要使用身份认证配置镜像仓库,你可以在集群中打开你的项目(Default项目是自动为你创建的)。在Default项目中,可以导航到Resources->Registries来配置用于工作负载的镜像仓库。

输入图片说明

在project默认设置里配置镜像仓库

点击Add Registry

输入图片说明

添加镜像仓库

填写访问镜像仓库所需的信息:

输入图片说明

总 结

希望这篇指南能够帮助大家进一步了解如何在离线或内网环境中设置Rancher 2.0。我们知道很多环境中还会有代理,我们后续还会发布代理设置的相关文章,敬请期待!

最后附上我在本文中用到的一些命令,希望它们能够为你所用或带给你更多灵感。

输入图片说明

© 著作权归作者所有

RancherLabs
粉丝 95
博文 261
码字总数 567103
作品 0
深圳
程序员
私信 提问
如何在离线或内网环境中设置Rancher 2.0

有时候,我们无法使用像GKE或AKE这样的托管服务,甚至处于离线或与外网隔离的状态,而无法直接访问互联网。然而,即使在这种情况下,仍然是有方法使用Rancher管理集群的。 本文中,我们将向你...

RancherLabs
2018/05/16
0
0
【内网福音】如何离线部署Rancher

对于在公司内网环境中、无法访问互联网的用户而言,离线安装部署Rancher是解决问题的关键。本文是Rancher离线部署教程,专为内网用户排坑解难。 版本说明 OS:Centos7.3 Docker version: 1.1...

RancherLabs
2017/11/08
0
0
【内网福音】如何离线部署Rancher

对于在公司内网环境中、无法访问互联网的用户而言,离线安装部署Rancher是解决问题的关键。本文是Rancher离线部署教程,专为内网用户排坑解难。 版本说明 OS:Centos7.3Docker version: 1.12...

RancherLabs
2017/11/08
210
0
如何从Rancher 1.6迁移到Rancher 2.0?这份清单可以帮助你!

Rancher 2.0全面拥抱Kubernetes,而目前Rancher 1.6和2.0之间尚未有直接的升级路径。本文将提供一份简短的清单,包括安装、配置身份验证、添加集群和项目、创建命名空间、以及迁移应用,帮助...

RancherLabs
2018/08/14
91
0
如何在Rancher 2.0中使用服务发现

服务发现是容器环境的核心功能,本文将详解Rancher 2.0中的服务发现功能,展示如何将Rancher 1.6功能集映射到最新2.x版本,如何通过Kubernetes DNS功能在Rancher 2.0中支持等效的服务发现。玩...

RancherLabs
2018/09/11
159
0

没有更多内容

加载失败,请刷新页面

加载更多

电子字典C语言链表版

#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>struct dict{ char *key; char *content; struct dict *ne......

holdbody
9分钟前
1
0
windows 查看 端口使用情况

资料 https://jingyan.baidu.com/article/3c48dd34491d47e10be358b8.html 统计端口连接数 netstat -an|find "8080" /c...

zaolonglei
10分钟前
0
0
OSG 屏幕空间环境光遮蔽(SSAO)讲义3 算法的核心

先介绍SSAO 接着介绍SSAO的核心算法 延迟着色法的采样 颜色采样 把像机的几个参数传入Shader SSAO渲染 建立SSAO摄像机 SSAO摄像机显示漫反射采样 先用上下像素点的方案, 再次讲原理. 换用RGB...

洛克人杰洛
30分钟前
1
0
聊聊rocketmq的AccessChannel

序 本文主要研究一下rocketmq的AccessChannel AccessChannel rocketmq-client-4.5.2-sources.jar!/org/apache/rocketmq/client/AccessChannel.java public enum AccessChannel { /** ......

go4it
昨天
5
0
自己实现 aop 和 spring aop

上文 说到,我们可以在 BeanPostProcessor 中对 bean 的初始化前化做手脚,当时也说了,我完全可以生成一个代理类丢回去。 代理类肯定要为用户做一些事情,不可能像学设计模式的时候创建个代...

sanri1993
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部