网站备案 域名不是自己的,网站定制开发怎么做,深圳网站制作公司电话,wordpress调用随机文章代码一、DevOps介绍
软件开发最初是由两个团队组成#xff1a;
开发团队#xff1a;负责设计和构建系统。运维团队#xff1a;负责测试代码后部署上线#xff0c;确保系统稳定安全运行。
这两个看似目标不同的团队需要协同完成一个软件的开发。DevOps整合了开发与运维团队
开发团队负责设计和构建系统。运维团队负责测试代码后部署上线确保系统稳定安全运行。
这两个看似目标不同的团队需要协同完成一个软件的开发。DevOps整合了开发与运维团队旨在提高效率并持续工作。
软件开发过程及涉及工具
PLAN制定开发计划CODE根据计划开始编码BUILD构建并运行代码TEST测试代码是否存在BUG或错误DEPLOY手动和自动化测试后认定代码准备好部署OPERATE运维团队将代码部署到生产环境MONITOR监控产品INTEGRATE将监控阶段收到的反馈发送回PLAN阶段形成闭环
二、Code阶段工具
在code阶段使用Git作为版本控制工具GitLab作为远程仓库。
Git安装
https://git-scm.com/ 傻瓜式安装GitLab安装
yum -y install git
docker search gitlab
docker pull gitlab/gitlab-ce
version: 3.1
services:gitlab:image: gitlab/gitlab-ce:latestcontainer_name: gitlabrestart: alwaysenvironment:GITLAB_OMNIBUS_CONFIG: |external_url http://10.1.106.68:8929gitlab_rails[gitlab_shell_ssh_port] 2224ports:- 8929:8929- 2224:2224volumes:- ./config:/etc/gitlab- ./logs:/var/log/gitlab- ./data:/var/opt/gitlab
docker-compose up -d
http://10.1.106.70:8929/Jenkins入门配置
由于Jenkins需要从Git拉取代码、需要本地构建、甚至需要直接发布自定义镜像到Docker仓库所以Jenkins需要配置大量内容。
构建任务
示例Pipeline脚本
environment {harborUseradminharborPasswdHarbor12345harborAddress192.168.11.102:80harborReporepo
}
stages {stage(拉取git仓库代码) {steps {checkout([$class: GitSCM, branches: [[name: */master]], extensions: [], userRemoteConfigs: [[url: http://192.168.11.101:8929/root/mytest.git]]])}}stage(通过maven构建项目) {steps {sh /var/jenkins_home/maven/bin/mvn clean package -DskipTests}}stage(通过SonarQube做代码质量检测) {steps {sh /var/jenkins_home/sonar-scanner/bin/sonar-scanner -Dsonar.source./ -Dsonar.projectname${JOB_NAME} -Dsonar.projectKey${JOB_NAME} -Dsonar.java.binaries./target/ -Dsonar.login40306ae8ea69a4792df2ceb4d9d25fe8a6ab1701}}// 其他stage...
}
post {success {dingtalk(robot: Jenkins-DingDing,type: MARKDOWN,title: success:${JOB_NAME},text: [- 成功构建${JOB_NAME}!\n- 版本latest\n- 持续时间 ${currentBuild.durationString}])}failure {dingtalk(robot: Jenkins-DingDing,type: MARKDOWN,title: fail:${JOB_NAME},text: [- 构建失败${JOB_NAME}!\n- 版本latest\n- 持续时间 ${currentBuild.durationString}])}
}Kubernetes编排工具
10.1 Kubernetes介绍
Kubernetes是一个开源的用于管理云平台中多个主机上的容器化应用其目标是让部署容器化的应用简单并且高效。
主要功能包括
服务发现和负载均衡存储编排自动部署和回滚自动完成装箱计算自我修复秘钥与配置管理
10.2 Kubernetes架构
Kubernetes搭建至少需要两个节点一个Master负责管理一个Slave搭建在工作服务器上负责分配。
组件及其功能
API Server核心通讯组件controller-manager资源调度etcd存储集群状态信息scheduler负责调度每个工作节点cloud-controller-manager负责调度其他云服务产品kubelet管理Pods上的容器kube-proxy处理其他Slave或客户端的请求Pod运行的容器
Harbor使用方式
Harbor作为镜像仓库主要的交互方式就是将镜像上传到Harbor上以及从Harbor上下载指定镜像。
添加用户构建项目
创建用户并设置项目为私有对不同用户设置不同角色。
发布镜像到Harbor
修改镜像名称为 harbor地址/项目名/镜像名:版本 并推送
docker login -u 用户名 -p 密码 Harbor地址
docker tag demo:v1.0 10.1.106.68/repository/demo:v1.0
docker push 10.1.106.68/repository/demo:v1.0从Harbor拉取镜像
需要先配置 /etc/docker/daemon.json 文件。