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 云原生微服务实践
登录|注册
留言
8
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 78 | 将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 | 结课测试&结束语
登录 后留言

全部留言(8)

  • 最新
  • 精选
James 王政
请问 node port 30001 -> 80 和端口转发的 80 -> 80 关系是什么呢, 好像没看到 30001 端口哪里有用到。

作者回复: node port要求必须在30000以上(不能用80),30001->80可以访问,但是会被faraday挡掉,返回unsupported domain,因为staffjoy应用是要求域名+80才能正常访问的。 为了能够用80去访问staffjoy,所以我们再单独给faraday做了一个端口映射 80 -> 80,这样就可以用域名+80正常访问staffjoy了。 课程中我们虽然打开了node port 30001 -> 80映射,但只是对node port的一个演示,实际演示staffjoy应用,我们用的是80 -> 80的端口转发方式。

2019-08-27
2
5
瓜瓜
kubectl apply -f test的时候,报这个错误是什么意思,该怎么解决 service/account-service unchanged service/app-service unchanged service/bot-service unchanged service/company-service unchanged service/email-service unchanged service/faraday-service unchanged service/myaccount-service unchanged service/mysql-svc unchanged service/whoami-service unchanged service/www-service unchanged [unable to recognize "test\\account-svc.yaml": no matches for kind "Deployment" in version "extensions/v1beta1", unable to recognize "test\\app-spa.yaml": no matches for kind "Deployment" in version "extensions/v1beta1", unable to recognize "test\\bot-svc.yaml": no matches for kind "Deployment" in version "extensions/v1beta1", unable to recognize "test\\company-svc.yaml": no matches for kind "Deployment" in version "extensions/v1beta1", unable to recognize "test\\email-svc.yaml": no matches for kind "Deployment" in version "extensions/v1beta1", unable to recognize "test\\faraday-svc.yaml": no matches for kind "Deployment" in version "extensions/v1beta1", unable to recognize "test\\myaccount-spa.yaml": no matches for kind "Deployment" in version "extensions/v1beta1", unable to recognize "test\\whoami-svc.yaml": no matches for kind "Deployment" in version "extensions/v1beta1", unable to recognize "test\\www-web.yaml": no matches for kind "Deployment" in version "extensions/v1beta1"] Error from server (Invalid): error when creating "test\\mysql-svc.yaml": Endpoints "mysql-svc" is invalid: subsets[0].addresses[0].ip: Invalid value: "127.0.0.1": may not be in the loopback range (127.0.0.0/8)

作者回复: 你用的是新版的k8s,发布文件需要做一些调整,apiVersion需要从extensions/v1beta1 调整为 apps/v1,另外发布文件spec部分还要添加相应的selector,细节请参考我在B站上的视频: https://www.bilibili.com/video/BV1Ja4y1x748?p=7 另外上面还有一个错误提示,mysql-svc中的ip地址必须是本机的真实ip地址,不能用127.0.0.1,这样k8s内的容器才能访问这个ip地址。

2020-12-18
2
json huang
波波老师,您好,访问http://www.staffjoy-v2.local/时报Caused by: org.apache.http.conn.HttpHostConnectException: Connect to www-service:80 [www-service/10.108.178.127] failed: Connection refused (Connection refused) at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:159) at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:373) at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:394) at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:237) at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185) www-service服务也是正常启动,是否跟配置有关呢?谢谢 NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE account-service ClusterIP 10.97.249.236 <none> 80/TCP 2d2h app-service ClusterIP 10.111.60.205 <none> 80/TCP 2d2h bot-service ClusterIP 10.107.240.129 <none> 80/TCP 2d2h company-service ClusterIP 10.100.242.5 <none> 80/TCP 2d2h email-service ClusterIP 10.101.169.176 <none> 80/TCP 2d2h faraday-service NodePort 10.96.194.213 <none> 80:30001/TCP 2d2h kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 2d2h myaccount-service ClusterIP 10.101.67.246 <none> 80/TCP 2d2h mysql-svc ClusterIP 10.106.215.144 <none> 3306/TCP 2d2h whoami-service ClusterIP 10.100.138.182 <none> 80/TCP 2d2h www-service ClusterIP 10.108.178.127 <none> 80/TCP 2d2h

作者回复: 建议先通过k8s dashboard看下每个service(尤其是www-service)的pod的日志,看是否有启动异常。

2021-04-01
1
Geek_1f19ec
老师有个问题请教一下: 这种springBoot + k8s 的方式开发微服务,多服务之间调用比如 A调用B B调用C 等 本地开发的时候 如何调试啊? 传统的springCloud系列,我们可以在本地启注册中心/网关等,然后自己注册到本机去调试 这种springBoot + k8s 如何调试,本地也访问不了k8s内部的吧 单独的某一个服务调试还好,毕竟只是一个单点项目,自己运行起来就好了,多个服务联调的呢 老师有没有什么好的方案啊

作者回复: 本课的58~61节有介绍如何在本地开发环境中手动部署Staffjoy微服务。 Staffjoy的每个微服务支持多种环境(dev/test/uat/prod)的部署,其中appliction-dev.yml是对应本地开发环境部署的配置文件,其中依赖的微服务都直接用localhost+端口方式去连,不需要注册中心的,网关的话Staffjoy直接集成可编程网关Faraday。 所以,建议你的微服务应用也要设计一套和Staffjoy类似的,可以针对不同环境进行部署的不同的配置。

2021-02-24
1
龙彦极客
波波老师你好! 我用mac docker-desktop部署了微服务后, kubectl log -f {podname} 为什么有些pod的日志只显示了一点点。 应用功能是没有问题的。

作者回复: docker-desktop严格讲并不是一个完整的k8s,日志可能会丢失,具体要看机器的资源配置情况,建议用k8s dashboard看,有条件可以尝试在正式的k8s或者阿里云k8s中查看。

2020-11-07
2
1
Sam.张朝
[chaozhang@fedora test]$ sudo kubectl port-forward faraday-svc-deployment-597569cc98-t7pmr 80:80 [sudo] password for chaozhang: The connection to the server localhost:8080 was refused - did you specify the right host or port? 不断遇到问题,哈哈
2022-10-13
平头哥
波波老师,我部署以后收不到邮件,该怎么调整
2022-03-02
Hsq
请问一下老师,我的环境是在ubuntu主机上开了三台centos虚拟机(master,node01,node02)。但是运行kubectl port-forward faraday-svc-deployment-b669bd748-f9zzb 80:80后,switchhost是在ubuntu主机上配置域名?还是在虚拟机上配置127.0.0.1 staffjoy-local ...?。并且我在ubuntu/虚拟机上用curl 127.0.0.1/curl {虚拟机物理地址}都显示拒绝访问。请问一下波波老师这个是什么问题呀。
2021-11-17
收起评论