精华内容
下载资源
问答
  • Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful)...SpringBoot和K8S的实战、SpringCloud的客户端案例等),胜任企业级的开发工作。
  • 今天下午我分享的话题是基于Kubernetes构建企业级的容器云平台,整个分为三个大部分,首先我们简单对比容器和虚拟机两个之间的差异性,有一些特征,优势和劣势。第二我们看一下容器云平台在建构的时候需要面临哪些...
  • Spinnaker 是 Netflix 在2015年开源的一款持续交付平台,它继承了 Netflix 上一代集群和部署管理工具 Asgard:Web-based Cloud Management and Deployment的优点,同时根据公司业务以及技术的的发展抛

    1. Spinnaker简介

    Spinnaker 是 Netflix 在2015年开源的一款持续交付平台,它继承了 Netflix 上一代集群和部署管理工具 Asgard:Web-based Cloud Management and Deployment的优点,同时根据公司业务以及技术的的发展抛弃了一些过时的设计:提高了持续交付系统的可复用性,提供了稳定可靠的API,提供了对基础设施和程序全局性的视图,配置、管理、运维都更简单,而且还完全兼容 Asgard,总之对于 Netflix 来说 Spinnaker 是更牛逼的持续交付平台。

    2. Spinnaker逻辑架构

    官网传送门—》https://spinnaker.io/
    Spinnaker 自己是一个微服务架构,由若干组件组成,所有组件都开源在github上,整个逻辑架构如下图所示:
    在这里插入图片描述

    Deck:面向用户 UI 界面组件,提供直观简介的操作界面,可视化操作发布部署流程。
    API: 面向调用 API 组件,我们可以不使用提供的 UI,直接调用 API 操作,由它后台帮我们执行发布等任务。
    Gate:是 API 的网关组件,可以理解为代理,所有请求由其代理转发。
    Rosco:是构建 beta 镜像的组件,需要配置 Packer 组件使用。
    Orca:是核心流程引擎组件,用来管理流程。
    Igor:是用来集成其他 CI 系统组件,如 Jenkins 等一个组件。
    Echo:是通知系统组件,发送邮件等信息。
    Front50:是存储管理组件,需要配置 Redis、Cassandra 等组件使用。
    Cloud driver 是它用来适配不同的云平台的组件,比如 Kubernetes,Google、AWS EC2、Microsoft Azure 等。
    Fiat 是鉴权的组件,配置权限管理,支持 OAuth、SAML、LDAP、GitHub teams、Azure groups、 Google Groups 等。

    3. Spinnaker核心功能

    3.1 集群管理

    集群管理主要用于管理云资源,Spinnaker 所说的“云”可以理解成 AWS,即主要是 IaaS 的资源,比如 OpenStack,Google云,微软云等,后来还支持了容器,但是管理方式还是按照管理基础设施的模式来设计的。
    在这里插入图片描述
    Spinnaker 中管理如下资源:

    Server Group:最基本的逻辑资源,包括了若干使用相同配置和镜像的虚拟机,若干负载均衡(load balancer),以及安全组。
    安全组规则(Security Group):就是 AWS 中的安全组,可以理解成防火墙。
    负载均衡(Load Balancer):AWS 中的 ELB,也可能是安装在虚拟机中的负载均衡。

    3.2 部署管理

    管理部署流程是 Spinnaker 的核心功能,他负责将软件包(可能是手工创建的或者 jenkins 创建的)打成一个镜像,用这个镜像生成对应的虚拟机,让服务真正运行起来:
    在这里插入图片描述
    pipeline
    在 Spinnaker 中一个部署流程叫做pipeline,由若干个操作组成,每个操作又叫做一个 stage。触发一个 pipeline 方式非常灵活,可以手动触发,也可以用 jenkins、CRON 等。同时,可以配置 pipeline 向外发送一些通知信息,比如“开始”,“结束”,“失败”等。
    stage
    pipeline 中的一个操作,stage 之间可以有先后顺序,也可以并行。Spinnaker 中预定义了一些 stage 的类型,这些类型的 stage 往往使用频率比较高:

    Bake:在某个 region 中制作虚拟机的镜像。Netflix 推崇不可变基础设施的理念,所以他们将软件打包进镜像的方式来部署服务。创建镜像的核心基于 Packer(Hashicorp 开源的镜像烘焙工具,Vagrant 就出自该公司 CEO 之手)。如果部署时用 docker,则打包过程就交由 docker build 完成。
    Deploy:用 Bake 中创建的镜像部署成一台虚拟机。
    Jenkins: 执行一个 Jenkins 的 job。
    Manual Judgment : 暂停,等待用户的许可后再继续。
    Pipeline : 执行另外一个 pipeline。
    Script :执行任意的脚本。
    Wait : 等待一段时间。

    在这里插入图片描述
    从 pipeline 的定义看,Spinnaker 和 Jenkins 有几分相似,不过两者的设计出发点的不同,stackoverflow上有相关的讨论。总结来看,jenkins 偏向 CI,产出物是软件包;Spinnaker 是 CD,将软件包分发到服务器/虚拟机上,保持软件正常运行,它的目标只是让“部署”的过程更容易更可扩展。有一个例子可以说明两者的关系:Netflix 内部有人不用 Spinnaker 的 pipeline,而只是将 Spinnaker 看为一个部署工具,直接在 jenkins 中调用它的 API 来部署服务。

    4. Spinnaker管理方法

    Spinnaker 看起来也是一个复杂的微服务架构,由不少服务组成,所以本身也遵循一些运维准则:

    1.每个 Spinnaker 的服务(如 deck,gate,orca)都运行在独立的 cluster 中。
    2.每个服务都将自己的运行指标推送到 Atlas 中,用于绘制仪表盘和报警。Atlas 是Netflix的一个内存时间序列数据库。
    3.每个服务都将自己的日志发送到 ELK 集群中。
    4.每个内部服务除了deck 和 gate 必须用 mutual TLS,并且证书和认证通过 Lemur 进行管理。不允许任何外部流量进入内部服务中。所有的 API 调用必须经过 gate。
    5.每个外部服务(除了gate)都要支持 mTLS 或者 SSO。
    6.如果某个服务有数据存储的需求,那么只能存在自己的数据库中,服务之间不共享数据存储。
    
    -->为了保证兼容性,Spinnaker 在开发过程中还会准守一些准则:
    1.保证足够的单元测试和覆盖率。
    2.在 code review 的时候特别注意是否会破坏API兼容性。
    3.7×24 不间断的执行集成测试。有两种集成测试,一种是一个 jenkins job,会不断调用 API 接口,确保API是按照预想的在工作,另一种是一个 Spinnaker 的 pipeline,用来执行日常任务(比如创建镜像,部署环境等)。
    4.当发现未知的失败是,首先执行回滚操作,直到这个问题被修复。
    

    5. 部署Spinnaker的Armory发行版

    在这里插入图片描述

    展开全文
  • 前言 当前 Kubernetes 已经成为名副其实的企业级容器编排规范,很多云平台都开始...本次分享带来的是华为云在基于 K8S 构建企业级 Serverless Container 平台过程中的探索与实践,涉及容器安全隔离、多租管理、Ser...

    前言

    当前 Kubernetes 已经成为名副其实的企业级容器编排规范,很多云平台都开始提供兼容 Kubernetes 接口的容器服务。而在多用户支持方面,多数平台选择直接提供专属虚机集群,用户需要花费大量精力处理集群规模、资源利用率、费用等问题。 本次分享带来的是华为云在基于 K8S 构建企业级 Serverless Container 平台过程中的探索与实践,涉及容器安全隔离、多租管理、Serverless 理念在 Kubernetes 平台的落地等相关内容。

    Kubernetes 在华为云的历程

    首先来了解一下华为云在 Kubernetes 的发展历程。2014 年,华为云就开始研究并使用 Kubernetes,早期的重点是将 Kubernetes 应用在私有云环境中。2016 年,华为公有云上发布了容器引擎平台 ( CCE),它的形式与市面上多数的公有云 Kubernetes 服务(如 GKE、AKS) 类似,是给用户提供完整一套托管的K8S集群。而在今年年初,华为云发布了 Kubernetes 容器实例服务(Serverless Container),不过它与业界一些传统的容器实例服务不太一样。

    容器的三大好处,为应用而生

    众所周知,容器技术有三大好处。

    • 一是它提供资源隔离,用户很容易通过应用合设来提升资源利用率;
    • 二是,它具备秒级弹性的能力。因为容器本身技术特点,不用加载重型虚拟化,所以它可以做到非常快速的弹性扩缩容;
    • 三是,容器镜像技术,解决了包括应用及其依赖环境的一致性问题,简化业务交付流程。
      但在实际环境中,容器技术带来的终端便利有多少呢?这还得从Kubernetes的使用形态谈起。

    Kubernetes 的常见使用形态

    私有云部署Kubernetes

    人们使用 Kubernetes 的一种常见形式就是在自己的数据中心搭建集群。

    这种做法的优点在于:

    • 第一,可以享受DIY过程带来的乐趣和成就感(当然也可能随使用时间的增长,问题越来越多而变成苦难)。
    • 第二,在全套私有化的模式下,数据请求都在本地处理,不会存在隐私顾虑。
    • 第三,资源规划、集群安装部署升级,都是用户自己端到端控制。

    但是缺点也很明显:首先,很多人在自建时只看中了 Kubernetes,对周边配套并没做过很深度的研究,在实施过程中就会面临网络、存储等配套系统的选型问题。其次,用户需要负担 100% 的运维成本,而且资源的投入往往是一次性(或阶段性的),投入成本门槛非常高。此外,在自建的环境中 Kubernetes 的集群数量、中的单个集群规模往往不会很大,所以业务部署规模比较大时,弹性伸缩还会受限于底层资源规模,偏偏硬件资源的扩容速度往往慢得不可想象。最后,开发者习惯于做比较多的资源预留,因此资源利用率也非常有限。也就是说,自建者还要为全套资源利用率买单。

    公有云半托管Kubernetes专属集群

    第二种 Kubernetes 的常见形态是公有云的(半)托管集群。

    可以这样理解,用户购买一组虚机,云平台则自动在这些机器上部署一套 Kubernetes,而半托管含义在于有些平台,它的控制面可能是附送的。

    这种形态的优点是:

    • 用户自己拥有集群,不用担心与其他用户共用一套 Kubernetes 可能引起一系列干扰问题。
    • 云平台在提供 Kubernetes 服务时,往往经过大量的测试和调优,所以给出集群的配置是在自家平台上的最佳实践。用户通过这种模式在云上运行 Kubernetes,可以获得比自己部署运维好很多的体验。
    • Kubernetes 社区发布新版本后,云平台会至少做一轮额外的测试、问题修复,再上线并推荐用户升级。这用就节省了用户对升级时机评估的工作量。而直接使用开源版本的用户,如果对新版本跟进太快,自己要踩很多坑,但要延后到哪个版本再升,则要持续跟进社区bug和fix的进度,费时费力。
    • 当用户的 Kubernetes 出现问题时,可以从云平台获得专业的技术支持。所以在公有云上使用(半)托管的 Kubernetes 服务,是一种很好的成本转嫁方式,运维成本与云平台共同分担。

    当然仍有一些明显的缺点

    首先还是价格,当用户购买一组虚机,需要付出的价格是 虚机 Flavor 单价 乘以 节点数量 N。其次,因为用户独占一套 Kubernetes 集群,规格不会太大,整体资源利用率仍然比较低。即使尝试调优也效果不大,况且多数情况下用户名不能完全自定义控制面组件的配置。另外,当集群空闲资源不多而业务需要扩容时,还必须先扩集群,端到端的扩容会受限于虚机的创建时间。

    容器实例服务

    第三种,严格说是用户使用容器的形态,使用公有云的容器实例服务。

    它的优点显而易见:

    • 用户不感知底层集群,也无需运维;
    • 资源定价颗粒度足够细,用多少买多少;
    • 真正的秒级扩缩容,并且是秒级计费。

    其缺点在于:

    很多平台的容器实例服务主要提供私有API,并不能很好兼容kubernetes的API,而且容易被厂商绑定。

    迫于满足用户使用K8S API的需求,这些容器实例服务也推出了基于virtual-kubelet项目的兼容方案。通过把整个容器实例服务虚拟成 Kubernetes 集群中的节点,对接 kubernetes master 来处理 Pod 的运行。

    然而,由于整个容器实例服务被虚拟成了一个超级节点。Kubernetes 中原本针对多节点精心设计的一系列应用高可用相关特性都无法生效。另一个问题是这个基于 virtual-kubelet 项目的兼容方案在数据面并不完整,这里包括项目成员在Kube-proxy部署层级位置上的摇摆,以及仍无音讯的容器存储如何兼容。

    看了前面这么多的背景,你可能不禁要问:为什么不尝试使用 Kubernetes 的多租方案来构建 Serverless Container 服务?

    实际上基于 Kubernetes 多租来构建容器实例服务,优点有很多,最大的在于是支持 K8S 原生 API 和命令行。用户围绕 Kubernetes 开发的应用都以直接在基于 K8S 的 Serverless Container 上部署和运行。因为容器可以做到秒级计费,用户可以享受容器实例服务价格门槛较低的特点。另外,这种形态下通常是云平台来运维一个大资源池,用户只需为业务容器的资源付费,不需要关心底层集群的资源利用率,也没有集群运维的开销。

    这种形体现存的主要挑战是 K8S 原生只支持软多租,隔离性等方面还有有欠缺。

    接下来我们回顾一下 K8S 中典型的多租场景。

    • 第一是 SaaS 平台。或其他基于 K8S 封装提供的服务,它不直接暴露 K8S 的 API。因为有一层自己的 API 封装,平台可以做很多额外工作,比如自己实现租户定义,所以对于 k8s 控制面的租户隔离要求较低。而应用来自最终用户,并不可信,所以实际上在容器运行时,需要较强的数据面资源隔离和访问控制。
    • 第二小公司的内部平台。用户和应用都来自于公司内部,互信程度比较高,控制面和数据面都不需要做过多额外的隔离增强。原生的 K8S 就能满足需要。
    • 第三是大型企业的平台。这种场景下 K8S 的用户,基本来自于企业内部的各个部门,开发部署的应用也是经过内部的验证之后才可以上线。所以应用的行为是可信的,数据面不需要做太多的隔离。更多的是要在控制面做一些防护控制,来避免不同部门、业务之间的管理干扰,如API调用时,需要实现针对租户的限流。
    • 第四种场景,在公有云上对外提供一个多租的 K8S 平台。它对控制面和数据面的要求都是最高的。因为应用的来源不可控,很可能包含一些恶意代码。而 K8S 的 API 直接暴露给最终用户,控制面的隔离能力,如区分租户的API限流、访问控制等都是不可或缺的。
      总结一下,对于 K8S 来说,如果要在公有云场景下提供 Serverless Container 服务,需要解决三大类挑战。
    • 一是租户概念的引入、访问控制实现。目前 K8S 仍然没有原生的租户概念,以 Namespace 为边界的并不能很多好适配多租场景。
    • 二是节点 (计算资源) 的隔离还有 Runtime 的安全。
    • 三是网络隔离,K8S 默认网络全通的模式在这种景下会有很多问题。

    华为云的探索与实践

    下图是华为云容器实例服务的全貌,它基于 Kubernetes 打造,对最终用户直接提供 K8S 的 API。正如前面所说,它最大的优点是用户可以围绕 K8S 直接定义运行应用。

    这里值得一提是,我们采用了全物理机的方案,对于端到端资源利用率有一个很大的提升。而在 K8S 之上我们通过一层封装实现了超规模资源池。大家知道 K8S 现开源的版本最大只能支持到 5000 节点,并且这是在 Google 云上的验证结果,而在很多其他的云平台往往达不到。主要是受限于底层网络和存储系统。

    所以在华为云,我们的做法是通过一层封装和引入 Federation 来获得整体服务的超大规模。同时因为 K8S 原生多租能力非常有限,所以我们选择将额外基于租户的验证、多租限流等工作放在这一层封装中实现。但对于应用定义等接口,则是直接透传 K8S 原生的 API 数据,只是在调用过程中增加如请求合法性等的校验。图中右侧的容器网络、容器存储,现有的开源方案是无法满足的,所以华为云采用自研的策略。

    租户概念和网络隔离

    前面已经讲过,K8S 原生并没有租户概念,只有一层以 Namespace 为边界的隔离。在 Namespace 这一层,除了API对象的可见性隔离,K8S 还提供了 Resource Quota(资源总和限制)以及 Limit Range(定义每个Pod、Container能使用的资源范围)等精细的配额管理能力。而在华为云上,我们设计的租户模型是:租户(用户)、项目、Namespace 三层模型,方便用户管理多个项目的开发、测试、生产等不同阶段。

    网络隔离方面,采用多网络模型,一个项目中可以定义多个VPC,VPC 和 Namespace 是一对多的关系。用户可以结合实际需要将开发、测试阶段的应用部署在同个 VPC 的不同 Namespace 中便于调试和问题定位,生产环境部署在拥有单独 VPC 的 Namespace 保证不受其他活动干扰。

    Runtime安全与隔离

    再看 Runtime,由于是全物理机的模式,节点被不同的租户共享,普通docker容器无法满足Pod间的隔离性要求,Runtime采用的是安全容器(即早期的runV,现在的Kata Container)。使用安全容器的主要思路,就是在Pod外围包一层轻量级虚拟机,这样既保证了Pod间的隔离性,又兼容了K8S原生Pod内容器共享网络和存储的设计。而包装这层轻量级的虚机,因为里面只需要运行容器,可以通过裁剪等手段优化到与普通容器相同数量级的启动时间。

    接口层面,按照社区现在的进展,推荐的做法是使用 CRI (container runtime interface) 直接对接安全容器的 CRI-shim 实现。不过因为项目启动很早,CRI 尚未成熟,我们采用的是在 Docker 内部分支处理的方案:在容器引擎服务中,仍然是原来的逻辑,直接创建普通容器;而在我们的容器实例服务里,通过 Docker API 调用创建出来的则是安全容器。用户原本使用 Docker 容器的习惯几乎没有改变,在指定容器镜像时也是需要指定所需运行的 Docker 镜像,外层轻量级虚机的镜像直接由宿主机提供。这样既解决了安全隔离的问题,又不会给用户带来额外的切换成本。

    最后,让我们来回顾一下本次分享的关键内容。

    • 首先,我们基于 Kubernetes 构建了华为云容器实例服务的核心部分,在其上封装实现了多租户的定义和访问隔离。对用户来说,最大的好处是可以使用原生 K8S 的 API 和命令行,不需要感知 K8S 集群和底层资源,不需要在使用前创建集群,使用过程中也不用担心集群出现任何问题,完全由平台自身来保证服务的可用性。
    • 其次,在计算资源隔离方面,我们采用是Docker原生API后端对接 kata container,可以最大限度兼容两个项目的生态。而对于最终用户来说,用户只需要知道安全隔离足够可靠。而在网络隔离方面,采用多网络的模型,用户可以定义多个 VPC,将 Namespace 和应用创建到不同的 VPC 中,以此实现彼此之间的隔离。
    • 此外,针对高性能计算场景,我们还完成了GPU、FPGA加速芯片的分配调度优化,配合高性能网络与本地存储加速,进一步提升了端到端计算性能。

    结语

    以上是华为云对Kubernetes在Serverless Container产品落地中的实践经验。随着产品的成熟,我们也计划将一些共性的增强点回馈社区,推动Kubernetes在面向Serverless容器和多租隔离等场景的能力补齐和生态发展。

    展开全文
  • 1、rancher ui,k8s可视化管理平台 2、nginx、k8s集群,业务服务访问入口 3、物理机 整体架构图: 准备: 1、所有主机节点开通外网访问权限 2、申请https://k8s-pro.xx.com rancher ui 域名解析 3、申请...

    生产环境k8s集群接入方案主要由以下三部分组成:

    1、rancher ui,k8s可视化管理平台

    2、nginx、k8s集群,业务服务访问入口

    3、物理机

    整体架构图:

     

    准备:

    1、所有主机节点开通外网访问权限

    2、申请https://k8s-pro.xx.com  rancher ui 域名解析

    3、申请xxx.k8spro.xx.com 业务服务 域名解析

    4、k8s相关命令文件地址:http://172.16.101.32/stgconfig/soft

    一、安装环境

    1、硬件环境

     

    2、软件环境

    os:centos7.6

    rancher:2.3.2

    docker:17.03.2-ce , overlay2存储,extfs 文件系统

    二、安装前的准备

    1、主机环境配置

       1.1、  关闭防火墙 

     sudo systemctl stop firewalld.service && sudo systemctl disable firewalld.service
       1.2、关闭setlinx  

         sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

       1.3、关闭swap

          注释或删除swap交换分区:vi /etc/fstab

         #/dev/mapper/centos-swap swap swap defaults 0 0

        1.4、配置主机时间、时区、系统语言

         sudo  ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

         sudo echo 'LANG="en_US.UTF-8"' >> /etc/profile;source /etc/profile

       1.5、修改最大进程数 、 用户进程打开文件数

       echo '1000000' > /proc/sys/kernel/pid_max

       vim  /etc/sysctl.conf  

       kernel.pid_max=1000000

       sysctl -p  保存生效

    --------

     vi /etc/security/limits.conf

    *          soft    nproc     102400                                                                                                                                        
     *          hard    nofile    65535                                                                                                                                         
     jyapp      hard    nofile    102400                                                                                                                                        
     jyapp      soft    nofile    102400                                                                                                                                        
     jyapp      soft    nproc     102400                                                                                                                                        
     root       soft    nproc     unlimited                                                                                                                                     
     root       soft    nofile    102400                                                                                                                                        
     root       hard    nofile    102400

      1.6、Kernel性能调优

    vi /etc/sysctl.conf

    追加

    net.ipv4.ip_forward=1

    net.bridge.bridge-nf-call-iptables=1

    net.ipv4.neigh.default.gc_thresh1=4096

    net.ipv4.neigh.default.gc_thresh2=6144

    net.ipv4.neigh.default.gc_thresh3=8192

    1.7、修改本机dns

    vi /etc/resolv.conf

    nameserver 172.16.101.28
    nameserver 172.16.101.18

    2、安装docker-ce并配置

    # 添加用户(可选)

    sudo adduser jyapp

    # 为新用户设置密码

    sudo passwd jyapp

    # 为新用户添加sudo权限

    sudo echo 'jyapp ALL=(ALL) ALL' >> /etc/sudoers
    Docker 9步 快速安装(https://blog.csdn.net/chen978616649/article/details/80505195

    jyapp加用docker用户组

    sudo usermod -a -G docker jyapp

    vi /etc/docker/daemon.json

    {
    "bip":"172.25.100.1/24"
    ,"insecure-registries":["172.16.101.43:5000","172.16.101.49","10.50.182.85","docker.xx.com"]
    ,"registry-mirrors": ["http://172.16.101.49","http://10.50.182.85","http://docker.xx.com","https://088aunhx.mirror.aliyuncs.com"]

    ,"log-driver": "json-file"
    ,"log-opts": {
    "max-size": "100m",
    "max-file": "3"
    }
    ,"max-concurrent-downloads": 10
    ,"max-concurrent-uploads": 10
    ,"storage-driver": "overlay2"
    ,"storage-opts": ["overlay2.override_kernel_check=true"]
    }

    systemctl daemon-reload

    systemctl restart docker

    3、下载命令行工具

    附件中下载

    kubectl,rke,helm 到  172.19.101.135 /usr/local/bin 下

    命令工具下载地址:http://172.16.101.32/stgconfig/soft/raw/master/k8s-kub.tar.gz

    cd /usr/local/bin

    赋可执行权限

    sudo chmod +x *

    修改profile

    sudo vi /etc/profile

    追加:

    export PATH="/usr/local/bin:$PATH"

    保存退出,使之生效

    sudo source /etc/profile

    4、免密登录

    在172.19.101.135用jyapp用户执行:

    ssh-keygen -t rsa

    ssh-copy-id -p 10022 -i ~/.ssh/id_rsa.pub jyapp@172.19.101.135

    ssh-copy-id -p 10022 -i ~/.ssh/id_rsa.pub jyapp@172.19.101.136

    ssh-copy-id -p 10022 -i ~/.ssh/id_rsa.pub jyapp@172.19.101.137

    三、rke安装k8s

    1、配置rke 创建rancher-cluster.yml文件

     nodes:

        - address: 172.19.101.135
          user: jyapp
          role: [controlplane,worker,etcd]
          port: 10022
        - address: 172.19.101.136
          user: jyapp
          role: [controlplane,worker,etcd]
          port: 10022
        - address: 172.19.101.137
          user: jyapp
          role: [controlplane,worker,etcd]
          port: 10022
    services:
        etcd:
           backup_config:
               enabled: true
               interval_hours: 6
               retention: 12
           extra_args:
               quota-backend-bytes: '4294967296'
        kubelet:
           cluster_domain: cluster.local
           cluster_dns_server: 10.43.0.10
           fail_swap_on: true
           extra_args:
              max-pods: 50
              kube-api-burst: '100'
              kube-api-qps: '100'
             #enforce-node-allocatable: 'pods'
             #system-reserved: 'cpu=1,memory=4000Mi'
             #kube-reserved: 'cpu=1,memory=4000Mi'
        kube-controller:
             cluster_cidr: 10.42.0.0/16
             service_cluster_ip_range: 10.43.0.0/16
             extra_args:
                 node-cidr-mask-size: '24'
        kube-api:
             service_cluster_ip_range: 10.43.0.0/16
             service_node_port_range: 30000-32767
             pod_security_policy: false
             always_pull_images: false

    2、运行RKE命令

    rke up --config rancher-cluster.yml

    完成后,它应显示:Finished building Kubernetes cluster successfully。

    在本目录会生成config文件:kube_config_rancher-cluster.yml

    如若操作失败,重新安装需要清理数据:

    su - root
    rm -rf /var/lib/rancher/etcd/*
    rm -rf /etc/kubernetes/*
    su - jyapp
    rke remove --config ./rancher-cluster.yml
    3、测试集群

    mkdir ~/.kube

    cp kube_config_rancher-cluster.yml  ~/.kube/config

    kubectl get cs

    NAME                          STATUS    MESSAGE    ERROR
    controller-manager       Healthy        ok 
    scheduler                      Healthy        ok 
    etcd-0                           Healthy {"health": "true"} 
    etcd-2                           Healthy {"health": "true"} 
    etcd-1                           Healthy {"health": "true"}

    kubectl get node

    NAME                STATUS        ROLES                   AGE               VERSION
    172.19.101.135   Ready  controlplane,etcd,worker 20d                 v1.13.5
    172.19.101.136    Ready  controlplane,etcd,worker 20d                v1.13.5
    172.19.101.137   Ready  controlplane,etcd,worker 20d                 v1.13.5

    四、安装 rancher  server

    1、分别在172.19.101.117、172.19.101.134上执行

    docker run -d --restart=unless-stopped \
    -p 80:80 -p 443:443 \
    -v /var/lib/rancher/:/var/lib/rancher/ \
    -v /root/var/log/auditlog:/var/log/auditlog \
    -e CATTLE_SYSTEM_CATALOG=bundled \
    -e AUDIT_LEVEL=3 \
    rancher/rancher:v2.3.2
    访问:https://172.19.101.117

    注:ui初始登录时需指访问地址为 k8s-pro.xx.com

    2、通过rancher ui导入 rke k8s集群

     

    五、 配置nginx

    1、sudo vi /etc/nginx/nginx.conf

    user nginx;
    worker_processes 4;

    error_log /var/log/nginx/error.log warn;

    worker_rlimit_nofile 40000;

    events {
    worker_connections 8192;
    }

     

    http {

          upstream rancher_web{
                server 172.19.101.135:80;
                server 172.19.101.136:80;
               server 172.19.101.137:80;
          }
          server {

                listen 80 default_server;
                server_name _;
                access_log logs/busiweb.access.log main;

                client_max_body_size 300m;
                client_body_buffer_size 128k;
                proxy_connect_timeout 600;
                proxy_read_timeout 600;
                proxy_send_timeout 600;
                proxy_buffer_size 64k;
                proxy_buffers 4 32k;
                proxy_busy_buffers_size 64k;
                proxy_temp_file_write_size 64k;

                location / {
                      proxy_set_header Host $host;
                      proxy_set_header X-Real-IP $remote_addr;
                      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

                     proxy_pass http://rancher_web;
                }

          }

    }

    2、 或可以容器化nginx代替以上安装

    下载附件nginx.tar.gz 并解压

    略作修改:按上面nginx.conf 修改

    执行 sh startNginx-80.sh 即可

    六、jdk主机安装

    集群各节点 135、136、137均需安装

    jdk下载地址:

          jdk为开发、测试、准生产、生产环境通用的标准及版本1.7和1.8,支持中文字体
         下载方式:wget http://172.16.101.32/stgconfig/soft/raw/master/jdk.tar.gz 
          解压方式:tar -zxf jdk.tar.gz

          解压到 /root/目录下即可

    七、日志收集 elk

    八、监控 promethus 

    九、jenkins 发版

    十、需开通网络访问权限

    1、镜像仓库 172.16.101.49,10.50.182.85

    2、apollo

    十一、新旧系统对接

    如上架构图

    直接在原有服务域名负载中追加

    172.19.101.115:80;

    172.19.101.116:80;

    即可。

    展开全文
  • 点击蓝字关注 了解更多“正如Linux在21世纪初成为了数据中心、云和设备的标准计算平台一样,我们完全相信,Kubernetes将于2020年迅速成...

     

    点击蓝字关注 了解更多

     “正如Linux在21世纪初成为了数据中心、云和设备的标准计算平台一样,我们完全相信,Kubernetes将于2020年迅速成长为多云及异构IT环境中无处不在的企业计算平台。

    ——Rancher联合创始人及CEO梁胜

     

     

     

    2020年3月17日,Kubernetes管理平台创建者Rancher Labs(以下简称Rancher)宣布完成新一轮4000万美元D轮融资,本轮融资由Telstra Ventures领投,既有投资者Mayfield、Nexus Venture Partners、国富绿景创投(GRC SinoGreen)和F&G Ventures跟投。Telstra Venture的投资者之一澳大利亚电信(Telstra Corporation)是澳大利亚最大的电信企业,同时也是Rancher的客户。

     

    此前,Rancher曾在2019年7月获得C轮2500万美元融资,2016年获得B轮2000万美元融资,2015年获得A轮1000万美元融资。新一轮融资使得Rancher融资总金额累计至9500万美元(逾6亿6千万元人民币)。Rancher透露,本轮融资用于进一步推动产品的持续创新,加大对Go-To-Market的投入,以及拓宽Kubernetes在全新市场与行业中的无限可能。

     

    Rancher成立于2014年,由CloudStack之父梁胜创建,是业界领先的企业级容器管理软件提供商,帮助用户轻松地统一管理在数据中心、云、分支机构和边缘运行的Kubernetes集群。得益于企业对Kubernetes的强劲需求,以及Rancher创新且独特的功能和价值主张,2019年,Rancher全球营业收入同比增长169%,客户数量同比增长100%。

     

    “这一轮融资再次说明,投资机构对Kubernetes市场及Rancher的技术实力充满了信心。”Rancher联合创始人及CEO梁胜表示:“正如Linux在21世纪初成为了数据中心、云和设备的标准计算平台一样,我们完全相信,Kubernetes将于2020年迅速成长为多云及异构IT环境中无处不在的企业计算平台。”

    Rancher,推动计算无处不在

     

    第三方数据统计公司451 Research的研究指出,到2022年,76%的企业将采用Kubernetes作为标准的基础设施计算平台。这一数据充分表明,Kubernetes将成为与企业IT战略和云原生应用程序关联度最高的平台。

     

    Rancher的旗舰产品Rancher是业界应用最为广泛的Kubernetes管理平台,全球累计下载次数逾一亿次,拥有知名企业客户逾40,000家。除此之外,Rancher还围绕Kubernetes生态进行了一系列的延展与探索,其中Rancher推出的轻量级Kubernetes发行版k3s是目前业界公认的边缘Kubernetes最佳解决方案。

     

    Rancher+k3s组成了Rancher “Kubernetes即服务(Kubernetes-as-a-Service)”解决方案堆栈,将Kubernetes的能力从数据中心、云端延展至边缘端,充分赋予企业在任何基础设施上部署Kubernetes的自由。

     

    梁胜表示,未来,Rancher将在产品、行业解决方案和团队建设三个方向发力,为企业在生产环境中落地Kubernetes提供更为坚实的基础。

     

    在产品方面, Rancher将持续发力让Kubernetes进一步成为通用计算标准,在Kubernetes关键领域进行持续创新,包括异构集群联邦(heterogenous cluster federation)、车队管理(fleet management)和边缘计算环境中的Kubernetes落地等等。

     

    更重要的是,Rancher还将凭借其自身在Kubernetes领域的领导者地位,与其他领先的科技公司合作,在5G、数字工厂、车联网、视频监控和医学研究等领域共同开发基于Kubernetes的行业解决方案,拓展Kubernetes在新行业与新领域的无限可能。

     

    在全球扩张及团队建设方面,Rancher将扩大现有的销售、市场、财务、运营、客户成功和客户支持团队。此外,Rancher全球团队分布当前已覆盖14个国家,未来还将进一步在地理版图上扩大国家与城市的覆盖率,为全球企业客户提供更为专业的技术服务。

     

    尤为值得一提的是,2019年全年,Rancher在大中华地区的业务年复合增长率超越300%,中国有望成为Kubernetes全球增长最快的企业级市场。

     

    正是基于对中国Kubernetes市场的看好,Rancher已于2020年2月完成了中国本土化和国产化,从2020年3月1日开始,Rancher在中国大陆、香港和澳门地区、台湾地区的业务,均由全中资公司Rancher中国云澈信息技术(深圳)有限公司承载,并面向中国企业客户提供了中国企业版Rancher产品和中国版k3s边缘计算平台。

    独特的“客户变投资人”

     

    澳大利亚电信(Telstra Corporation)以Rancher为基础,打造了企业核心的客户联络中心、客户网络以及客户服务中心。正是澳大利亚电信的成功案例,以及其间Rancher展现出的强大的技术实力吸引了Telstra Ventures,使其对Rancher产生了浓厚的兴趣。

     

    Telstra Ventures是一家全球知名的战略风投机构,专注于市场领先及拥有出色产品的高增长技术企业的投资,由全球20大电信运营商之一的澳大利亚电信(Telstra Corporation)和全球最大的私募股权资金之一HarbourVest两名战略投资者共同构成。

     

    Telstra Ventures参与投资的知名技术企业包括开源代码库GitLab、企业云档案管理Box、电子签名认证DocuSign和终端安全防护平台CrowdStrike等。

     

    “除谷歌外,Rancher是全球首家意识到Kubernetes将对IT市场产生深远影响的公司之一。在我们进行早期投资相关讨论的时候,梁胜曾表示‘Kubernetes具有成为云计算的TCP/IP协议角色的潜力’,这是一个极具吸引力且令人印象深刻的描述。”负责Telstra Venture企业投资的投资合伙人Steve Schmidt感叹道。

     

    对于像Telstra一样正在部署5G的领先电信公司而言,Rancher无疑是令人无法忽视的存在。“我们相信,Rancher将在把Kubernetes引入5G的方向上起到独特的桥梁作用。”Steve Schmidt表示。

     

    另一方面,梁胜在云计算领域的丰富履历及技术魅力也是促使Telstra Venture投资Rancher的另一关键要素。作为全球知名的风投机构,Telstra Ventures一直致力于寻找世界一流的企业家。他们认为,世界一流的企业家可以打造出色的产品,同时也能成功地将其推广到市场。

     

     “我们的使命是‘与非凡的人合作’。在接触梁胜后,我们坚信,他是一个世界一流的企业家。”Steve Schmidt补充道:“更为显而易见的是,Rancher正在梁胜及其创始团队的带领下走向卓越。”

     

    Rancher中国CEO秦小康总结道:“容器技术在全球新一轮技术创新及应用领域的广阔前景正在逐步展开,我们尤其看好实现国产化和本地化的Rancher中国强劲的发展前景。在全新的发展阶段和下一代技术浪潮中,Rancher中国也将与广大中国用户和合作伙伴一起,践行‘Computing Everywhere’的新一代计算平台理念,以持续创新的技术能力,为中国客户数字化信息化建设保驾护航。”

     


     

    编者的话:

     

    “Kubernetes将于2020年迅速成长为多云及异构IT环境中无处不在的企业计算平台。”Rancher联合创始人及CEO梁胜的这句话,足以让人热血沸腾。

     

    众人皆说,2019年是云原生技术的元年。那么2020年,就应该是云原生快速落地、取得丰硕成果的关键一年。这样一来,云原生会给企业级客户以更大的信心和助力,从而加速企业的云化。

     

    2020年的第一季度,虽然抗击疫情是主旋律,但是我们也欣喜地看到了云原生加快落地的景象。仅仅在过去一周内,好消息接二连三:Hitachi Vantara宣布收购Kubernetes初创公司Containership的资产;3月13日,AWS宣布,Amazon Elastic Kubernetes Service(Amazon EKS)在中国上线,并由宁夏西部云数据技术有限公司运营的AWS中国(宁夏)区域和北京光环新网科技股份有限公司运营的AWS中国(北京)区域正式商用;VMware正式发布全新产品组合VMware Tanzu,全面拥抱Kubernetes。

     

    VMware CEO Pat Gelsinger将Kubernetes的重要性与Java相提并论,梁胜认为Kubernetes具有成为云计算的TCP/IP协议角色的潜力……无论何种比喻,Kubernetes的重要性毋庸置疑。接下来的考验就是各厂商,以及企业级客户如何将以Kubernetes为代表的云原生技术真正落在实处。

     

    2020年,让我们敞开怀抱,尽情拥抱Kubernetes,拥抱云原生吧!

     

     

    长按二维码识别关注云报

    云报

    小编微信:Taogebj

    联系邮箱:15327768@qq.com

     

    展开全文
  • Rancher是一个开源的企业级容器管理平台。通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台。 ...
  • 首先从零开始教你搭建Kubernetes企业级容器云平台。接下来,学习Kubernetes核心功能,例如Pod、Deployment、Service、Ingress、Volume、PersistentVolume等知识点,再教你如何将公司项目部署到集群中,然后对集群...
  • K8s之Rancher平台部署

    2020-11-20 19:54:49
    而Rancher是一个开源的企业级容器管理平台。通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台。   ...
  • K8s之KubeSphere平台部署

    2020-11-19 21:20:58
    KubeSphere还是一个多租户企业级容器平台,具有全栈自动IT操作和简化的DevOps工作流程。它提供了开发人员友好的向导Web UI,可帮助企业构建更健壮且功能丰富的平台,其中包括企业Kubernetes战略所需的最常用功能,...
  • k8s的paas平台

    2019-06-29 09:50:00
    高可靠设计,Etcd 集群,Kubernetes 三主节点,保证集群的高可用性。 基于 GlusterFS /nfs集群,在生产环境和非生产环境下提供存储卷服务。...通用组件服务,提供快速构建企业级应用的能力。 在该架...
  • 最近公司打算上云平台,同时也要上一套CDH的服务。本人专业是大数据开发方向,临危受命,没有太多基础,但是在百度与自己的学习下,总算搭建成功,现在就整个流程总结一下。以免后面忘记了,也给新人们铺个路。再次...
  • 企业快速上云提供一个安全可靠的解决方案,此课程主要介绍kubernetes1.14/kubernetes1.15版本高可用集群的安装部署和使用,通过我多年工作经验总结,带你深入体验企业实战案例,让您轻松快速的掌握k8s,接下来让...
  • Wayne是笔者无意之间刷文章了解到的,简单使用之后发现能...通过可视化 Kubernetes 对象模板编辑的方式,降低业务接入成本,拥有完整的权限管理系统,适应多租户场景,是一款适合企业级集群使用的发布平台。附上:...
  • Wayne是笔者无意之间刷文章了解到的,简单使用之后发现能...通过可视化 Kubernetes 对象模板编辑的方式,降低业务接入成本,拥有完整的权限管理系统,适应多租户场景,是一款适合企业级集群使用的发布平台。附上:...
  • Kubernetes市场行情Kubernetes作为成熟的容器编排工具,在国内外很多公司、世界500强等企业已经落地使用,很多中小型...对于开发、测试、运维、架构师等技术人员来说k8s已经成为的一项重要的技能,下面列举了国内...
  • 为您提供Rancher企业级Kubernetes管理平台下载,Rancher是一个开源的企业级Kubernetes管理平台,实现了Kubernetes集群在混合云+本地数据中心的集中部署与管理。Rancher API Server:基于Kubernetes API Server扩展...
  • 为您提供Rancher企业级Kubernetes管理平台下载,Rancher是一个开源的企业级Kubernetes管理平台,实现了Kubernetes集群在混合云+本地数据中心的集中部署与管理。Rancher API Server:基于Kubernetes API Server扩展...
  • Wayne是笔者无意之间刷文章了解到的,简单使用之后发现能解决...通过可视化 Kubernetes 对象模板编辑的方式,降低业务接入成本,拥有完整的权限管理系统,适应多租户场景,是一款适合企业级集群使用的发布平台。 附...
  • 为您提供Rancher企业级Kubernetes管理平台下载,Rancher是一个开源的企业级Kubernetes管理平台,实现了Kubernetes集群在混合云+本地数据中心的集中部署与管理。Rancher API Server:基于Kubernetes API Server扩展...
  • 为您提供Rancher企业级Kubernetes管理平台下载,Rancher是一个开源的企业级Kubernetes管理平台,实现了Kubernetes集群在混合云+本地数据中心的集中部署与管理。Rancher API Server:基于Kubernetes API Server扩展...
  • Wayne是笔者无意之间刷文章了解到的,简单使用之后发现能解决...通过可视化 Kubernetes 对象模板编辑的方式,降低业务接入成本,拥有完整的权限管理系统,适应多租户场景,是一款适合企业级集群使用的发布平台。 附...
  • Rancher 是企业级多集群Kubernetes管理平台,一个为DevOps团队提供的完整的Kubernetes与容器管理解决方案。它解决了多Kubernetes集群管理、操作和安全的难题,同时为DevOps团队提供了运行容器化工作负载的管理工具。...
  • 通过可视化 Kubernetes 对象模板编辑的方式,降低业务接入成本, 拥有完整的权限管理系统,适应多租户场景,是一款适合企业级集群使用的发布平台。Wayne已大规模服务于360搜索,承载了内部绝大部分业务,稳定管理了...
  • KubeSphere 是一款开源项目,在目前主流容器调度平台 Kubernetes 之上构建的企业级分布式多租户容器管理平台,提供简单易用的操作界面以及向导式操作方式,在降低用户使用容器调度平台学习成本的同时,极大降低开发...
  • 2018年12月11日,企业级Kubernetes管理平台Rancher Labs(以下简称Rancher)宣布与英国芯片设计公司Arm合作,以满足客户对物联网和边缘计算的部署需求。今后,Rancher Kubernetes Engine (RKE)以及Rancher OS可移植...
  • 2018年12月11日,企业级Kubernetes管理平台Rancher Labs(以下简称Rancher)宣布与英国芯片设计公司Arm合作,以满足客户对物联网和边缘计算的部署需求。今后,Rancher Kubernetes Engine (RKE)以及Rancher OS可移植...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 170
精华内容 68
关键字:

企业级k8s平台