Jenkins+K8s实现持续集成

版权声明:fromZjy QQ1045152332 https://blog.csdn.net/qq_36762677/article/details/88698510
docker

其他文章已介绍
文章连接1
文章连接2

jenkins-自动化搭建测试环境 >K8s

基于容器技术的分布式架构领先方案

  • 自动化部署
  • 大规模可伸缩(自动化复制,失效则替换)
  • 应用容器化管理,可以自动升级
  • 提供负载均衡

□架构设计

master: 主服务器
node: 用于部署应用的服务器
Pod: 基本操作单元,也是应用运行的载体,整个kubernetes系统都是围绕着Pod展开(部署运行,保证数量,访问pod)
Deployment: 定义了Pod部署的信息(副本数,环境变量)
Service: 定义多个Pod组成一个什么服务(选择pod)

etcd: API server将处理结果存入高可用键值存储系统etcd中
Scheduler: 将未分发的pod绑定到可用的node节点上,存到etcd中
Controller Manager: 根据etcd中的信息,调用node中的kubelet创建pod 并且监控运行状况

□安装要求

K8s是靠主机名识别节点的,主机名不可相同
两台虚拟机:桥接模式(可以连接外网)
都要安装docker
都要安装kubeadm,kubelet和kubectl
都要禁用虚拟内存

Debian / Ubuntu
# Linux swapoff命令用于关闭系统交换区(swap area)。 -a 将/etc/fstab文件中所有设置为swap的设备关闭
swapoff -a 

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

□基本命令

检查node是否readykubectl get node
检查所有pod是否正常kubectl get pod --all-namespaces -o wide
在node上执行kubeadm reset可以断开node,然后重新join
在master上执行kubeadm reset可以重新init

1.deployment

查看kubectl get deployments --all-namespaces
创建kubectl create -f test.yaml kubectl apply -f test.yaml
删除kubectl delete -f test.yaml

2.service

查看kubectl get service --all-namespaces
创建servicekubectl create -f test.yml

3.pod

查看kubectl get po --all-namespaces kubectl get po --all-namespaces -o wide

jenkins-自动化搭建测试环境 > jenkins.io

下载war / java -jar xxx.war启动
访问:localhost:8080

1.继续安装插件

系统管理->管理插件->可选插件->
rebuilder 每次构建不用重新输入参数
safe restart 安全重启jenkins

2. 系统管理->

2.1 安全配置

configuration global security->授权策略->安全矩阵

2.1 用户管理

新建用户等用户操作

开发自动化部署任务

1.git同步最新的代码

2. maven打包

3. 停止tomcat,部署应用

4. 启动tomcat

猜你喜欢

转载自blog.csdn.net/qq_36762677/article/details/88698510