up听课 docker,rancher,jenkins,redis,mysql,spring容器部署应用


title: 2020-5-21 up听课 docker,rancher,jenkins,redis,mysql,spring容器部署应用
tags: 新建,模板,小书匠
renderNumberedHeading: true
grammar_cjkRuby: true


docker,rancher,jenkins,redis,mysql,spring容器部署应用

rancher jenkins安装参数配置

1.镜像和端口

chrome_h3IpOqGMyf.png

2.数据卷映射jenkins_Home
chrome_27Whqf9Pn9.png

3.dockersock和docker_home映射挂载
chrome_0OHCsrXLOx.png

4.容器启动用户
chrome_tq3IRlYEpv.png

注意jenkins用root用户:可以访问docker.sock
5.jenkins配置安装配置maven
QQPCRealTimeSpeedup_2dbMmJu8gM.png

chrome_fs1kxEaJEm.png

创建私有镜像仓库

1.拉取镜像pull,不启动容器2.配置仓库协议3.做端口映射和卷挂载4.点击启动部署(实际就是docker run命令)


chrome_pfjmbhnYo4.png

查看镜像列表镜像ip:port/v2/_catalog请求地址浏览器访问即可


chrome_VY6nCVi1ZO.png

搭建微服务环境eureka,config,zuul

1.各种服务的作用
zuul是网关类似gateway,eureka就是discovery(服务的)+service服务(客户端)服务发现网络路由。oauth是统一授权登录。txlcn分布式事务。


chrome_30xfPkivoM.png

2部署eureka服务容器
配置docker云


chrome_6r4uootAiA.png

需要把Dockerfile放到target下;这样jar包和Dockerfile在一个目录下就可以通过docker命令打jar包成镜像。
清内存: echo 1>proc/sys/vm/drop_caches

eureka用主机网络的原因


chrome_59ohAytVRh.png
跟踪容器运行日志
docker logs -f -t --tail 200 容器id

部署好后的效果


QQPCRealTimeSpeedup_344yX1wXro.png

注意:eureka,config,zuul都一样打镜像,配置容器,部署启动的过程。
1.dockerfile里语句:要拷贝eureka jar包ADD app.jar里启动app.jar即可
2.要在maven job里配置cp命令把Dockerfile拷贝cp到target才能编译镜像
3.部署eureka镜像要用宿主机网络,部署后要根据不同application-xx.yml文件有效部署在不同机器互相发现服务成集群。
4.主机调度标签要配置deploy worker


chrome_yq3d9CKhvA.png

5.yml如何配置两台宿主机:pod数+1在deploy 标签146起eureka 的pod就要yml配置连接147


chrome_jVH7OKvjsw.png

搭建redis集群

chrome_SRJhcX5ZI4.png

安装nfs


chrome_PxpZR8DsN2.png

chrome_cxjf0MOB8E.png

持久卷生命及绑定部署redis-master


chrome_M6m9ygyROu.png

chrome_Fuatsj5Sgb.png

redis-slave安装
chrome_b4DfUf5MhG.png

把redis服务串联成集群
chrome_mDUPnUYHCm.png

chrome_OGp5LR8ivP.png

安装mysql高可用

安装主mysql


chrome_VLoZvbnbkm.png

从的配置


chrome_LWZ4bA7h4H.png

rancher里配置mysql主从
chrome_APHgunmXN8.png

rancher配置主


/chrome_MrHZQkuwqk.png

rancher配置从
chrome_XCFriEqOF2.png

使mysql成为主从
chrome_8Lfh8y3rkg.png

安装aouth,txlcn,client业务

打包common


chrome_nxUgLg4i43.png

打包 aouth


chrome_NOP3g8btKg.png

部署aouth
chrome_epTwHhsxuG.png

打包txlcn


/chrome_jrTnTNyF7f.png

部署txlcn


chrome_H0HSfwjIkx.png

打包业务包
chrome_76KKq3rmLn.png

部署业务包


chrome_2sFMQ0uneQ.png

eureka是服务发现和注册
zuul是网关
txlcn类似mq
client是业务服务

生产级别集群需要注意的点

  • rancher 高可用实现
  • ceph rdb分布式存储挂载
  • jenkins docker,dockersock,maven挂载外部保存maven的依赖仓库文件,配置maven私有仓库;可以起slave实现有权限访问sock文件。
  • redis,mysql,eureka等spring服务高可用
  • redis,mysql持久化多主机读写存储
chrome_AmlBdSbdDC.png

如果您处于受支持的云环境(AWS,GCP,Azure等)中,则可以创建类型为Loadbalancer的服务,并且将配置外部负载均衡器,并且云提供商将分配外部IP或DNS。这是关于此的文档。

如果您在prem上处于裸机状态,则可以使用melatLB,它提供了LoadBalancer的实现。

除上述之外,您还可以使用Nodeport Type服务来公开服务,使其在kubernetes群集之外可以访问。这是有关如何执行此操作的指南。

使用LoadBalancer类型服务的一个缺点是,对于每项服务,都将提供一个外部负载平衡器,这很昂贵,作为替代,您可以使用入口抽象。入口由许多软件(例如nginx,HAProxy,traefik)实现。

欢迎使用 {小书匠}(xiaoshujiang)编辑器,您可以通过 小书匠主按钮>模板 里的模板管理来改变新建文章的内容。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。