Rancher+k8s+Jenkines流水线+SpringCloud 微服务部署实践

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-masterrabbitmq/elasticsearch/kibana/logstash/kebute/kebuteadm192.168.0.2214G/4c50G
k8s-mall-node1nginx/mysql/redis/kebute192.168.0.2124G/4c50G
k8s-mall-node2rancher/mongo/kebute192.168.0.2134G/4c50G
k8s-mall-node3harbor/jenkins/kebute192.168.0.2148G/4c50G

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:

  1. /.kube/config 可以把对应的配置拷贝到Jenkins用户目录下,
  2. 如果push镜像没权限记得创建harbor的密钥,参考一下链接:https://blog.csdn.net/xukangkang1hao/article/details/80839834
  3. 可使用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
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值