如何用Rancher在AWS上运行Kubernetes

众所周知,亚马逊有EC2容器服务,它是亚马逊用于运行Docker容器的解决方案。不过我觉得EC2容器服务不怎么好用,所以现在我要在AWS上测试Rancher和Kubernetes。

Kubernetes是一个用以自动化部署、弹性伸缩以及管理容器化应用程序的开源系统。Rancher是一个可用于企业内部的完整的容器管理和运行平台,它提供企业级的访问控制和容器编排。

Rancher环境部署

第一步,我会按默认的向导创建一个新的虚拟私有云,这个虚拟私有云是为Rancher准备的。接下来的事情就是创建一个或多个新主机,Rancher文档说要手动安装Docker,我在这里选择了RancherOS AMI。AMI是专门为这个目的而生的,而且它非常的小(甚至于curl都没有被安装)。

安全组限制了只有我的IP才可以访问TCP端口 k8080。这一点很重要,因为默认的设定是不会启动授权的。在不同主机间允许彼此的访问也是件非常棒的事情,这可以通过保存安全组来完成(然后顺利拿到sg- identifier),并向那个安全组中添加所有访问权限。

当新的instance准备就绪,只需使用SSH连接并且用sudo docker run -d --restart=always -p 8080:8080 rancher/server启动Rancher服务器Docker image就好了。Rancher的应用程序将自己在Docker image内运行。

你可以用the docker logs -f {containerid}命令跟踪日志:

一切完美!Rancher server开始启动了。你可以浏览到这个实例的IP,默认情况下,Rancher server将在端口8080上运行。所有的主机都可以使用公有的IP,可如果你是在虚拟私有云上有主机的话,这就有点麻烦了,所以你可以选择使用私有IP而非公有IP。这可以在管理和设置里进行更改。

当Rancher server启动并运行了,我们需要添加一些Docker主机。你可以启动一个新的主机(这很赞的,因为它会启动另一个有着相同配置的实例),或者你可以添加和server中的主机一样的主机(不过这不是最好的办法)。

Kubernetes环境部署

接下来,在Rancher server中的添加一个新的主机,点击Infrastructure,然后再点击Add Host 。主机添加完了之后,您可以添加Kubernetes环境了。 Kubernetes随后将自动部署到新的主机上。

这将需要几分钟的时间,你可以通过选择环境监视其当前的状态:

Kubernetes环境创建完成后,您可以导航到Catalog里部署一个容器。例如,选择K8S Example Ghost容器——它几乎不需要花时间,就能瞬间启动并运行起来:

在部署Kubernetes的过程中,堆栈会和下列实例一起被创建:

  • Rancher Ingress Controller 1 (rancher/ingress-controller):Rancher Ingress Controller将充分利用Rancher现有的负载平衡功能,并结合Kubernetes ingress的特性,集成成Rancher的负载均衡。
  • Rancher Server (rancher/server):Rancher 管理服务器,它将运行web前端和API。
  • Rancher Agent (rancher/agent):每个节点都会获得一个相对独立的、用以管理节点的agent。
  • Rancher Kubernetes Agent 1 (rancher/kubernetes-agent):负责处理Rancher和Kubernetes之间通信的代理。
  • Rancher Agent Instance (rancher/agent-instance):Rancher的代理实例的image。
  • Kubernetes ETCD 1 (rancher/etc):etcd是用于对象和元数据的持久化、安全的分布式存储的高可用性键值存储组件。
  • Kubernetes Proxy 1 (rancher/k8s):在每个节点上运行的Kubernetes network proxy。
  • Kubernetes Scheduler 1 (rancher/k8s):Kubernetes controller manager是Kubernetes的一个核心组件。
  • Kubelet 1 (rancher/k8s):kubelet是在每个节点上运行的最重要的“节点代理”。

当你要添加一个额外的主机时,以下这些也会被同步添加:

  • Kubernetes Proxy2
  • Kubernetes Etcd 2
  • Kubelet 2

因为我不想自己维护我自己的registry,所以我创建了一个Amazon Container Registry,并使用了Rancher的registry。你可以直接复制Amazon Container Registry里的地址,用户名AWS(注意区分大小写)和密码(base64编码字符串)。

你可以这样获得credentials:

然后创建Docker image:

给image打上标签:

push 这个image去registry:

如果你想更多地了解如何在Rancher上运行Kubernetes,可以访问这里:

http://rancher.com/kubernetes/,或来这里阅读免费的电子书:http://info.rancher.com/deploying-scaling-kubernetes-ebook。

原文来源:Rancher Labs

时间: 2024-10-27 19:14:20

如何用Rancher在AWS上运行Kubernetes的相关文章

操作指南:通过Rancher在K8S上运行PostgreSQL数据库

通过Rancher Kubernetes Engine运行高可用 PostgreSQL 这篇是我们关于在Kubernetes上运行PostgreSQL系列文章的其中一篇.下面是相关文章和链接. 在亚马逊AWS Elastic Container Service for Kubernetes (EKS) 上运行高可用PostgreSQL: (https://portworx.com/postgresql-amazon-eks/) 在微软Azure Kubernetes Service (AKS)

在Kubernetes上运行高可用的WordPress和MySQL

WordPress是用于编辑和发布Web内容的主流平台.在本教程中,我将逐步介绍如何使用Kubernetes来构建高可用性(HA)WordPress部署. WordPress由两个主要组件组成:WordPress PHP服务器和用于存储用户信息.帖子和网站数据的数据库.我们需要让整个应用程序中这两个组件在高可用的同时都具备容错能力. 在硬件和地址发生变化的时候,运行高可用服务可能会很困难:非常难维护.借助Kubernetes以及其强大的网络组件,我们可以部署高可用的WordPress站点和MyS

Rancher支持在青云QingCloud上运行容器管理平台

随着越来越多的企业开始采用将本地.非本地.云端相结合的部署方式,云基础设施的正确选择已变得愈发关键.而容器技术在企业内部的应用在持续快速增长,IaaS层之上,一套完整易用的容器部署与管理的解决方案亦非常重要. 今天,我们很高兴地宣布,Rancher容器管理平台正式支持添加来自青云QingCloud的云主机,支持在QingCloud的基础设施和计算资源之上运行容器. Rancher的一大优势在于其可以在任何基础设施上运行,可支持各个平台的计算资源.在添加主机的过程中,虽然通过Rancher的自定义

在AWS EMR上运行Map Reduce的Java示例程序 及 操作小计

下面的代码中AffairClient类中包含了三个内之类,分别对应于Hadoop Mapreduce程序运行所需的Mapper类,Reducer类,和主类.AffairClient类中其余方法用于配置和运行EMR程序.可以修改相关参数来对程序做适当调整.比如:修改map和reduce函数,添加combiner类,或者设置集群大小.这个样例是一个去重的mapreduce程序,具体见map函数和reduce函数.我们创建的是一个Maven项目,因为是在AWS EMR上运行hadoop程序,所以需要A

如何在Rancher上运行Elasticsearch

Elasticsearch是当前最流行的大数据集分析平台之一,对于日志聚合.商业智能以及机器学习等各类用例而言,Elasticsearch都是一个很有用的工具.Elasticsearch基于 REST的简单的API,使得创建索引.添加数据和进行复杂的查询变得非常简单,这也是它大受欢迎的一大原因.但是,在你开始构建数据集和运行查询之前,您需要设置一个Elasticsearch集群,这可能会有点难.现在我们来看看Rancher Catalog是如何让配置一个可扩展.高可用的Elasticsearch

在Kubernetes上运行SAP UI5应用(下): 一个例子体会Kubernetes内容器的高可用性和弹性伸缩

上一篇文章 在Kubernetes上运行SAP UI5应用(上),我介绍了如何在Docker里运行一个简单的SAP UI5应用,并且已经成功地将一个包含了这个UI5应用的docker镜像上传到Docker hub上. 这篇文章作为这个主题的下半部分,将会介绍如何在Kubernetes里运行这个docker镜像. 文章目录 Kubernetes里的两个重要概念:pod和deployment Kubernetes保证应用程序高可用性和伸缩性的一些体验 Kubernetes滚动升级(Rolling U

在阿里云、微软Windows Azure、亚马逊AWS 上使用Nginx配置http正向代理服务器

作为一个完全的Linux和Nginx双料白痴,我觉得有必要把这几天的折腾整理一下,以备以后查看. 首先我接到的是5台安装好Linux的云主机,两台阿里云,两台Azure和一台AWS.(包括云主机IP,主机名,用户名和密码) 我要做的事情: 第一步:登录云主机. 网上查很多人推荐使用Putty,这里我们老大推荐我是使用X Manager Enterprise 4. 安装好以后打开 运行xshell,建立一个新连接.点击菜单栏File中的"New",打开新建会话窗口,在窗口右侧"

在100,000个核心集群上运行100万个作业

随着客户在更大的环境中部署OpenLava.可扩展性,吞吐量和性能变得越来越重要.为了满足这些领域的客户需求,OpenLava 提供了一些重要的增强功能: o  并行化作业事件处理以加速集群启动并最小化停机时间. o   增强的守护进程间通信,提高效率和性能. o   其他调整参数,为集群管理员提供其他工具,以提高性能,响应速度和可扩展性. 在发布OpenLava之前,天云软件使用HPC Cluster-as-a-Service在100,000个内核组成的集群上进行了大规模测试,这是我们迄今为止

如何在 Amazon AWS 上设置一台 Linux 服务器

摘要: AWS(Amazon Web Services)是全球领先的云服务器提供商之一.你可以使用 AWS 平台在一分钟内设置完服务器.在 AWS 上,你可以微调服务器的许多技术细节,如 CPU 数量,内存和磁盘空间,磁盘类型(更快的 SSD 或者经典的 IDE)等. AWS(Amazon Web Services)是全球领先的云服务器提供商之一.你可以使用 AWS 平台在一分钟内设置完服务器.在 AWS 上,你可以微调服务器的许多技术细节,如 CPU 数量,内存和磁盘空间,磁盘类型(更快的 S