• jenkins、k8s、docker学习


    没有系统学习,只能根据项目中用的内容一点一点积累

    目前的理解是:jenkins打包生成镜像,docker使用镜像生成容器,k8s管理容器

    由于基于kubernetes也是基于docker的,都需要用到docker进行通信和中转,因此使用同一的slave镜像将大大节省平台开发与维护成本,因此需要引入jenkins的另一个大插件pipeline

    一、k8s   

    https://www.jianshu.com/p/502544957c88
    Docker是应用最为广泛的容器技术,通过打包镜像,启动容器来创建一个服务。
    但是随着应用越来越复杂,容器的数量也越来越多,由此衍生了管理运维容器的重大问题,k8s问世。
    k8s是一个开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能,有如下优点:
    1、服务发现与调度
    2、负载均衡
    3、服务自愈
    4、服务弹性扩容
    5、横向扩容
    6、存储卷挂载

    Ingress
    ingress是k8s的一种集群维度暴露服务的方式。
    通过http或https暴露集群内部service,给service提供外部URL、负载均衡、SSL/TLS能力以及基于host的方向代理
    可以简单理解为service的service,他通过独立的ingress对象来制定请求转发的规则,把请求路由到一个或多个service中。

    ingress与ingress-controller
    ingress对象
    指的是k8s中的一个api对象,一般用yaml配置。作用是定义请求如何转发到service的规则,可以理解为配置模板。
    ingress-controller
    具体实现反向代理及负载均衡的程序,对ingress定义的规则进行解析,根据配置的规则来实现请求转发

    二、Docker

    Docker将应用程序与该程序的依赖,打包在一个文件里面。
    运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。
    容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。

    镜像( Image) 和容器( Container) 的关系:
    就像是面向对象程序设计中的 类 和 实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

    容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的 命名空间。
    因此容器可以拥有自己的 root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID 空间。
    容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。
    这种特性使得容器封装的应用比直接在宿主运行更加安全。

    优点:
    1、简化配置:虚拟机VM最大的好处是基于你的应用配置能够无缝运行在任何平台上,Docker提供同样类似VM的能力。
    2、服务合并:使用Docker也能合并多个服务以降低费用
    3、代码管道化管理:能够对代码以流式pipeline管道化进行管理,
    4、多租户:Docker能够作为云计算的多租户容器,使用Docker能容易为每个租户创建运行应该多个实例,这得益其灵活的快速环境以及有效diff命令。
    5、快速部署:Docker通过创建进程的容器,不必重新启动操作系统,几秒内能关闭。
    6、开发人员的生产化:我们可以将多个Docker装载一系列服务运行在单机上最大程度模拟生产分布式部署的环境。
    7、应用隔离:将多个应用服务部署在多个Docker中能轻松达到这个目的。
    8、分层存储:镜像包含操作系统完整的 root 文件系统,其体积往往是庞大的,因此在Docker 设计时,就充分利用 Union FS 的技术,将其设计为分层存储的架构。

     三、Pipeline

     我们项目jenkins使用了Pipeline,Pipeline查资料好像是使用了groovy语言

    参考:https://www.cnblogs.com/shenh/p/8963688.html

  • 相关阅读:
    Spring JDBC配置数据源
    Eclipse创建一个Maven Web项目
    部署基于Maven的war文件到Tomcat
    使用“mvn site-deploy”部署站点(WebDAV例子)
    生成基于Maven的项目文档站点
    将项目安装到Maven本地资源库
    使用Maven运行单元测试
    使用Maven清理项目
    使用Maven构建项目
    Dubbo的使用入门
  • 原文地址:https://www.cnblogs.com/yinwenbin/p/14231175.html
Copyright © 2020-2023  润新知