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端口去浏览器访问了

  • 相关阅读:
    Azure 虚拟机安全加固整理
    AzureARM 使用 powershell 扩容系统磁盘大小
    Azure Linux 云主机使用Root超级用户登录
    Open edX 配置 O365 SMTP
    powershell 根据错误GUID查寻错误详情
    azure 创建redhat镜像帮助
    Azure Powershell blob中指定的vhd创建虚拟机
    Azure Powershell 获取可用镜像 PublisherName,Offer,Skus,Version
    Power BI 连接到 Azure 账单,自动生成报表,可刷新
    Azure powershell 获取 vmSize 可用列表的命令
  • 原文地址:https://www.cnblogs.com/huningfei/p/12836862.html
Copyright © 2011-2022 走看看