软件工程

Jenkins+K8s实现持续集成笔记

本文主要是介绍Jenkins+K8s实现持续集成笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

虚拟机安装

sudo passwd root 设置root的密码、
sudo apt-get update 更新
apt-get install ssh 安装ssh
vim /etc/ssh/sshd_config 编辑 PermitRootLogin yes
systemctl restart sshd 重启ssh

ssh root@192.168.0.142 本机通过ssh链接linux
ufw disable 关闭防火墙

Docker容器

Docker是一种容器技术。(集装箱)

容器是一种轻量级、可以指、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。

开发在自己笔记本上创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机、物理服务器或公有云上运行。

安装和配置:

  • apt-get install -y docker.io(这个是Ubuntu系统)
  • sudo yum install docker-ce docker-ce-cli containerd.io(这个是CentOS系统)
    • systemctl start docker 启动
  • docker-io, docker-engin 是以前早期的版本,docker-ce 是社区版本
  • /etc/docker/daemon.json 配置 { "registry-mittors": ["https://dvwzscc0.mirror.aliyuncs.com"] }
  • docker pull mysql:5.6拉取镜像
    • 配置:docker run -p 3306:3306 --name mymysql -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6,可以在Docker hub上查看

Docker概念:

  • 镜像(image)
  • 容器(container)
  • 仓库(registry):共有和私有,Docker hub为默认仓库
  • 命令:
    • docker build(镜像构建)
      • docker build -t aaa:1.0 .,在当前目录构建一个名为aaa的镜像
      • docker build -t aaa:1.0 -f /root/Dockerfile,手动指定镜像地址
    • docker tag mysql:5.6 myregistry/mymysql:1.0 镜像tag
    • docker push myregistey/mymysql:1.0 会把mysql推送到构建的镜像中
    • docker run(运行) 、
    • docker pull(拉取镜像)、
    • docker images ls(查看镜像)、
    • docker rmi mysql(删除镜像)、
    • docker ps(查询正在运行容器)、docker ps -a(包含退出的)
    • docker exec -it ce5307fc90b6 /bin/bash(进入容器)、exit(退出容器)
    • docker logs -f ce5307fc90b6(查看动态容器日志)
    • docker stop ce5307fc90b6 (停止)
    • docker rmce5307fc90b6 (删除)
    • docker login(仓库登录)
  • Dockerfile记本语法(FROM从哪个镜像来、RUN运行哪些命令、WORKDIR工作目录、CMD/ENTRYPOINT执行脚本、EXPOSE向外暴露的端口号)

K8s(Kubernetes)

基于容器技术的分布式架构领先方案,它是google严格保密十几年的秘密武器-Borg的一个开源版本。

是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。

实现容器的自动化复制和部署。随时扩展或收缩容器规模,并提供负载均衡。方便容器升级。提升容器弹性,如果失效就替换它。

K8s测试服务器的集中化、自动化管理。将各种平台的服务器加入集群,按需部署或销毁。持续集成时方便自动部署。

kubectl create -f /root/kube.yaml
kubectl apply -f /root/kube.yaml 客户端将请求发送给API server
kubectl get service --all-namespaces
kubectl delete -f /root/kube.yaml

kubectl get pod --all-namespaces -o wide 获取Pod
kubectl describe pod xxxxx -n kube-system 信息Pod
kubectl delete pod xxxx -n kube-system 删除Pod

持续集成

持续集成(CI)时一种软件开发实践,每次集成都通过自动化的构建(包括编译、打包、部署、自动化测试)来验证。

点击查看更多内容
这篇关于Jenkins+K8s实现持续集成笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!