Spring Boot 与 Kubernetes 云原生微服务实践
杨波
前携程 / 拍拍贷技术总监,微服务技术专家
28227 人已学习
新⼈⾸单¥98
课程目录
已完结/共 94 讲
第一章:课程介绍和案例需求 (5讲)
第十章:项⽬复盘、应用和扩展环节 (2讲)
第十一章:附录 Staffjoy 项目源代码解析 (8讲)
时长 14:53
时长 10:29
时长 10:52
时长 05:09
时长 15:06
时长 16:17
Spring Boot 与 Kubernetes 云原生微服务实践
登录|注册
留言
10
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 77 | 将Staffjoy部署到本地Kubernetes环境(上)
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | 课程介绍
02 | 背景说明
03 | 课程目标和主要内容
04 | 课程案例需求
05 | 课程补充说明
06 | 为何采用微服务架构?
07 | 架构设计和技术栈选型
08 | 数据和接口模型设计:账户服务
09 | 数据和接口模型设计:业务服务
10 | Dubbo、Spring Cloud和Kubernetes该如何选型(上)
11 | Dubbo、Spring Cloud和Kubernetes该如何选型(中)
12 | Dubbo、Spring Cloud和Kubernetes该如何选型(下)
13 | 技术中台到底讲什么?
14 | Staffjoy项目结构组织
15 | 谷歌为何采用单体仓库(Mono-Repo)?
16 | 微服务接口参数校验为何重要?
17 | 如何实现统一异常处理?
18 | DTO和DMO为什么要互转?
19 | 如何实现基于Feign的强类型接口?
20 | 为什么框架层就要考虑分环境配置?
21 | 异步处理为何要复制线程上下文信息?
22 | 为你的接口添加Swagger文档
23 | 主流微服务框架概览
24 | 网关和BFF是如何演化出来的(上)
25 | 网关和BFF是如何演化出来的(下)
26 | 网关和反向代理是什么关系?
27 | 网关需要分集群部署吗?
28 | 如何设计一个最简网关?
29 | Faraday网关代码解析(上)
30 | Faraday网关代码解析(下)
31 | 生产级网关需要考虑哪些环节?
32 | 主流开源网关概览
33 | 安全认证架构演进:单块阶段(上)
34 | 安全认证架构演进:单块阶段(下)
35 | 安全认证架构演进:微服务阶段
36 | 基于JWT令牌的安全认证架构
37 | JWT的原理是什么?
38 | JWT有哪两种主要流程?
39 | Staffjoy安全认证架构和SSO
40 | 用户认证代码剖析
41 | 服务调用鉴权代码剖析
42 | 如何设计用户角色鉴权?
43 | Spring Boot微服务测试该如何分类?
44 | 什么是契约驱动测试?
45 | 什么是测试金字塔?
46 | 单元测试案例分析
47 | 集成测试案例分析
48 | 组件测试案例分析
49 | Mock vs Spy
50 | 何谓生产就绪(Production Ready)?
51 | Spring Boot如何实现分环境配置
52 | Apollo vs SpringCloudConfig vs K8s ConfigMap
53 | CAT vs Zipkin vs Skywalking(上)
54 | CAT vs Zipkin vs Skywalking(下)
55 | 结构化日志和业务审计日志
56 | 集中异常监控和Sentry
57 | EFK & Prometheus & Skywalking + Kubernetes 集成架构
58 | 本地开发部署架构和软件需求
59 | 手工服务部署和测试(上)
60 | 手工服务部署和测试(中)
61 | 手工服务部署和测试(下)
62 | SkyWalking调用链监控实验
63 | Docker和Docker Compose简介
64 | 容器镜像构建Dockerfile解析
65 | Docker Compose服务部署文件剖析
66 | 将Staffjoy部署到本地Docker Compose环境(上)
67 | 将Staffjoy部署到本地Docker Compose环境(下)
68 | 到底什么是云原生架构?
69 | Kubernetes背景和架构
70 | Kubernetes有哪些基本概念(上)
71 | Kubernetes有哪些基本概念(下)
72 | 理解Kubernetes节点网络和Pod网络
73 | 深入理解Service和ServiceDiscovery
74 | NodePort vs LoadBalancer vs Ingress
75 | 本地测试Kubernetes部署文件剖析
76 | 本地测试Kubernetes环境搭建
77 | 将Staffjoy部署到本地Kubernetes环境(上)
78 | 将Staffjoy部署到本地Kubernetes环境(下)
79 | 生产环境Kubernetes部署文件剖析
80 | 阿里云Kubernetes环境创建
81 | 将Staffjoy部署到阿里云Kubernetes环境
82 | Kubernetes应用动态配置实验
83 | Kubernetes应用金丝雀发布实验
84 | 阿里云资源释放
85 | 课程复盘
86 | 项目扩展和应用
87 | Account服务
88 | Company服务
89 | Mail、SMS和Bot服务
90 | Faraday服务
91 | WhoAmI服务
92 | WWW服务
93 | 前端应用
94 | 结课测试&结束语
登录 后留言

全部留言(10)

  • 最新
  • 精选
草裡菌
用了目前(20210113)最新的docker-desktop-for-windows与配套的k8s,用源码中的k8s配置在“kubectl apply -f test”时无法正常执行。最终解决方法是将除了mysql-svc的9个配置文件更改了部分,以faraday-svc.yaml为例: apiVersion: apps/v1 kind: Deployment metadata: name: faraday-svc-deployment spec: selector: matchLabels: app: faraday-svc replicas: 1 ... * 更改了apiVersion;增加了spec.selector.matchLabels.app

作者回复: 谢谢你的Fix⛽️

2021-01-14
2
5
是你
老师,我们有个springboot服务接口,只是简单的从redis计数. 这个服务如果直接启动 或者运行在docker容器中, 压测这个服务,都没有什么问题. 但是我们部署到k8s中之后, 压测一段时间,应用就收不到请求了,然后过一段时间又接受请求,然后又卡住,如此反复.导致压测性能非常不理想. 这种请求接受不到,会是什么原因呢

作者回复: 这个光从描述很难讲。有可能压测造成服务器过载,然后服务器响应不过来,或者底层网络过载,开始丢包连不通,也可能OS/容器/K8s系统过载。。。。 建议: 1. 确保测试环境服务器足够强,网络带宽足够,可以考虑用阿里云环境。 2. 请运维对服务器/网络资源/K8s/容器/JVM性能情况进行监控,还有应用最好加上指标和调用链监控,这样可以更清晰排查具体问题。

2020-11-05
庞小辉
老师,用了 k8s 部署服务,是不是 es 和 kibana 都不用了?

作者回复: ES/kibana可以用,可以住在k8s外面,也可以住在k8s里头。 可以参考我在B站上的补充视频《k8s和微服务监控体系》https://www.bilibili.com/video/BV1Qi4y1b79r

2020-04-18
冷吟閑酔
连不上数据库的同学看这里: 记得修改my.conf 配置文件, 并在 bind-address = 127.0.0.1 这一行前面加上#(注释) #bind-address = 127.0.0.1 再重新启动mysqld 就可以成功连接了 如果你使用 macOS , 并且用homebrew 安装的mysql my.conf 会在 /usr/local/etc/ 下

作者回复: 谢谢你提供的热心建议!

2019-12-02
2
rabbit
波波,我所有 k8s 都启动起来,所有的 deployment 中,只有company-svc-deployment和account-svc-deployment启动不来,好像是mysql-svc 访问有问题。可是本地数据库已经加入本机 ip 权限,对应的 mysql-svc配置的 ip 也已经修改了。不知道为什么...

作者回复: 你好,确认mysql-svc.yaml里头的ip地址更新为你的本机ip地址了吗? 如果还不行,一个变通的方法,可以发布两个mysql服务在k8s中(添加两个mysql的发布文件,注意修改config中的连接字符串),这样服务和mysql的容器都跑在k8s中,访问应该没有问题。 关于如何在k8s中以Service形式发布mysql容器,可以查一下网上相关资料很多,也可以参考这里的auth-db/movie-db发布文件:https://github.com/jskillcloud/MovieApp/tree/master/k8s/testing

2019-09-20
2
不是云不飘
波波老师我在执行kubectl apply -f config.yaml报 Error from server (BadRequest): error when creating "config.yaml": ConfigMap in version "v1" cannot be handled as a ConfigMap: v1.ConfigMap.Data: ReadString: expects " or n, but found 1, error found in #10 byte of ...|ASSWORD":123456,"ACC|..., bigger context ...|sion":"v1","data":{"ACCOUNT_DATASOURCE_PASSWORD":123456,"ACCOUNT_DATASOURCE_URL":"jdbc:mysql://mysql|...

作者回复: 你有改config.yaml里头的字符?看看是否引入了特殊字符,可以用kubectl apply --dry-run --validate -f config.yaml校验一下

2019-09-13
3
JefferLiu
mysql在远程互联网上怎么办呢?就是pod访问外网该怎么处理呢?

作者回复: k8s内pod要访问外网的服务,一般都可以采用Service/Endpoints映射方式,具体要看是使用ip还是域名访问,可以参考gcp文档(要翻墙): https://cloud.google.com/blog/products/gcp/kubernetes-best-practices-mapping-external-services

2019-09-06
黄百训
WSL2 ubuntu & minikube , 端口转发需要的格式如下: kubectl -E port-forward {faraday_pod_id} 80:80 否则报错: kubectl port-forward pod/faraday-svc-deployment-7f56896ddf-q5lv7 80:80 Unable to listen on port 80: Listeners failed to create with the following errors: [unable to create listener: Error listen tcp4 127.0.0.1:80: bind: permission denied unable to create listener: Error listen tcp6 [::1]:80: bind: permission denied]
2022-06-18
1
开坦克的贝塔
问一下老师本地mac配置怎么样 内存多大?
2022-04-07
你好,Java
老師應該將mysql也包成鏡像,這樣才能實現一鍵安裝,照這個步驟應該是裝不起來,會讓人生氣
2022-03-03
收起评论