为了账号安全,请及时绑定邮箱和手机立即绑定

Jenkins+K8s实现持续集成

鹿哥 软件测试工程师
难度入门
时长 2小时30分
学习人数
综合评分8.17
17人评价 查看评价
8.8 内容实用
8.1 简洁易懂
7.6 逻辑清晰
  • 使用阿里云镜像安装:

    Debian / Ubuntu

    apt-get update && apt-get install -y apt-transport-https
    curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 
    cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
    deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
    EOF  
    apt-get update
    apt-get install -y kubelet kubeadm kubectl


  • Jenkins 是什么?

    Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。

    Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。


  • 安装网络插件:

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

    2、curl -O https://raw.githubusercontent.com/coreos/flannel/v0.10.0/Documentation/kube-flannel.yml

    (注:第2条命令执行前貌似需要先登录GitHub)

    3、kube-flannel.yml文件新加内容

          - key: node.kubernetes.io/not-ready

            operator: Exists

            effect: NoSchedule


  • 查看版本:docker  : version

    删除:docker rmi 删除的数据

    镜像查询;docker image ls

    镜像的下载;docker pull 需要下载的镜像

    运行或挂载:docker run -p 

    进入容器:docker exec -it 容器的ID /bin/bash


  • 老师,有课件文档吗?

  • 拉取MySQL镜像:

    docker pull mysql:5.6

    运行mysql镜像:

    docker run -p 3306:3306 --name mymysql -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

    docker的基本使用

    版本查看:

    docker version
    # 镜像拉取
    docker pull ImageName
    # 镜像查询
    docker images
    # 或者
    docker image ls
    # 镜像删除
    docker rmi ImageName
    # 容器运行、端口映射、挂存储卷
    # docker run 即运行容器
    # -p 3306:3306 宿主机端口端口:docker容器中端口进行映射
    # --name mymysql 容器名称 
    # -v /home/mysql/data:/var/lib/mysql 宿主机的目录:容器中数据存储目录进行映射
    # -e MYSQL_ROOT_PASSWORD=123456 设置root用户名123456,需要哪些环境变量?去dockerhub对应镜像查看对应镜像需要的环境变量
    docker run -p 3306:3306 --name mymysql -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
    # 进入容器
    docker -it ContainerID /bin/bash
    # 查看容器日志
    docker logs -f ContainerID
    # 查询容器
    # 查询正在运行的容器
    docker ps
    # 查询所有容器
    docker ps -a
    # 容器停止
    docker stop ContainerID
    # 容器删除
    docker rm -f ContainerID
    # 仓库登录
    $ sudo docker login --username=username registry.cn-hangzhou.aliyuncs.com

    # 镜像构建、镜像打tag、镜像推送

  • Registry安装配置

    1、docker pull registry

    2、docker run -p 5000:5000 -v /home/registry_images::var/lib/registry -d registry

    01:25
    看视频
  • 持续集成过程

    1、提交代码

    2、人工/定时触发

    3、自动构建

    4、自动部署

    5、构建成功

    6、获取构建环境信息

    7、邮件通知

    8、自动化测试

    9、构建失败

    10、邮件通知

    04:26
    看视频
  • 初始化第4步:

    1、mkdir -p $HOME/.kube

    2、cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

    3、chown $(id -u):$(id -g) $HOME/.kube/config

    14:04
    看视频
  • K8S调度过程

    1、Kubernetes Client将请求发送给API server

    2、API Server根据请求的类型,将处理结果存入高可用键值存储系统Etcd中

    3、Scheduler将未分发的Pod绑定(bind)到可用的Node结点上,存到etcd中

    4、Controller Manager根据etcd中的信息,调用Node中的kubelet创建pod

    5、Controller Manager监控pod的运行状况并确保运行正常

  • 课程目标

    1、基本了解docker、k8s、持续集成、jenkis

    2、掌握docker、k8s、Jenkins的基本使用

    3、掌握如何使用Jenkis+k8s实现持续集成与测试环境的自动化管理

    01:33
    看视频
  • 1、K8s基本使用-Deployment创建、删除

    • Kubectl create -f test.yaml

    • Kubectl delete -f test.yaml


    2、K8s基本使用-Pod查看、删除

    • Kubectl get pod --all-namespaces -o wide

    • Kubectl describe pod xxxxx -n kube-system

    • kubectl delete pod xxxx -n kube-system


  • 1、K8s能做什么?

    • 容器的自动化复制和部署。随时扩展或收缩容器规模,并提供负载均衡。

    • 方便地容器升级

    • 提供容器弹性,如果失效就替换它

    2、K8s对于测试能做什么?

    • 测试服务器的集中化、自动化管理。将各种平台的服务器加入集群,按需部署或销毁

    • 持续集成是方便地自动部署

    3、K8s架构

    <!--此处有图片-->

    4、K8s基本概念

    • Master是主服务器,node是用于部署应用容器的服务器

    • Pod基本操作单元,也是应用运行的载体。整个kubernetes系统都是围绕着Pod展开的,比如如何部署运行Pod、如何保证Pod的数量、如何访问Pod等。

    • Deployment定义了pod部署的信息。

    • 若干个pod副本组成一个service,对外提供服务

    • 副本是指一个pod的多个实例

    • Namespace 用于多租户的资源隔离。在测试环境中可以根据namespace划分成多套测试环境。默认有2个namespace;kube-system/default

    5、K8s调度过程

    • kubernetes client将请求发送给API server

    • API Server根据请求的类型,将处理的结果存入高可用键值存储系统Etcd中

    • Schedule将未分发的Pod绑定(bind)到可用的Node节点上,存到etcd中

    • Controller Manager根据etcd中的信息,调用Node中的kubelet创建pod

    • Controller Manager监控pod的运行状况并确保运行正常


首页上一页1234567下一页尾页

举报

0/150
提交
取消
课程须知
必备知识: 1、初步了解java、maven 2、了解git 3、熟悉Linux 4、了解spring boot 5、了解shell
老师告诉你能学到什么?
1、jenkins 2、docker 3、 k8s

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!