当前位置:   article > 正文

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

rancher spring cloud

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
应用容器规划
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
  • 1

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 "项目部署成功"
             }
         }
   }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56

至此,微服务部署实践完成,至于其他的不敢保证的坑,踩到再说哈

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/378554
推荐阅读
相关标签
  

闽ICP备14008679号