尼恩技术圣经+高并发系列,帮你 实现技术自由,完成职业升级, 薪酬猛涨!

40岁老架构师尼恩 温馨提示:

现在拿到offer超级难,甚至连面试电话,一个都搞不到。

尼恩的技术社群中(50+),很多小伙伴凭借 “左手云原生+右手大数据 +SpringCloud Alibaba 微服务“三大绝活,拿到了offer,并且是非常优质的offer,据说年终奖都足足18个月 ,非常令人羡慕。

问题是:“左手云原生+右手大数据 +SpringCloud Alibaba 微服务“ 内容非常多,实操的环境非常复杂,底层原理很深

饭要一口一口的吃,不能急。在这里,尼恩从架构师视角出发,左手云原生+右手大数据 +SpringCloud Alibaba 微服务 核心原理做一个宏观的介绍。

尼恩 高并发三部曲

免费赠送 :《尼恩Java面试宝典》 持续更新+ 史上最全 + 面试必备 2000页+ 面试必备 + 大厂必备 +涨薪必备
免费赠送 经典图书:《Java高并发核心编程(卷1)加强版》 面试必备 + 大厂必备 +涨薪必备 加尼恩免费领
免费赠送 经典图书:《Java高并发核心编程(卷2)加强版》 面试必备 + 大厂必备 +涨薪必备 加尼恩免费领
免费赠送 经典图书:《Java高并发核心编程(卷3)加强版》 面试必备 + 大厂必备 +涨薪必备 加尼恩免费领
免费赠送 经典图书:尼恩Java面试宝典面试必备 + 大厂必备 +涨薪必备 加尼恩免费领
免费赠送 资源宝库: Java 必备 百度网盘资源大合集 价值>10000元 加尼恩领取

尼恩 技术圣经 系列

由于内容确实太多, 所以写多个pdf 电子书:

(1) Docker 学习圣经 》PDF (V1已经完成)

(2) SpringCloud Alibaba 微服务 学习圣经 》PDF (V2已经完成)

(3) K8S 学习圣经 》PDF (V1已经完成)

(4) 《 flink + hbase 学习圣经 》PDF (planning ......)

以上学习圣经,并且后续会持续升级,从V1版本一直迭代发布。 就像咱们的《尼恩 Java 面试宝典》一样, 已经迭代到V60+啦。

40岁老架构师尼恩的掏心窝: 通过一系列的学习圣经,带大家穿透“左手云原生+右手大数据 +SpringCloud Alibaba 微服务“ ,实现技术 自由 ,走向颠覆人生,让大家不迷路。

以上学习圣经的 基础知识是 尼恩的 高并发三部曲,建议在看 学习圣经之前,一定把尼恩的 Java高并发三部曲过一遍,切记,切记。

注:本文以 PDF 持续更新,最新尼恩 架构笔记、面试题 的PDF文件,请从这里获取:语雀或者码云

(1) 《 Docker 学习圣经 》PDF

Docker圣经:大白话说Docker底层原理,6W字 实现Docker自由

免费领取方式:请在《技术自由圈》公众号发送“领电子书”

《 Docker 学习圣经 》封面

《 Docker 学习圣经 》目录

  • 说在前面:
  • 《 Docker 学习圣经 》PDF 封面
  • Docker基础
  • Docker 巨大的价值
    • Docker 的本质:
    • Docker的广泛应用场景:
    • Docker的在DevOps(开发、运维)场景的应用
    • Docker 的历史
  • Docker 的入门知识
    • Docker Engine
    • Docker Platform
    • 到底什么是docker:
    • 什么是容器?
    • docker基本组成
    • Docker 与虚拟机有何区别
    • docker和kvm都是虚拟化技术,它们的主要差别:
    • 与传统VM特性对比:
    • docker 与操作系统比较
  • Docker 的安装
    • 环境准备
    • docker安装的三种方式
    • 方式一 :离线安装docker
    • 方式二 :在线安装docker
    • 方式三 :用现成的 (大大的省事)
  • Docker Container概述
    • 什么是Container 容器
    • 容器与镜像的关系
  • Docker本地容器相关的操作
    • Container相关命令
    • 创建容器
    • 查看活跃容器 docker ps
    • 查看全部容器
    • 停止容器
    • 删除容器
    • 查看容器的进程信息
    • 如何查找容器名称?
  • docker最为常用的几个命令
    • docker的守护进程查看
    • docker 镜像查看
    • docker 容器查看
    • Docker Registry配置和查看
  • null
  • Docker容器进入的4种方式
    • 方式1:使用docker attach进入Docker容器
    • 方式2:使用SSH进入Docker容器
    • 方式3:使用nsenter进入Docker容器
      • 1 什么是nsenter?
      • 2、nsenter安装
      • 3、nsenter的 使用
      • docker隔离应用应用涉及到的六大名称空间
        • 1、pid 命名空间(进程ID)
        • 2、net 命名空间(网络)
        • 3、ipc 命名空间(进程间通信)
        • 4、mnt 命名空间(挂载文件系统)
        • 5、UTS 命名空间(主机名/域名)
        • 6、user 命名空间(用户)
    • nsenter查看docker的连接
    • 方式4:使用docker exec进入Docker容器
    • 在容器内部和宿主机中查看容器中的进程信息
      • 查看其父进程信息
      • 查看子进程信息
      • 总计三个命令
  • Docker本地镜像载入与载出
    • 两种办法
    • 拉取镜像
    • 保存镜像
    • 载入镜像
    • 打个tag
    • 保存镜像
    • 载入镜像
  • Harbor私有镜像仓库
    • Harbor安装
      • 1 下载 Harbor的压缩包;
      • 2 上传压缩包到虚拟机,并解压;
      • 3 创建harbor访问域名证书
      • 4 配置harbor
      • 5 ./prepare 准备
      • 6 ./install.sh
      • 访问
      • 7 停止或者重启 Harbor
    • 修改docker配置文件,使docker支持harbor
    • Harbor使用
      • 什么是含有SAN的证书
    • SSL证书格式
    • 生成含有SAN的证书
      • 1.生成CA证书私钥。
      • 2、生成CA证书
      • 3、生成服务器证书
      • 生成证书签名请求(CSR)
      • 4、使用该v3.ext文件为Harbor主机生成证书cdh1.crt
      • 5、转换cdh1.crt为cdh1.cert,供Docker使用
      • 6 运行prepare脚本以启用HTTPS
      • 7 运行install.sh脚本来启动harbor
      • 证书复制到 docker 并且启动后登录
    • hostname push失败
      • 以下为解决方法:
    • 推送镜像到Harber
    • Docker 推送命令
    • 需要生成证书
    • 推送成功
  • Docker Image概述
    • 什么是Image
    • Image的获取
    • 如何做一个自己的Base Image
  • 构建自己的Docker镜像
    • Dockerfile语法
    • 镜像发布
  • Docker进程与宿主机进程的对应关系
      • Linux通过进程ID查看文件路径
      • 容器的PID namespace(命名空间)
        • 找出容器ID
      • 查看容器信息
      • 进入相应目录
      • 查看容器目录里的进程号
      • 启动一个进程
      • 查看容器目录里的进程号
    • docker daemon (docker守护进程)
    • Docker文件目录和容器内部操作
  • Docker Daemon 底层原理
    • 演进:Docker守护进程启动
    • OCI(Open Container Initiative)
      • image spec
      • runtime spec
    • Docker CLI客户端工具
    • Docker Daemon守护进程 (dockerd)
    • Containerd
    • docker-shim 容器进程
    • runc (OCI reference implementation)
    • Docker、containerd, containerd-shim和runc之间的关系
    • 通过runc来启动一个container的过程
      • 查看进程信息
      • 查看父进程信息
      • 查看进程树
    • CRI 运行时接口
  • Docker的技术底座:
    • 底层技术支持
  • UnionFS 联合文件系统
    • 什么是镜像
    • UnionFS 与AUFS
    • 什么是 Docker 镜像分层机制?
    • Docker Image 如何而来呢?
  • Namespaces
    • 进程隔离
    • 网络隔离
    • Libnetwork
    • Chroot
  • CGroups物理资源限制分组
  • 总之:dockers=LXC+AUFS
  • 深入解读docker网络
    • docker网络理论部分
    • Docker网络模式
      • bridge模式
      • host模式
      • Container网络模式
      • none模式
      • overlay 网络模式
      • macvlan 网络模式
    • 网络实操
      • bridge网络
      • docker0详解
      • 多容器之间通讯
      • link容器
        • 新建bridge网络
        • 把一个运行中容器连接到lagou-bridge网络
      • none网络
      • host网络
    • 网络命令汇总
      • 查看网络
      • 创建网络
      • 网络删除
      • 查看网络详细信息
      • 使用网络
      • 网络连接与断开
  • Docker-Compose 简介
    • Docker-Compose 用来实现Docker容器快速编排
      • Docker-compose模板文件简介
      • eg:
      • Docker-Compose 的编排处出来的部署架构
  • docker-compose 快速编排
    • Docker-Compose 的编排结构
    • YAML模板文件语法
    • docker-compose.yml 语法说明
      • 1、image
      • 2、build
      • 3、command
      • 4、links
      • 5、external_links
      • 6、ports
      • 7、expose
      • 8、volumes
      • 9、volunes_from
      • 10、environment
      • 11、env_file
      • 12、extends
      • 13、net
      • 14、pid
      • 15、dns
      • 16、cap_add,cap_drop
      • 17、dns_search
      • 18、healthcheck
      • 19、depends_on
      • 20、deploy
    • docker-compose.yml实例
    • YAML 文件格式 及 编写注意事项
    • Docker-compose常用命令
      • 1、Docker-Compose
      • 2、docker-compose up
      • 3、docker-compose ps
      • 4、docker-compose stop
      • 5、docker-compose -h
      • 6、docker-compose down
      • 7、docker-compose logs
      • 8、docker-compose build
      • 9、docker-compose pull
      • 10、docker-compose restart
      • 11、docker-compose rm
      • 12、docker-compose start
      • 13、docker-compose run
      • 14、docker-compose scale
      • 15、docker-compose pause
      • 16、docker-compose kill
      • 17、dokcer-compose config
      • 18、docker-compose create
      • 19、docker-compose exec
      • 20、docker-compose port
      • 21、docker-compose push
      • 22、docker-compose unpause
      • 23、docker-compose version
    • docker-compose logs 查看日志
      • 全屏滚到底部结束
      • 全屏滚到底部并继续持续输出日志
      • 全屏滚到底部并继续持续输出日志并显示时间戳
      • 全屏滚到底部显示最后N行并继续持续输出日志并显示时间戳
  • 说在后面
  • 参考资料

(2)《 SpringCloud Alibaba 微服务 学习圣经 》PDF

SpringCloud Alibaba 学习圣经,10万字 实现 SpringCloud 自由

免费领取方式:请在《技术自由圈》公众号发送“领电子书”

《 SpringCloud Alibaba 微服务 学习圣经 》封面

《 SpringCloud Alibaba 微服务 学习圣经 》目录

  • 40岁老架构师尼恩的掏心窝:
  • 《 SpringCloud Alibaba 微服务 学习圣经 》PDF 封面
  • 《 SpringCloud Alibaba 微服务 学习圣经 》目录
  • 当前版本V1
  • 一键导入 SpringCloud 开发环境 (地表最强)
    • 环境准备
    • 一键导入OR自己折腾
    • 随书源码 crazy-springcloud 脚手架涉以及基础中间件
  • 微服务 分布式系统的架构12次演进
    • 微服务 分布式系统的几个基础概念
    • 架构演进1:单机架构
    • 架构演进2:引入缓存架构
    • 架构演进3:接入层引入反向代理实现负载均衡
    • 架构演进4:数据库读写分离
    • 架构演进5:数据库按业务分库
    • 架构演进6:使用LVS或F5接入层负载均衡
    • 架构演进7:通过DNS轮询实现机房间的负载均衡
    • 架构演进8:引入NoSQL数据库和搜索引擎等技术
    • 架构演进9:大应用拆分为微服务
    • 架构演进10:引入企业服务总线ESB对微服务进行编排
    • 架构演进11:引入容器化技术实现动态扩容和缩容
    • 架构演进12:以云平台承载系统
    • 架构演进的涉及的核心知识
  • SpringCloud netflix 入门
    • SpringCloud 开发脚手架
    • 启动Eureka Server 注册中心
    • 启动Config 配置中心
      • config-server 服务
    • 微服务入门案例
    • uaa-provider 微服务提供者
      • uaa-provider 实现一个Rest接口
      • uaa-provider的运行结果
    • demo-provider 完成RPC远程调用
      • REST服务的本地代理接口
      • 通过REST服务的本地代理接口,进行RPC调用
      • 启动demo-provider
      • 通过swagger 执行RPC操作
  • SpringCloud Eureka 服务注册
  • SpringCloud Config 统一配置
  • Nacos 服务注册+ 统一配置
    • 1、Nacos 优势
      • 1.1 与eureka对比
      • 1.2 与springcloud config 对比
        • 三大优势:
    • 2、Spring Cloud Alibaba 套件
      • Spring Cloud Alibaba 套件和Spring Cloud Netflix套件类比
    • 3、Nacos 的架构和安装
      • 3.1 Nacos 的架构
      • 3.2 Nacos Server 的下载和安装
    • 4、Nacos Server 的运行
      • 4.1两种模式
      • 4.2 standalone 模式
      • 4.3 cluster 模式
        • cluster 模式需要依赖 MySQL,然后改两个配置文件:
      • 4.4 Nacos Server 的配置数据是存在哪里呢?
    • 5、实战1:使用Nacos作为注册中心
      • 实战的工程
      • 5.1 如何使用Nacos Client组件
        • 首先引入 Spring Cloud Alibaba 的 BOM
      • 5.2 演示的模块结构
      • 5.3 provider 微服务
        • step1:在 provider 和 consumer 的 pom 添加以下依赖:
        • step2:启动类
        • step3:服务提供者的 Rest 服务接口
        • step4:配置文件
        • step5:启动之后,通过swagger UI访问:
      • 5.4 Consumer 微服务演示RPC远程调用
        • 消费者的controller 类
        • 消费者配置文件
        • 通过swagger UI访问消费者:
      • 5.5涉及到的演示地址:
      • 5.6 Nacos Console
    • 6、实战2:使用Nacos作为配置中心
      • 6.1 基本概念
        • 1)Profile
        • 2)Data ID
        • 3)Group
      • 6.2 通过Nacos的console 去增加配置
        • 1)nacos-config-demo-dev.yaml
        • 2)nacos-config-demo-sit.yaml
      • 6.3 使用Nacos Config Client组件
        • 1)加载nacos config 的客户端依赖:
        • 启动类
        • 控制类:
        • 2)bootstrap配置文件
      • 6.4 测试结果
      • 6.4 可以端如何与服务端的配置文件相互对应
    • 7、配置的隔离
    • 8、nacos集群搭建
      • IP规划
      • 集群的使用
  • Nacos 高可用架构与实操
    • 客户端高可用
      • 客户端高可用的方式一:配置多个nacos-server
      • Nacos Java Client通用参数
      • 客户端高可用的方式二:本地缓存文件 Failover 机制
        • 本地缓存文件 Failover 机制
        • 客户端Naming通用参数
    • Nacos两种健康检查模式
      • agent上报模式
      • 服务端主动检测
      • 临时实例
        • 注册实例支持ephemeral字段
        • 临时实例和持久化实例区别
    • Nacos Server运行模式
      • Nacos CP/AP模式设定
      • Nacos CP/AP模式切换
    • AP/CP的配套一致性协议
      • AP模式下的distro 协议
      • CP模式下的raft协议
    • 集群内部的特殊的心跳同步服务
    • 集群部署模式高可用
      • 节点数量
      • 多可用区部署
      • 部署模式
      • 高可用nacos的部署架构
      • 高可用nacos的部署实操
    • 总结
  • SpringCloud Feign 实现RPC 远程调用
  • SpringCloud + Dubbo 实现RPC 远程调用
    • 大背景:全链路异步化的大趋势来了
    • SpringCloud + Dubbo 完成 RPC 异步
    • Dubbo3应用的宏观架构
    • Dubbo3 应用架构的核心组件
    • SpringBoot整合Dubbo3.0基础准备
    • SpringCloud+Nacos+Dubbo3.0
      • 版本说明
      • 项目结构介绍
        • 1、dubbo的依赖的坐标
        • 2、 注册中心的依赖的坐标
      • SpringBoot整合Dubbo3.0大致步骤
      • 模块结构
      • Dubbo微服务注册发现的相关配置
      • 命名空间隔离
    • 微服务yml配置
    • common-service 模块
    • 服务提供者实操:dubbo-provider 服务
      • pom依赖
      • 服务实现类
      • dubbo和Feign的一个不同
      • Provider的Dubbo+Nacos配置文件
      • 启动类 加上@EnableDubbo 注解
      • 启动、体验Provider
      • 在Nacos查看Dubbo服务的注册情况
    • 服务消费者实操:dubbo-consumer 服务
    • consumer模块
      • 消费者实现类
      • 消费者Dubbo+Nacos配置文件
      • 启动类 加上@EnableDubbo 注解
      • 启动、体验 Consumer
      • 在Nacos查看Dubbo服务的注册情况
    • Feign+Dubbo性能的对比测试
      • Dubbo比Feign高10倍以上的本质
      • Dubbo 与 SpringCloud 的通信 Openfeign的区别
        • 1、协议支持方面
        • 2、通信性能方面
        • 3、线程模型方面
    • SpringCloud + Dubbo RPC 的集成价值
  • hystrix 服务保护
  • Sentinel 服务保护
    • sentinel 基本概念
    • 1、什么是Sentinel:
      • Sentinel 具有以下特征:
      • Sentinel主要特性:
      • Sentinel 的使用
      • Sentinel中的管理控制台
        • 1 获取 Sentinel 控制台
        • 2 sentinel服务启动
      • 客户端能接入控制台
      • Sentinel与Hystrix的区别
    • 2、使用 Sentinel 来进行熔断与限流
      • 1)定义资源
        • 资源注解@SentinelResource
        • @SentinelResource 注解
          • fallback 函数签名和位置要求:
          • defaultFallback 函数签名要求:
      • 2)定义规则
    • 3、sentinel 熔断降级
      • 1)什么是熔断降级
      • 2)熔断降级规则
      • 3)几种降级策略
      • 4)熔断降级代码实现
      • 5)控制台降级规则
      • 6)与Hystrix的熔断对比:
    • 4、Sentinel 流控(限流)
      • 基本的参数
      • 流控的几种 strategy:
      • 4.1 直接失败模式
        • 使用API进行资源定义
        • 代码限流规则
        • 网页限流规则配置
        • 测试
      • 4.2 关联模式
        • 使用注解进行资源定义
        • 代码配置关联限流规则
        • 网页限流规则配置
        • 测试
      • 4.3 Warm up(预热)模式
        • 使用注解定义资源
        • 代码限流规则
        • 网页限流规则配置
        • 通过jmeter进行测试
      • 4.4 排队等待模式
        • 示例
        • 使用注解定义资源
        • 代码限流规则
        • 网页限流规则配置
        • 通过jmeter进行测试
      • 4.5 热点规则 (ParamFlowRule)
        • 自定义资源
        • 限流规则代码:
        • 网页限流规则配置
    • 5、Sentinel 系统保护
      • 系统保护的目的
      • 系统保护规则的应用
      • 网页限流规则配置
    • 6、黑白名单规则
      • 访问控制规则 (AuthorityRule)
    • 7、如何定义资源
      • 方式一:主流框架的默认适配
      • 方式二:抛出异常的方式定义资源
      • 方式三:返回布尔值方式定义资源
      • 方式四:注解方式定义资源
      • 方式五:异步调用支持
    • 8、核心组件
      • Resource
      • Context
        • Context的创建与销毁
      • Entry
      • DefaultNode
      • StatisticNode
    • 9、插槽Slot
      • NodeSelectorSlot
      • 调用链树
      • 构造树干
        • 创建context
        • 创建Entry
        • 退出Entry
      • 构造叶子节点
        • 保存子节点
      • ClusterBuilderSlot
      • StatistcSlot
      • SystemSlot
      • AuthoritySlot
      • FlowSlot
      • DegradeSlot
      • DefaultProcessorSlotChain
      • slot总结
    • 10、sentinel滑动窗口实现原理
      • 1)基本原理
      • 2)sentinel使用滑动窗口都统计啥
      • 3)滑动窗口源码实现
        • 3.1)MetricBucket
        • 3.2)WindowWrap
        • 3.3)LeapArray
  • Zuul 微服务网关
  • Webflux 响应式编程
    • WebFlux 学习前言
    • WebFlux 增删改查完整实战 demo
      • Dao层 (又称 repository 层)
      • entity(又称 PO对象)
      • Dao 实现类
      • Service服务层
      • Controller控制层
      • Mono
      • Flux
    • 使用配置模式进行WebFlux 接口开发
    • 处理器类 Handler
    • 路由配置
    • WebFlux集成Swagger
      • maven依赖
      • swagger 配置
    • WebFlux 测试
      • 配置模式的 WebFlux Rest接口测试
      • 注解模式的WebFlux Rest接口测试
      • swagger 增加界面
    • 配置大全
      • 静态资源配置
      • WebFluxSecurity配置
      • WebSession配置
      • 文件上传配置
    • WebFlux 执行流程
    • WebFlux学习提示
  • Spring Cloud Gateway 微服务网关
    • 1、SpringCloud Gateway 简介
      • 1.1 本文姊妹篇 《Flux 和 Mono 、reactor实战 (史上最全)》
      • 1.2 SpringCloud Gateway 特征
      • 1.3 SpringCloud Gateway和架构
        • 1)SpringCloud Zuul的IO模型
        • 2)Webflux 服务器
        • 3)Spring Cloud Gateway的处理流程
    • 2、路由配置方式
      • 2.1 基础URI路由配置方式
      • 2.2 基于代码的路由配置方式
      • 2.3 和注册中心相结合的路由配置方式
    • 3、路由 匹配规则
      • 说明:
      • 3.1 Predicate 断言条件(转发规则)介绍
        • 1)通过请求参数匹配
        • 2)通过 Header 属性匹配
        • 3)通过 Cookie 匹配
        • 4)通过 Host 匹配
        • 5)通过请求方式匹配
        • 6)通过请求路径匹配
        • 7)通过请求 ip 地址进行匹配
        • 8)组合使用
      • 3.2 过滤器规则(Filter)
        • 过滤器规则(Filter)
        • PrefixPath
        • RedirectTo
        • RemoveRequestHeader
      • RemoveResponseHeader
        • RemoveRequestParameter
        • RewritePath
        • SetPath
        • SetRequestHeader
        • SetStatus
        • StripPrefix
        • RequestSize
        • Default-filters
      • 3.3 通过代码进行配置
      • 3.2 实现熔断降级
    • 4、高级配置
      • 4.1 分布式限流
      • 4.2 健康检查配置
        • maven依赖
        • 配置文件
      • 4.3 统一配置跨域请求:
    • 5、整合Nacos
      • maven依赖
      • 服务发现配置:从Nacos获取微服务提供者清单
      • nacos实现动态配置
      • 服务发现路由predicates和filters的自定义定义
      • 为注册中心路由配置断言和过滤器
    • 6、整合Swagger聚合微服务系统API文档
      • maven依赖
      • 配置文件
      • 效果:
    • 7、Gatway 网关的过滤器开发
      • 7.1 过滤器的执行次序
      • 7.2定义全局过滤器
      • 7.3定义局部过滤器
    • 8、整合Sentinel完成流控和降级
      • maven依赖
      • 配置文件
      • 限流规则通用配置
      • 限流规则设置
      • 网关限流参数
  • SpringBoot Admin 进行微服务实例的监控
    • 使用SpringBoot Admin 进行日志的记录
    • 1、SpringBoot Admin 简介
    • 2、使用 SpringBoot Admin 监控服务
      • 2.1 导入依赖
      • 2.2 配置yml
      • 2.3 集成spring security
      • 2.4 启动器类
      • 2.5、测试
    • 3、actuator 启用和暴露端点
      • 3.1 启用端点
      • 3.2 暴露端点
    • 4、微服务Provider改造
      • 4.1 导入依赖
      • 4.2 配置yml
      • 使用context-path
      • 加上spring security密码
    • 5、admin实现在线日志查看
      • 5.1、添加jar包
      • 5.2 在application.yml平级文件夹中添加logback-spring.xml配置文件
      • 5.3 log.path 如何使用环境变量呢?
      • 5.4 actuator的配置
    • 测试结果
      • 1.不暴露端点 测试
      • 2.正常情况
    • 6、admin与Nacos(或Eureka)结合的好处
  • ELK日志平台(elasticsearch +logstash+kibana)原理和实操
    • ELK的关系
      • ELK优点
      • 简单的ELK日志平台
      • ELK改进之引入Filebeat
      • ELK的应用场景
      • ELK的不足
        • es的资源占用
    • Elasticsearch概述
    • logstash概述
      • logstash作用:
      • logstash的架构:
        • Input(输入):
        • Filter(过滤器)
        • Output(输出):
      • Logstash的角色与不足
    • filebeat介绍
      • filebeat和beats的关系
      • Filebeat是如何工作的
      • Filebeat下载页面
      • Filebeat文件夹结构
        • Filebeat启动命令
      • 配置inputs
        • Log input
      • 配置项
        • 管理多行消息
      • 配置Logstash output
    • 一键安装 es+logstash+ kibana
      • 对应的镜像版本
      • docker编码文件
      • 访问kibana
    • 读取filebeat-输出到es集群
    • 在kibana显示的效果
    • 使用filebeat发送日志
      • 制作filebeat镜像
      • 制作基础的unbantu镜像
      • 推送镜像到dockerhub
      • 制作filebeat镜像
        • dockerfile
      • 推送镜像到dockerhub
    • example-application微服务的filebeat配置:
      • filebeat.yml的参考配置:
    • input.yml配置:
    • 修改dockerfile
    • 一键发布
    • 启动之后
    • message-dispatcher微服务的日志
      • 查看日志索引
    • logstash 详解
      • stash第一个事件
        • Logstash的核心流程的三个环节
      • logstash数值类型
      • logstash 条件判断
      • logstash 比较运算符
      • 数据输入环节
      • stdin
      • file
      • syslogs
      • beats
      • kafka
    • 数据处理环节
      • grok解析文本并构造
      • date日期解析
      • mutate字段转换
    • covert类型转换
      • split
      • merge
      • rename
      • remove_field:移除字段
      • join
      • geoip
      • ruby
      • urldecode
      • kv
      • useragent
    • 数据输出
      • stdout
      • file
      • kafka
      • elasticseach
    • Kibana查看应用日志
      • 1 查看应用日志
      • 2 如何搜索日志
      • 3 如何查看指定时间的应用日志
      • 4 如何定位错误日志
      • 5 如何展开显示日志
    • es的安全认证
    • 配置 elk的ElastAlert 预警插件
  • Prometheus+Grafana 检测预警
    • 什么是性能可观测
      • 系统监控的核心指标
        • 系统性能指标
        • 资源性能指标
    • 什么是prometheus
      • prometheus的运行原理
      • prometheus主要特点
    • 什么是 Grafana
    • Prometheus的体系结构
    • Prometheus+Grafana分层架构
      • Promcthcus体系涉及的组件
      • 如何收集度量值
    • 指标类型
      • 计数器
      • 仪表盘
      • 直方图
      • Summary
    • 指标摘要及聚合
      • 指标摘要
      • 指标聚合
    • 一键安装 prometheus
      • bridge网络管理
      • 创建库
      • docker编排文件
      • 一键安装 prometheus的脚本
      • 进入 prometheus
      • 进入 grafana
    • Prometheus+Grafana监控SpringBoot项目JVM信息
      • SpringBoot项目配置JVM采集
      • Prometheus配置
    • 配置grafana监控Linux系统
      • 使用 Exporter 收集指标
      • inux直接安装node_exporter
      • 使用Docker容器安装node_exporter
      • 创建一个任务定时扫描暴露的指标信息
      • 创建仪表盘grafna
      • 导入Dashboard
    • 选择数据源为Prometheus
    • 配置grafana监控SpringBoot应用
      • 主要步骤
      • 找jvm的 dashboard
      • JVM Quarkus 面板
    • Prometheus数据模型
      • time-series 时间序列值
      • Sample样本值
      • metrics name指标名称
      • label标签
      • Notation(符号)
      • TSDB时序数据库
    • 度量指标类型
      • Counter(计数器)类型
      • Gauge(计量器、测量器)
      • Histogram(柱状图、直方图)
      • Summary
      • Summary 和 Histogram 的区分
    • 学习 PromQL
      • 数据模型
      • PromQL 入门
      • HTTP API
    • 告警和通知
      • 配置告警规则
      • 使用 Alertmanager 发送告警通知
    • 服务发现
      • 为什么需要服务发现
      • prometheus目前支持的服务发现类型
    • 基于文件的服务发现方式
      • file_sd_configs
    • 基于consul 的服务发现
      • 什么是基于consul的服务发现
      • Prometheus配置
    • 基于eureka的服务发现
      • eureka 客户端暴露出 prometheus 端口
      • prometheus配置文件
    • 基于nacos的服务发现
      • docker 编排文件
      • 生产的配置文件
      • 修改prometheus配置文件
      • 修改springboot项目配置文件
  • 全方位 Springcloud 性能调优
    • Servlet 容器 优化
    • Zuul配置 优化
    • Feign 配置优化
    • hystrix配置 优化
    • ribbon 优化
  • 高质量实操:SpringCloud 高并发实战案例
    • 1、超高并发10Wqps秒杀实操
    • 2、超高并发100Wqps车联网实操
    • 3、N多其他的超高并发实操项目

(3) 《 K8S 学习圣经 》PDF

《 K8S 学习圣经 》封面

《 K8S 学习圣经 》目录

  • 学习 Kubernets 的相关资料
  • 说在前面:
  • 《K8S学习圣经》的组成
  • 本书目录
  • 第1部分:云原生(Cloud Native)的原理与演进
    • 1、什么是云原生(Cloud Native)?
      • 云原生的四要素:
    • 2、云原生发展历史时间轴
      • 2.1 从微服务到服务网格
      • 2.2 微服务架构的问题
        • 解决方案:
      • 2.3 SideCar 旁车模式(边车模式)
    • 3、2018 年云原生被CNCF重新定义
      • 3.1 服务网格 (Service Mesh)
      • 3.2 不可变基础设施(Immutable Infrastructure)
      • 3.3 声明式API ( declarative APIs)
    • 4、CNCF云原生组织发展和介绍
      • 什么是CNCF
      • CNCF解决了什么问题
      • 介绍几个常用的已经毕业的云原生项目
      • 孵化中的项目
    • 5、从微服务演进到Service Mesh(服务网格)的过程
      • 5.1 单体服务时代
      • 5.2 微服务时代
      • 5.3 服务网格新时期 (service mesh)
    • 6、服务网格(service mesh)原理和价值
      • 什么是服务网格(service mesh)
      • Service Mesh的价值
      • Linkerd
      • istio
      • 国内兴起的服务网格
    • 7、云原生应用和传统应用的区别
    • 8、云原生涉及的核心项目
  • 第2部分:穿透K8S的8大宏观架构
    • 尼恩的K8S的独特视角:不是普通的视角
    • K8S的核心价值:带领大家从 容器管理的石器时代,进入工业时代
      • 图0:K8S 的宏观组件架构图
      • 图1:K8S 业务架构图
      • 图2:K8S 元数据架构图
      • 图3:K8S 容器管理流程架构
      • 图4:容器元数据的数据传输架构
      • 图5:容器对外暴露架构图
      • 图6:总的架构图
      • 图7:master 上APIServer 内部架构图
      • 图8:worker上 kubelet内部架构图
    • 学习 云原生+ 微服务的神器
  • 第3部分:K8s运行时 实操
    • 什么是minikube
    • minikube 背景
    • Kubernetes集群架构 与minikube架构对比
      • 1、Kubernetes集群架构
      • 2、Minikube架构
    • minikube安装前准备
    • docker安装和环境检查
      • docker 版本要求
      • 关闭虚拟机swap、selinux、firewalld
      • 编辑虚拟机hosts文件
      • 登录阿里云
    • 创建用户,加入docker用户组
      • 让用户minikube获得root权限
    • 安装与启动minikube
      • 软件版本说明
      • 安装minikube
      • 启动minikube
      • 命令清单:血泪的安装史,尼恩用过的 命令list
      • minikube start 参数
      • 示例
        • --vm-driver=kvm2
        • --vm-driver=hyperv
        • --vm-driver=none
    • 解决拉取镜像的问题
      • 错误日志查看
      • Q1:解决minikube拉取镜像速度缓慢的问题
        • 解决 minikube start 过程中拉取镜像慢的问题
      • Q2:基础镜像拉不下来
        • 错误日志查看
        • 基础镜像拉不下来
        • 指定镜像启动
        • 终于开始创建容器,开始启动了
      • Q3:新的问题来了:coredns 镜像找不到
      • Q4:继续下载镜像
      • Q5:使用阿里云代理http://k8s.gcr.io镜像仓库
    • Virtual Box 使用的问题
      • Q1:嵌套虚拟化问题
        • 什么是嵌套 虚拟化特性?
        • 虚拟机启用嵌套VT-x/AMD-V
      • Q2:conntrack依赖
      • Q3:依赖kubectl、kubelet
      • Q4:桥接问题
      • Q5:初始化失败报错,升级内核
      • 启动Dashboard
      • 终于全部启动了
      • 如何从宿主机也就是我们的Windows中访问dashborad呢
      • 直接使用minikube
      • minikube重建
    • docker-compose to minikube
    • 部署minikube 遇到的问题
      • 外部访问问题
      • pull image问题
    • POD 容器的问题
      • K8s的常用命令
      • 查看所有的pod,看看哪些有问题
      • storage-provisioner 的ImagePullBackOff 状态
    • 启动minikube时指定harber仓库
      • minikube 复制证书
      • 进入minikube虚拟机
        • 增加私仓地址配置
        • 重启虚拟机的Docker
        • 测试
    • 命令清单:尼恩用过的 启动 命令清单 (都是血和泪)
    • minikube常用命令
      • 一、基本命令
      • 二、镜像命令
      • 三、配置和管理命令
      • 四、网络和连接命令
      • 五、高级命令
      • 六、疑难解答命令
      • 七、其它命令
    • 启动minikube完整的命令清单
    • Helm 的原理、安装、使用
      • Helm 组件及相关术语
      • Helm 工作原理
      • 安装Helm
  • 第4部分:Kubernetes 基本概念
    • 1、基础概念理解
      • K8S集群
      • Node的核心组件
      • Pod
      • Label
      • Deployment
      • Service
      • Addons
      • DNS
      • Web UI (Dashboard)
    • 2、k8s对象(kubernetes Objects)
      • 对象的yaml结构
      • 关于 yaml文件的分割
      • 2.1 一个简单的Kubernetes API 对象
      • 2.1 什么是k8s 资源对象
        • kubernetes 对象必需字段
      • 2.2 kubernetes API的版本
        • 一、查看apiversion 可用版本
        • 二、各种apiVersion的含义
      • 2.3 获取各个属性字段的含义
        • 方式1:从命令行获取方式
        • 方式2:官方 API 文档方式
      • 2.4、管理k8s对象
        • 1、命令式
        • 2、指令性
        • 3、声明式
      • 2.5、对象名称与ID
        • Names
        • UID
      • 2.6 对象规约(Spec)与状态(Status)
        • 对象规约(Spec)与状态(Status)
        • spec 规约
        • status 状态
      • 2.7、名称空间
        • 名称空间的使用参考:
        • 如何访问其他名称空间的东西?
        • 查看名称空间
        • 在执行请求的时设定namespace
        • 设置名称偏好
        • 名称空间与DNS
        • 名称空间的作用
        • 并非所有对象都在命名空间中
      • 2.8 、标签和选择器
      • 2.9、注解annotation
      • 2.8、字段选择器
      • 2.10、认识kubectl 客户端命令
        • kubectl的所有命令参考:
      • 2.11、自动补全
      • 2.12、给idea安装kubernetes插件
        • 1、plugins kubernetes
        • 2、快速生成kubernetes 资源文件模板
        • 3、输入k即可触发自动命令提示
  • 第5部分:Kubernetes 工作负载
    • 什么是Workloads?
    • Pod的原理与生命周期
      • 1、什么是Pod
      • 2、Pod使用
      • 3、Pod生命周期
    • “根容器” : Pause 容器
      • Pod中容器也有分类
      • Pod生命周期的 两个阶段
    • Pod的Init 初始化容器 (附Demo)
      • Pod 钩子Hook方法 (附Demo)
      • Pod 健康检查(探针)机制
      • Pod 的状态和重启策略
        • Pod 常见的状态
        • Pod重启策略
        • Pod常见状态转换场景
    • 临时容器:线上排错
      • 使用方法:
      • 通过临时容器查看Java容器log日志
      • 临时容器的参数说明:
      • 使用临时容器进行 dump 转储
        • 基于制作Java Debug 镜像
        • 临时容器不能用jmap、jps而只能用jattach
        • jattach指令集:
      • 临时容器的配置
      • 临时容器的使用场景
    • 静态Pod
      • 如何找到 静态pod 的文件路径
      • 静态Pod实操
      • Pod 资源需求和限制
    • Pod的Probe 探针机制(健康检查机制)
      • Probe 探针 背景
      • K8S 的3种探针
      • livenessProbe和readinessProbe 的区别
        • (1)livenessProbe
        • (2)readinessProbe
        • (3)就绪、存活两种探针的区别
      • 存活探针 (liveness)的三种探测方法
        • exec 方式示例
        • httpGet 方式示例
        • TCP 方式示例
        • 使用命名的端口
      • 就绪探针 (readiness)
        • ReadinessProbe 探针使用示例
      • ReadinessProbe + LivenessProbe 配合使用示例
        • 以上案例中存活探针 参数意思:
        • 以上案例中就绪探针 参数意思:
      • startupProbe探针
        • 1、startupProbe探针介绍
        • 2、startupProbe探针与另两种区别
        • 3、startupProbe探针方法、属性
        • 4、为什么要使用startupProbe、使用场景
  • 第6部分:Kubernetes 的资源控制
    • 动态的扩容缩容的重要性
    • 1:Deployment 资源对象
      • Deployment的创建
      • Deployment 资源、replicaset资源、Pod资源 三者之间的关系
      • Deployment 基本操作
        • 副本扩容
        • 副本缩容
      • Deployment 更新机制
        • 准备:升级镜像
        • 在线修改yaml
        • 滚动机制相关的命令
        • 暂停和恢复
        • 回滚策略
          • 记录保留
          • 滚动更新数量
      • 使用Deployment 进行灰度发布
    • 2:副本资源 RC、副本集RS 资源对象
      • RC(Replication Controller)
      • RS(Replication Set)
      • ReplicatSet的三个部分
      • RS扩容缩容
    • 3:DaemonSet 守护集
      • DaemonSet 组成结构详解
      • 调度节点的选择
        • 方式一:nodeSelector方式
        • 方式二:nodeAffinity方式
        • 方式三:podAffinity方式
      • Toleration
    • 4:StatefulSet 有状态集
      • StatefulSet 使用场景
      • StatefulSet的一些限制和要求
      • StatefulSet示例
      • DNS解析
      • StatefulSet 的几个要点
        • (1)pod管理策略(podManagementPolicy)
        • (2)updateStrategy: 更新策略
        • (3)对应的headless service
    • 5:Job 任务、CronJob 定时任务
      • Job 任务
      • 并行 job 示例
      • CronJob 定时任务
        • CronJob示例
    • 6:HPA(Horizontal Pod Autoscaling)水平自动伸缩
      • 收集指标插件
      • Metrics API
      • 前置条件: 开启聚合路由
        • metrics安装方式一:minikube 中启用指标服务器作为插件
        • metrics server安装方式二:手动安装
        • 执行安装和检查
        • 执行安装的命令清单
    • 7:使用HPA对SpringCloud微服务进行自动伸缩
      • autoscale命令
      • Metrics支持的指标
      • 创建hpa、查看hpa、删除hpa
      • HPA扩容实操
      • 基于自定义指标的自动扩容
      • 扩展阅读: GC机制
      • 什么是垃圾回收
    • 什么是OCI、CRI、CNI、CSI
      • OCI、CRI、CNI、CSI、CRD、CNM规范基本概念:
      • 实现OCI、CRI、CNI、CSI组件介绍
        • 1、OCI、CRI组件
        • 2、CNI组件
          • CNI 和 CNM 的对比:
        • 3、CSI组件
      • CRI、OCI的关系
      • CRD是什么
      • CR是什么
      • CRD与CR的关系
      • CRD在API Server中的设计和实现机制
      • 如何创建 CRD?
  • 第7部分:SVC负载均衡底层原理
    • Pod的IP 漂移问题
    • service 概念
    • 四大service 类型
    • kubernetes暴露端口的方式
      • 1:集群内部实现访问:Clusterip
      • 2:集群外部方式访问:NodePort
      • 3: LoadBalancer
      • 4: Ingress
    • DNS解析案例
      • 案例
    • SVC 流量分发的底层原理
      • VIP 和 Service 代理
      • 代理模式分类
      • Ⅰ、userspace 代理模式
      • Ⅱ、Iptables 代理模式
      • Ⅲ、ipvs 代理模式
        • ipvs为负载均衡提供算法:
        • ipvs 对比 iptables
      • iptables/netfilter 介绍
        • 1,iptables/netfilter介绍
        • 2,iptables 基础:
        • 3,链的概念:
        • 4,表的概念:
        • 5,数据经过防火墙的流程图:
        • 6,规则:
      • 总结: iptables包含4个表,5个链
    • iptables 在 K8s 中的应用剖析
      • 路由的流程分析:
      • service 的路由分析实例
        • 先看iptables 中的DNAT
        • 再看SNAT
    • 基于客户端地址的会话保持模式的svc负载分发策略
    • k8s集群中service的域名解析、pod的域名解析
      • service的域名
        • 1、创建namespace.yaml文件
        • 2、创建deployment.yaml文件
        • 3、创建service.yaml文件
        • 4、测试
      • 总结
    • 应用持久化存储(PV和PVC)
      • 1、Volume
        • 1.1、emptyDir
        • 1.2、hostPath
        • 1.3、外部存储(以NFS为例)
      • 2、PV与PVC
        • 持久卷的存储插件类型
        • 2.1、Static PV
          • 1)先搭建好NFS服务器(192.168.100.172)
          • 2)创建PV
          • 3)创建PVC
          • 4)创建Pod
        • 2.2、Dynamic PV
          • Dynamic PV属于PV的自动化:
          • 什么是StorageClass
          • 为什么需要StorageClass
          • StorageClass案例
          • 运行原理
  • 第8部分:K8S Ingress原理和实操
    • 背景:
      • svc的作用与不足
      • Ingress 的来源
    • Ingress的构成
      • 什么是Ingress Controller?
        • Ingress 资源对象
        • ingress-controller组件
      • nginx-ingress-controller
    • 部署ingress-controller
      • Minikube安装Ingress
      • 手工部署ingress-controller pod及相关资源
      • ingress版本的问题
      • 调整RBAC api-versions 版本
      • 部署 ingress-nginx
      • 配置ingress资源
      • 报错 failed calling webhook
      • 获取 ingress 启动的svc
        • 加上本地的host
      • 测试访问
      • 实操的善后工作
    • k8s ingress的工作原理
      • (1)Ingress Controller 控制器
      • (2) Ingress 资源对象
    • 详解ingress资源
      • ingress规则
      • DefaultBackend
      • 资源后端
      • 路径类型
        • 路径类型示例
      • 路径多重匹配
    • 主机名通配符
    • ingress类
      • 名字空间域的参数
      • 默认ingress类
    • ingress部署的三种模式
      • 模式一:NodePort模式的Service
      • 模式二:DaemonSet+nodeSelector+HostNetwork
      • 模式三:Deployment+LoadBalancer模式的Service
    • 模式一的问题:service暴露服务的问题
    • DaemonSet+HostNetwork+nodeselector 实操
      • nodePort的NAT性能问题
      • 指定nginx-ingress-controller运行的node节点
      • 修改Deployment为Daemonset,指定节点运行,并开启 hostNetwork
      • 启动nginx-ingress-controller
      • 查看pod的IP和端口
      • 配置ingress资源
      • 命令清单
    • 生产环境 LVS+keepalive 做高可用和负载均衡
      • 边缘节点
      • 生产环境可以使用 HA + LB + DaemonSet hostNetwork 架构
    • 四种port底层原理:nodePort、port、targetPort、containerPort 的核心
      • 1、nodePort
      • 2、port
      • 3、targetPort
      • 4、containerPort
    • Ingress 动态域名配置底层原理
      • ingress生产建议
    • ingress总结
    • K8s的常用命令
      • kubectl命令 要求
  • 第9部分:蓝绿发布、金丝雀发布、滚动发布、A/B测试 原理和实操
    • 背景:
    • 蓝绿发布、金丝雀发布、滚动发布、A/B测试 核心原理
      • 蓝绿发布(Blue-green Deployments) 核心原理
      • 金丝雀发布(anCanary Releases) 核心原理
      • 滚动发布的 核心原理
      • A/B测试(A/B Testing) 核心原理
    • 蓝绿发布、金丝雀发布、滚动发布实操
      • spring cloud 灰度实操
      • 反向代理网关灰度实操
      • Kubernetes 中的灰度策略
      • Deployment金丝雀部署:按照流量比例
        • step1 :启动 V1 服务,查看服务是否正确,然后观察一下服务。
        • step2:启动 V2 的服务版本:1 个复本
        • step3:观察 V2 流量正常的情况的话,那么启动 V2 的 2 个复本。
        • step4:删除 V1 的 2 个复本,流量全部到 V2 上。
        • 实操总结
      • Deployment实现滚动发布
        • step1:启动 V1 服务,查看服务是否正确,然后观察一下服务。
        • step2:启动 app-v2-rolling 进行滚动发布
        • step3:观察所有容器版本变为 V2 版本
        • 实操总结
      • Deployment实现蓝绿部署
        • step1 :启动 V1 服务,查看服务是否正确,然后观察一下服务。
        • step2:启动 V2 的服务版本
        • step3:将版本 1 服务切换到版本 2,观察服务情况
        • patch
        • 实操总结
      • Ingress Annotations实现金丝雀发布
        • Ingress Annotations实现金丝雀发布 实操
      • 华为云的金丝雀发布
      • 参考
  • 第10部分:服务网格Service Mesh 宏观架构模式
    • 第1大模式:Sidecar (边车)模式 架构
      • sidecar的(边车)负责的功能
      • sidecar模式好处、坏处
      • 如何解决依赖的复杂性和性能问题呢?
      • 优化之后的sidecar模式优点:
    • 第2大模式:代理模式
    • 服务网格 istio 框架微服务与SpringCloud 对比
      • SpringCloud 和 istio 中间组件的对比
      • 云原生Sidecar分体架构微服务Provider一体架构对比
      • 两大基础组件的对比
    • 角色sidecar 对应到啥组件?
    • 小结:
    • Istio 架构
      • 控制平和数据面
      • Istio 的运转流程
      • (1)Sidecar自动注入:
      • (2)流量拦截:
      • (3)服务发现:
      • (4)负载均衡:
      • (5)流量治理:
      • (6)访问安全:
      • (7)服务遥测:
      • (8)策略执行:
      • (9)外部访问:
    • Istio组件介绍
      • 2.1 Pilot
      • 2.2 Mixer
      • 2.3 Citadel
      • 2.4 Galley
      • 2.5 Sidecar-injector
      • 2.6 Proxy(Envoy)
      • 2.7 Ingress gateway
      • 2.8 其他组件
    • Istio安装
      • 在本地搭建Istio环境
      • Kubernetes集群环境
    • 安装Istio
      • 快速部署Istio
      • 初步感受istio
      • 手动注入
      • 自动注入sidecar
    • istio项目案例:bookinfo
      • 什么是bookinfo
    • sidecar自动注入到微服务
    • 启动bookinfo
    • 通过ingress方式访问
    • 通过istio的ingress gateway访问
      • 确定 Ingress 的 IP 和端口
  • 第11部分:使用K8S+Harber 手动部署 SpringCloud 应用
    • 启动minikube时指定私有仓库
    • minikube 复制证书
    • 进入minikube虚拟机
      • 增加私仓地址配置
      • 重启虚拟机的Docker
      • 测试
    • 完整的命令清单
    • Docker构建镜像后通过K8S部署
    • 镜像与容器关联
      • Docker构建镜像并且推送Harber
        • 前提:停止或者重启 Harbor
      • 创建Dockerfile
      • 镜像构建:将本地镜像打包
        • docker build语法
      • 镜像打tag:镜像添加版本号
      • 镜像推送:镜像推送到远程仓库
      • 测试
      • 完整的命令清单
    • k8s的Secrets:
      • 创建一个k8s的Secrets:
      • 1.Secret对象配置过程
      • 2.容器镜像拉取的两种策略
        • 2.1 ImagePullPolicy
        • 2.2 ImgaePullSecrets
    • k8s的configMap对象
      • Pod可以通过三种方式来使用ConfigMap,分别为:
      • configMap是什么
        • 1.单pod使用configmap示例图
        • 2.多pod使用configmap示例图
      • configmap来配置环境变量
        • 步骤1:创建configmap
          • 方法1:yaml档来设定configmap
          • 方法1:命令行设定configmap
        • 步骤3:使用configmap来配置
    • docker-compose to minikube
      • 简单案例
      • 实操案例
        • 参考的原始的docker-compose编排文件
      • 设置env环境变量
      • k8s向etc/hosts里添加内容
        • k8s默认被重写/etc/hosts
        • Dockerfile里的配置被覆盖
        • 将你的配置写到k8s yml里
      • Kubernetes volume hostPath explained with examples
        • hostPath
        • Example
    • 部署和创建服务
      • ImagePullBackOff错误排查
        • 解决问题:停止后重启 Harbor
      • CrashLoopBackOff 错误
        • 坑1:镜像拉取是ok,但是依赖包没有
        • 坑2:java 进程异常结束了
        • 坑3:minikube是套娃虚拟机,套娃里边没有映射目录,远程复制
        • 坑4:检查域名和环境变量
      • 解决问题有感
    • 完整的命令清单
    • openresty 镜像
      • dockerfile
  • 第12部分:SpringCloud+Jenkins+ K8s Ingress 自动化灰度发布
    • 如何进行SpringCloud+Jenkins+ K8s Ingress 灰度发布?
    • 回顾Nginx-ingress 架构和原理
    • 灰度实操之前的准备
      • 部署和测试 stable 版本的 deployment 和 svc
      • 部署和测试 canary版本 的 deployment 和 svc
    • 基于用户的灰度场景
      • 接下来,开始基于 用户的灰度实操
    • 基于权重的灰度场景
      • 基于权重的 Canary 规则
      • 基于权重的发布实操
    • 如何进行自动化灰度?
    • jenkins安装和pipeline 流水线的使用
      • 下载和启动jenkins
      • 登录jenkins
      • 使用pipeline插件
        • 安装Pipeline 插件
      • pipeline 的hello world
      • pipeline 语法介绍
      • Jenkins插件SSH Pipeline Steps
        • sshCommand 在远程节点上执行给定的命令并响应输出
        • sshGet 从远程主机获取文件或目录
        • sshPut 将文件或目录放入远程主机
        • sshRemove 删除远程主机上的文件或目录
        • sshScript 在远程节点上执行给定的脚本(文件)并响应输出
        • 结合 withCredentials 从 Jenkins 凭证存储中读取私钥
      • pipeline支持的指令
    • ingress 灰度发布流水线设计
      • CICD流水线预览
      • step1:自动化的制品发布
        • 1、克隆 springboot代码项目到本地
        • 2、maven构建springboot代码项目
        • 3、构建docker镜像
        • 4、推送docker镜像到harber上,完成制品发布
      • step2:生产环境进行 A/B 测试
        • AB测试原理:
      • step3:生产环境进行 A/B 测试
      • step4:生产环境进行版本正式切换
    • 最后总结一下
  • 第13部分:springboot 基于 qps 动态扩缩容
    • 步骤
    • 1、springboot安装prometheus依赖并获取metric
    • 2、安装prometheus operator 实现 kubernetes的监控指标
      • 2.1 helm安装prometheus operator、prometheus adapter(custom metric)
      • 2.2 kubernetes的监控指标
      • Prometheus Operator 极简配置Prometheus 监控
        • Operator
        • Operator介绍
        • Prometheus Operator vs. kube-prometheus vs. community helm chart
      • Prometheus Operator CRD介绍
      • 命令清单: 安装的Prometheus
      • 查看安装后的CRD、svc、pods:
    • 从外部访问promethus
      • 访问Prometheus
      • 访问Alertmanager
      • 访问Grafana
    • 移除kube-prometheus
      • 解决prometheus-adapter创建失败的问题
        • 查看 安装文件
      • 解决kube-state-metrics 创建失败的问题
      • 解决namespace 删除不来
    • 配置prometheus -adapter获取应用qps
    • prometheus采集到的metrics适配给kubernetes用
      • K8s中 kubernetes的监控指标分为两种:
      • Metrics-Server 简介
      • prometheus-adpater
    • 获取 metrics 定制化指标
      • checkout 仓库 k8s-prometheus-adapter
      • 脚本进行部署 k8s-prometheus-adapter
        • 请求metrics.k8s.io的 api
        • 直接访问 api 的方式来测试部署是否 ok
      • 排错 no matches for kind "APIService" in version "apiregistration.k8s.io/v1
        • 查看版本 kubectl api-versions
      • Prometheus adapter 的文件介绍
      • 配置文件
      • resource metrics API
      • 命令清单
    • 自定义alertmanager的PrometheusRule
    • 配置prometheus及adapter获取应用qps
      • 启动springboot应用
      • 添加自定义指标
      • 架构图原理
      • 添加一个自定义监控的步骤
      • 部署prometheus-adapter
    • custom-metrics-server 规则配置
      • 指标发现和配置展示(Metrics Discovery and Presentation Configuration)
      • http_requests(每秒请求数QPS)监控指标
      • 坑: /metrics 路径的定制化修改
      • 查询与 http_requests 相关的指标
    • 自定义metric rules、配置HPA
      • 配置自定义prometheus-adapter-config配置
      • 配置 qps 请求量指标
      • 查看 "pods/http_server_requests_per_second" 指标
      • HPA配置
        • 基于Pod做HPA
        • 基于cpu或者memory做HPA
      • 启动HPA的伸缩控制器
        • hpa验证测试
    • 配置grafana展示qps监控数据
    • hpa命令清单
    • 高阶知识:Adapter 的Discovery规则如何配置?
      • 以获取Per-pod HTTP Requests为例
        • 1 demo问题场景
        • 2 配置适配器
        • 3 查询api
    • prometheus operator 不足之处
      • 数据持久化
      • tsdb 保留天数
      • 告警方式不方便
      • 加监控target也不方便
  • 第14部分:k8s生产环境容器内部JVM参数配置解析及优化
    • Java Heap基础知识
    • 容器环境的Java Heap
      • UseContainerSupport
    • 最佳实践
      • 常用容器内存大小对应的jvm内存配置
        • 容器启动常用配置
      • 配置项的具体介绍
        • 1.堆总内存初始化大小分配和最大值分配
        • 2.非堆总内存初始化大小分配和最大值分配(1.8为metaspace)
        • 3.堆内存之年轻代年老代大小设置
        • 4.线程栈大小
        • 5.GC日志输出
        • 6.每个线程堆栈大小
    • Kubernetes(k8s)配置Java服务自动Dump
    • 参考:Go语音解决 java 内存溢出时候 dump 文件的存储问题
      • 问题
      • 方案
      • 其他
  • 参考文献

(planning ......)

(planning ......)

注:本文以 PDF 持续更新,最新尼恩 架构笔记、面试题 的PDF文件,请从这里获取:语雀或者码云

技术自由的实现路径:

实现你的 架构自由

吃透8图1模板,人人可以做架构

10Wqps评论中台,如何架构?B站是这么做的!!!

阿里二面:千万级、亿级数据,如何性能优化? 教科书级 答案来了

峰值21WQps、亿级DAU,小游戏《羊了个羊》是怎么架构的?

100亿级订单怎么调度,来一个大厂的极品方案

2个大厂 100亿级 超大流量 红包 架构方案

… 更多架构文章,正在添加中

实现你的响应式 自由

响应式圣经:10W字,实现Spring响应式编程自由

这是老版本 《Flux、Mono、Reactor 实战(史上最全)

实现你的 spring cloud 自由

spring cloud Alibaba 学习圣经》 PDF

Nacos (史上最全)

nacos高可用(图解+秒懂+史上最全)

sentinel(史上最全)

Springcloud gateway 底层原理、核心实战 (史上最全)

SpringCloud+Dubbo3 = 王炸 !

分库分表 Sharding-JDBC 底层原理、核心实战(史上最全)

一文搞定:SpringBoot、SLF4j、Log4j、Logback、Netty之间混乱关系(史上最全)

实现你的 linux 自由

Linux命令大全:2W多字,一次实现Linux自由

实现你的 网络 自由

TCP协议详解 (史上最全)

网络三张表:ARP表, MAC表, 路由表,实现你的网络自由!!

实现你的 分布式锁 自由

Redis分布式锁(图解 - 秒懂 - 史上最全)

Zookeeper 分布式锁 - 图解 - 秒懂

实现你的 王者组件 自由

队列之王: Disruptor 原理、架构、源码 一文穿透

缓存之王:Caffeine 源码、架构、原理(史上最全,10W字 超级长文)

缓存之王:Caffeine 的使用(史上最全)

Java Agent 探针、字节码增强 ByteBuddy(史上最全)

实现你的 面试题 自由

4000页《尼恩Java面试宝典 》 40个专题

posted @ 2023-03-15 22:02  疯狂创客圈  阅读(194)  评论(0编辑  收藏  举报