【Day04】Spring Cloud 升华篇:容器化技术docker和kurbernetes
一、介绍
1、要考虑的问题
- 微服务数量有很多
- 中间件的部署-nacos-server sentinel-server
- 如何部署多个服务和中间件?
2、存在问题---机器上直接解压使用
- 资源利用率的问题(CPU 内存 资源)
- 迁移的问题(centos迁移到Ubuntu等其他服务器上,版本不一致)
- 上述问题在单体架构上不会出现,当面对成百上千的服务时,需要频繁考虑迁移
二、docker介绍
1、概述
不同系统上均安装docker,类似不同机器上的JVM
同一个class文件就可以放在不同的平台上执行
2、docker engine、image和container的关系

通过image创建多个container
image可以使用下载的,或者自己创建的image
下载官方的image:hub.docker.com
3、使用
现寻找image,再根据image创建container
下载:docker pull tomcat 【官方镜像】
启动:docker run -d -name tomcatic tomcat

查看ip地址:ip a
查看端口是否被占用:lsof -i 888
端口映射:-d 8081:8080
4、自己的微服务项目 vent.jar
可以正常运行jar包
java -jar vent.jar

怎么做成image?
- 创建Dockerfile文件
- 内容如下

- 生成命令:docker build -t vent . 使用当前路径下的Dockerfile文件

5、使用
查看:docker images
启动:docker run -d --name vent -p 8000:8080 vent

创建另一个container实例:docker run -d --name vent -p 8001:8080 vent
实现了自己的微服务创建image,并得到container
6、使用
当前image只能放到自己的服务上,别人需要
可以将其放到自己的镜像仓库中

7、 将本地仓库推送到命名空间
为镜像重新命名:docker tag pay-service-image http:xxx

打标签

查看所有容器: docker ps -aq
8、问题
很多镜像的访问量很大,某台机器的资源不够时,可以使用多个机器,均安装好docker-engine
资源就可以更加随意的进行分配
docker集群如何进行操作和管理。
9、解决
可以使用扣吧奶忒四

三、Kubernetes
1、介绍

生产级别的容器编排系统
架构图

k8s创建container,实际上是通过pod,而不是直接操作container

pod的创建通过kubelet
2、k8s集群的搭建
地址/工具或解决

各个组件也都是由pod组成的,pod是k8s创建的最小 单元
3、使用Minikube搭建kurbernete集群
Minikube是搭建单机版k8s集群的小工具
单机版集群(本地单节点):master和worker node在同一个机器上
搭建本地的多个节点的k8s集群:使用kubeadm【笔记】
方式:运行minikube start
根据业务需求进行选择
4、使用
kubetcl get pods
查看命名空间


5、通过yaml文件实现对pod的管理
Deployment--使用的controller manager类型


配置的labels
可以对容器打标签:app tomcat

通过匹配关系对pod进行管理
6、k8s使用service对容器进行负载均衡

通过选择器进行选择
7、查看创建的命名空间


查看虚拟ip

docker里面可以成功访问

外部访问
外网ip:NodePort端口,自动做负载

8、其他的yaml示例

外网ip:NodePort端口,自动做负载

负载均衡算法:根据浏览器ip做会话的返回
9、对自己创建的服务运行在k8s集群中
把镜像拿过来


会调度到不同的机器
可以选择不同的负载均衡算法
10、大促场景
之前:运行多台jar包
现在:随意扩容缩容

实际上扩缩容可以自动完成
评判标准:入口流量/根据k8s资源进行
组件:Horizontal可以根据CPU的利用率对组件自动扩缩容
查看暴露的端口

11、dashboard

三、总结
1、之前的问题
解决服务部署和中间件的部署
面对频繁的迁移,私有云到公有云
可以将二者理解为建立在云平台上的服务器

实现了云原生,可以解决频繁的迁移
2、kurbernetes成为云原生基础设施的支撑
HELM是k8s中的yalm,实现方便的管理

service mesh

CICD:持续整合集成
自己编程后,进行push,jenkins会自动建立docker镜像,并push到docker hub,k8s就可以从docker hub上拉取镜像
3、其他工具
K3S:简化组件,没有k8s那么重(轻量级k8s)

【Day04】Spring Cloud 升华篇:容器化技术docker和kurbernetes的更多相关文章
- 新一代Java程序员必学的Docker容器化技术基础篇
Docker概述 **本人博客网站 **IT小神 www.itxiaoshen.com Docker文档官网 Docker是一个用于开发.发布和运行应用程序的开放平台.Docker使您能够将应用程序与 ...
- Spring Cloud第二篇 | 使用并认识Eureka注册中心
本文是Spring Cloud专栏的第二篇文章,了解前一篇文章内容有助于更好的理解本文: Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览 一.Sprin ...
- Spring Cloud第九篇 | 分布式服务跟踪Sleuth
本文是Spring Cloud专栏的第九篇文章,了解前八篇文章内容有助于更好的理解本文: Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览 Spring Cl ...
- Docker容器化技术(下)
Docker容器化技术(下) 一.Dockerfile基础命令 1.1.FROM - 基于基准镜像 FROM centos #制作基准镜像(基于centos) FROM scratch #不依赖任何基 ...
- Docker容器化技术(上)
目录 Docker容器化技术 一.介绍 二.Docker的发展 三.Docker安装 四.阿里云Docker镜像加速 五.Docker的基本概念 六.命令 七.Docker宿主机与容器通信 八.容器内 ...
- 几种常见的微服务架构方案——ZeroC IceGrid、Spring Cloud、基于消息队列、Docker Swarm
微服务架构是当前很热门的一个概念,它不是凭空产生的,是技术发展的必然结果.虽然微服务架构没有公认的技术标准和规范草案,但业界已经有一些很有影响力的开源微服务架构平台,架构师可以根据公司的技术实力并结合 ...
- 【转帖】使用容器化和 Docker 实现 DevOps 的基础知识
使用容器化和 Docker 实现 DevOps 的基础知识 https://www.kubernetes.org.cn/6730.html 2020-02-24 15:20 灵雀云 分类:容器 阅读( ...
- [第八篇]——Docker 容器使用之Spring Cloud直播商城 b2b2c电子商务技术总结
Docker 客户端 docker 客户端非常简单 ,我们可以直接输入 docker 命令来查看到 Docker 客户端的所有命令选项. xxx@xxx:~# docker 可以通过命令 docke ...
- [第九篇]——Docker 镜像使用之Spring Cloud直播商城 b2b2c电子商务技术总结
Docker 镜像使用 当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载. 下面我们来学习: 1.管理 ...
- [第七篇]——Docker Hello World之Spring Cloud直播商城 b2b2c电子商务技术总结
Docker Hello World Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序. 输出Hello world xxx@xxx:~$ do ...
随机推荐
- prometheus告警规则模板:MySQL,nginx,node
rules_up.yml groups: - name: up rules: - alert: mysql expr: up{instance="db1",job="my ...
- frpc穿透报错 日志显示 http: proxy error: no such domain 解决办法
问题出在客户端的设置上,比如你的frps服务器IP为114.114.114.114,设置的vhost_http_port端口为 8080,在客户端设置的是域名fk.abc.com 指向frps所在服务 ...
- MHA架构的实现方式
转载自:https://www.linuxprobe.com/centos7-mha-mysql5.html 安装mysql5.7,并配置好主从复制 第一:安装mysql57,并关闭防火墙 yum i ...
- 银河麒麟安装node,mysql,forever环境
这就是国产银河系统的界面,测试版本是麒麟V10 链接: https://pan.baidu.com/s/1_-ICBkgSZPKvmcdy1nVxVg 提取码: xhep 一.传输文件 cd /hom ...
- 定制开发 ERP 的优势有哪些?
定制开发ERP对企业而言是把双刃剑,成败难以把握.定制开发ERP理论上来讲是最贴合企业业务需求的,因为它是按企业需求定制,看上去似乎没什么毛病,但ERP是专业性极强的业务逻辑极其复杂的软件系统,有两个 ...
- 「Chroot环境」Debian Testing amd64 on arm64
这个是适用于ARM64环境的AMD64 Debian Testing系统.基于FEX转译.这个系统运行在ARM64的手机和电脑上,运行的软件是AMD64(X64)格式.下载链接提供桌面版和基础版.适用 ...
- OpenDataV低代码平台增加自定义属性编辑
上一篇我们讲到了怎么在OpenDataV中添加自己的组件,为了让大家更快的上手我们的平台,这一次针对自定义属性编辑,我们再来加一篇说明.我们先来看一下OpenDataV中的属性编辑功能. 当我们拖动一 ...
- python实验报告(第五周)
一.实验目的和要求 学会使用字符串的常用操作方法和正确应用正则表达式. 二.实验环境 软件版本:Python 3.10 64_bit 三.实验过程 1.实例1:使用字符串拼接输出一个关于程序员的笑话 ...
- PHP全栈开发(八):CSS Ⅳ 文本格式及字体
文本系列属性主要是设置文本格式的,例如.... 颜色 body {color:red;} h1 {color:#00ff00;} p.ex {color:rgb(0,0,255); 可以设置文本的居中 ...
- P4556 [Vani有约会]雨天的尾巴 /【模板】线段树合并 (树上差分+线段树合并)
显然的树上差分问题,最后要我们求每个点数量最多的物品,考虑对每个点建议线段树,查询子树时将线段树合并可以得到答案. 用动态开点的方式建立线段树,注意离散化. 1 #include<bits/st ...