zoukankan      html  css  js  c++  java
  • rancher的使用

    一 CICD的意思

    1 持续集成(CI)

    持续集成指在和向远程仓库 push 代码后,在这次提交合并入主分支前进行一系列测试,构建等流程。假设现在有个应用的代码存储在 gitlab 上,每天开发者都 push 很多次提交,针对每次 push,你可以创建一系列脚本进行自动测试,降低往应用里引入错误的概率。这就是持续集成,它可应用在包括开发分支在内的多个分支上。

    2 持续交付(CD)

    持续交付的英文全称是:Continuous delivery,缩写也是CD,它是一种软件工程手法。

    它可以让软件产品的产出过程在一个短周期内完成,以保证软件可以稳定、持续的保持在随时可以释出的状况。它的目标在于让软件的建置、测试与释出变得更快以及更频繁。这种方式可以减少软件开发的成本与时间,减少风险。

    3 持续部署(CD)

    持续部署在持续集成的基础上更进一步,指将推送指仓库默认分支的部署至产品环境。如果这部分需要手动触发,这就是一个持续交付(Continuous Delivery)环节。

    二 常用的CICD软件对比

    所以这次主要介绍rancher的使用,它的官网文档为https://rancher2.docs.rancher.cn/,详情请查看官方文档

    三 rancher的安装和使用

    1 安装(这里我用的是单节点容器安装)

    
    docker run -d --restart=unless-stopped 
        -p 80:80 -p 443:443 
        rancher/rancher:latest
    

    单节点安装很方便。然后等待一会,可以去浏览器访问即可。如下图:需要自己设置一下密码

    2 导入k8s集群

    点击web页面导入集群,然后出现两行命令(都是自动生成的,只需要去master节点执行一下即可)

    在主节点上面执行,绑定一个用户 --user 后面的用户,去你.kube/cofig里面查看
    kubectl create clusterrolebinding cluster-admin-binding --clusterrole cluster-admin --user kubernetes-admin
    

    然后再在主节点运行下面命令

    
    curl --insecure -sfL https://192.168.0.211/v3/import/7kgj6rwfg88c7pttkzp7w7ztdsf77wcfwgtr84sh6dw482zr58lm5s.yaml | kubectl apply -f -
    

    然后等待一会,集群就导入成功了

    3 设置流水线

    3.1 前提

    设置流水线之前,需要安装gitlab代码仓库和harbor镜像仓库,这里我的gitlab是用容器安装的,harbor仓库是用的官方的仓库,自己注册一个就行

    安装gitlab,可以先下载镜像,在运行,然后更改一下gitlab配置文件里面的host

    docker run -d  -p 443:443 -p 80:80 -p 222:22 --name gitlab --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
    
    

    3.2 rancher设置

    认证harbor镜像仓库:


    然后添加harbor仓库

    gitlab生成需要的ID和Key

    认证gitlab代码仓库:


    然后就可以自动同步代码,设置流水线了

    第一步克隆是默认的(是认证仓库的时候自动生成的),不能更改,我这里是一个java项目,然后打包

    然后构建镜像,需要提交认证镜像仓库地址

    最后发布

    deploy.yml文件内容如下:(这个文件也要放到gitlab仓库里面)

    ---
    apiVersion: extensions/v1beta1 
    kind: Deployment
    metadata:
      name: web
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: java-demo
      template:
        metadata:
          labels:
            app: java-demo 
        spec:
          containers:
          - name: tomcat 
            image: huningfei/rancher:docker_tag
            ports:
            - containerPort: 8080
              name: web
            livenessProbe:
              httpGet:
                path: /
                port: 8080
              initialDelaySeconds: 60
              timeoutSeconds: 5
              failureThreshold: 12
            readinessProbe:
              httpGet:
                path: /
                port: 8080
              initialDelaySeconds: 60
              timeoutSeconds: 5
              failureThreshold: 12
    
    
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: web
    spec:
      type: NodePort
      selector:
        app: java-demo 
      ports:
        - protocol: TCP
          port: 80
          targetPort: 8080
          nodePort: 30002
    
    ---
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: web 
    spec:
      rules:
      - host: www.hu.com
        http:
          paths:
          - path: /
            backend:
              serviceName: web 
              servicePort: 80
    
    

    最后发布完成之后,可以去资源---工作负载里面查看
    也可以通过命令查看
    查看pod

    查看svc

    最终去浏览器访问www.hu.com

    4 用rancher部署pod

    找到工作负载

    创建成功之后显示

    然后就可以利用nodeport端口去浏览器访问了

  • 相关阅读:
    jquery获取元素各种宽高及页面宽高
    Mysql 多表联合查询效率分析及优化
    mysql连表操作是先连表还是先查询条件
    CSS实现垂直居中
    laravel中orderBy使用
    Spring官网改版后下载
    java.lang.NoClassDefFoundError: org/jaxen/JaxenException
    flex 简单跑马灯效果(竖着显示)
    Flex “跑马灯”效果(自定义“跑马灯”控件)
    当LinkButton无效时,光标不显示为手型
  • 原文地址:https://www.cnblogs.com/huningfei/p/12836862.html
Copyright © 2011-2022 走看看