Rancher+k8s+Jenkines流水线+SpringCloud 微服务部署实践
Rancher+k8s+Jenkines流水线+SpringCloud 微服务部署实践容器虚机规划k8s 用来管理docker容器,runcher用来管理k8s, Jenkins负责流水线发布,预计一个master,三个节点服务器环境容器规划docker pull mysql:5.7docker pull redis:5docker pull nginx:1.10docker pull rabbi
Rancher+k8s+Jenkines流水线+SpringCloud 微服务部署实践
容器虚机规划
k8s 用来管理docker容器,runcher用来管理k8s, Jenkins负责流水线发布,预计一个master,三个节点
服务器环境容器规划
docker pull mysql:5.7
docker pull redis:5
docker pull nginx:1.10
docker pull rabbitmq:3.7.15-management
docker pull elasticsearch:7.6.2
docker pull kibana:7.6.2
docker pull logstash:7.6.2
docker pull mongo:4.2.5
应用容器规划
mall-monitor | 监控中心 |
---|---|
mall-gateway | 微服务网关 |
mall-auth | 认证中心 |
mall-admin | 商城后台服务 |
mall-portal | 商城前台服务 |
mall-search | 商城搜索服务 |
虚拟机环境容器规划
节点名称 | 安装软件 | ip | 内存/cpu | 硬盘 | 备注 |
---|---|---|---|---|---|
k8s-mall-master | rabbitmq/elasticsearch/kibana/logstash/kebute/kebuteadm | 192.168.0.221 | 4G/4c | 50G | |
k8s-mall-node1 | nginx/mysql/redis/kebute | 192.168.0.212 | 4G/4c | 50G | |
k8s-mall-node2 | rancher/mongo/kebute | 192.168.0.213 | 4G/4c | 50G | |
k8s-mall-node3 | harbor/jenkins/kebute | 192.168.0.214 | 8G/4c | 50G |
K8s环境搭建
参考 https://blog.csdn.net/qq_34168515/article/details/105330287 链接
该链接很完善,按照此步骤就可以搭建成功,按图索骥即可
ps:Flannel 插件下载不了可以参考这个:https://www.jianshu.com/p/5b41e6654332
Harbor环境搭建
https://blog.csdn.net/qq_39314099/article/details/105710428
push 镜像需要注意镜像tag的格式 要是 ”harbor域名+项目“否则会导致无权限push。
Rancher搭建
执行下述命令开启Rancher
rancher环境搭建
docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.4.8 --server https://192.168.0.213 --token mgzdkzkw9zsknlnm2529hrjglnnctdj5j6zt55sf6w9wxt7xgzww7v --ca-checksum 6144544391ec6c467327b166d8d19cd46e76bdfc95e421245affaff518ba3dbc --worker
Rancher配置,集群添加参考一下链接
https://blog.csdn.net/wyl9527/article/details/113600869
Jenkins环境搭建
安装参考一下链接,很简单几乎没啥坑,完全可以傻瓜安装。
https://www.jianshu.com/p/368685768680
SpringCloud应用流水线发布
主要应用部署可以参考这个链接 https://www.jianshu.com/p/2d89fd1b4403
ps:
- /.kube/config 可以把对应的配置拷贝到Jenkins用户目录下,
- 如果push镜像没权限记得创建harbor的密钥,参考一下链接:https://blog.csdn.net/xukangkang1hao/article/details/80839834
- 可使用pipeline脚本如下:记得先添加HARBOR_CREDS 证书。
pipeline {
agent any
// 环境变量
environment {
HARBOR_CREDS = credentials('jenkins-harbor-creds')
}
// 入参定义
parameters {
string(name: 'model_name', defaultValue: 'mall-admin', description: '部署模块名称')
string(name: 'registry_ns', defaultValue: '192.168.0.214/mall', description: '镜像命名空间')
string(name: 'tagsNmae', defaultValue: '1.0-SNAPSHOT', description: 'tag名称')
}
stages{
stage('1.检出代码') {
steps{
sh 'rm -rf /home/jenkins_home/workspace/mall-swarm/*'
// 检出代码
checkout([$class: 'GitSCM', branches: [[name: "*/master"]],
doGenerateSubmoduleConfigurations: false,
extensions: [],
submoduleCfg: [],
userRemoteConfigs: [[
url: "https://gitee.com/heapstone_admin/mall-swarm.git"]]])
}
}
stage("2.编译打包"){
steps{
// 编译打包
sh "mvn clean install -pl mall-common,mall-mbg -am"
sh "cd mall-admin"
sh "mvn clean package -pl ${params.model_name}"
}
}
stage('3.构建镜像及推送到docker仓库') {
steps {
echo "build images "
sh "docker --version"
sh "docker build -t ${params.registry_ns}/${params.model_name}:${params.tagsNmae} . -f ${params.model_name}/src/main/dockerfile/Dockerfile"
echo "push images "
sh "docker login -u ${HARBOR_CREDS_USR} -p ${HARBOR_CREDS_PSW} 192.168.0.214"
sh "docker push ${params.registry_ns}/${params.model_name}:${params.tagsNmae}"
sh "docker image rm -f ${params.registry_ns}/${params.model_name}:${params.tagsNmae}"
echo "push success! "
}
}
stage("4.kubectl apply") {
steps {
sh "kubectl apply -f document/k8s/${params.model_name}-deployment.yaml --namespace=mall-env"
sh "kubectl apply -f document/k8s/${params.model_name}-service.yaml --namespace=mall-env"
echo "项目部署成功"
}
}
}
}
至此,微服务部署实践完成,至于其他的不敢保证的坑,踩到再说哈
更多推荐
所有评论(0)