在此文章下分享值得阅读和学习的部分文章链接

1 docker

Dockerfile 参考文档

Docker-Compose+Gitlab+Harbor+Jenkins 实现快速部署持续集成测试环境

Kubernetes + Jenkins + Helm + Springboot

1.1 docker探索

docker 架构与基本使用
docker 架构与基本使用2

Docker 背后的内核知识——cgroups 资源限制

runlike通过容器打印出容器的启动命令 与 whaler通过镜像导出dockerfile

镜像构建的原理
容器镜像
基于BuildKit优化Dockerfile的构建
docker 最小化构建镜像经验

使用 Docker build 构建 yum/apt 离线源

从 container 到 pod
cgroup基本概念
docker系列–namespace解读

Docker v1.10.3版本 docker stats分析

docker buildx插件解决 多平台docker镜像问题

Docker v1.2版本 源码分析(一):Docker 架构
Docker v1.2版本 源码分析(二):Docker Client
Docker v1.2版本 源码分析(三):Docker Daemon

Pod Terminating 状态排查

1.2 docker 与 k8s

为什么 Kubernetes 要替换 Docker
Containerd 简介

2 kubernetes

2020 kubernetes开源项目
使用 Sealos + Longhorn 部署 KubeSphere v3.0.0
为kubernetes定制特性

Kubernetes 字段:finalizers
Pod 拓扑分布约束使用及调度原理
Kubernetes API的实现

Kubernetes 稳定性保障手册 – 极简版
Kubernetes 稳定性保障手册 – 日志专题
Kubernetes 稳定性保障手册 – 可观测性专题
Kubernetes 稳定性保障手册 – 洞察+预案
OpenTelemetry 简析
kubernetes 值得关注的指标
Kubernetes 监控原理
监控与日志
PromQL 使用基础
Prometheus 存储层的演进
prometheus存储 Thanos 与 VictoriaMetrics
使用 VictoriaMetrics 监控 K8s 集群
常用监控 Kubernetes 性能的 Prometheus Operator 指标
prometheus 监控JVM
使用 missing-container-metrics 监控 Pod oomkill
Prometheus 的常见问题
通过Prometheus来做SLI/SLO监控展示
优化Kubernetes横向扩缩HPA
Prometheus Relabeling 重新标记的使用
Prometheus 服务的自动发现使用
为 Go 应用添加 Prometheus 监控指标
PromQL 查询之 rate 函数的使用
使用 Node Exporter 自定义监控指标
手动删除Promethues的指标

Kubectl Plugin 插件开发篇

容器网络1
容器网络2
K8S网络
Kubernetes 容器网络
Kubernetes网络插件Flannel的3种工作模式
Kubernetes 网络插件Flannel和Calico工作原理
理解kubernetes环境的iptables
K8S Service 中对比 iptables 和 eBPF
kube-proxy 如何与 iptables 配合
k8s之calico-nodeport
Kubernetes Pod 如何获取 IP 地址
Kubernetes 网络方案 Cilium 入门教程
Cilium 网络性能分析
kind试验Cilium网络插件
深入理解 Cilium 的 eBPF 收发包路径
集群中eBPF 内核特性
Kubernetes 网络插件工作原理
全面认识容器网络接口(CNI)
实现一个 Kubernetes 网络插件CNI
调试K8s service|3种场景下的3种工具
解析k8s中工作节点组件和集群通信原理
Kubernetes 中数据包的生命周期

kube-dns的演变
kube-scheduler扩展功能

部署一个生产级别的Kubernetes 应用
kubectl 创建 Pod 的过程
kubernetes Pod 创建流程
Pod创建流程代码版本 kubelet篇
Kubernetes CRI 分析 - kubelet 创建 Pod 分析

kubernetes 中的事件机制分析

拉取镜像的过程

k8s 大规模集群优化

kubelet命令详解

深入剖析 Linux 容器

kubernetes 常见问题
Kubernetes Deployment 故障排查指南
节点磁盘空间不足处理办法
故障排查:Kubernetes 中 Pod 无法正常解析域名
accept queue溢出导致k8s丢包
为集群配置预留资源
Kubernetes 的驱逐

K8s CSI 实现机制浅析
kubernetes 存储原理解析
Kubernetes 存储架构及插件使用
应用存储和持久化数据卷:存储快照与拓扑调度
使用 OpenEBS 实现 Local PV 动态持久化存储
在kubernetes中用Glusterfs做持久化存储1
在kubernetes中用Glusterfs做持久化存储2
kubernetes csi-driver-host-path 解析

Pod 垂直自动伸缩的使用VPA

自定义controller
operator-sdk
kubebuilder
kubebuilder 构建Operator
深入理解 kubebuilder
shell-operator 实现 Operator
开发一个 etcd 备份的 operator
ElasticSearch Operator 工作原理浅析
controller-runtime 之控制器实现
OpenKruise/Kruise 扩展k8s原生组件
腾讯 更贴近业务场景的K8s工作负载

使用 Discovery 动态地查找给定类型k8s-client的REST客户端
自己动手实现一个kubectl exec

Aggregated APIServer 构建云原生应用

2.1 kubernetes的组件们

Job & DaemonSet

kubernetes的Etcd

验证Kubernetes YAML的最佳实践和策略

Kubernetes Ingress简介
Nginx Ingress 高并发调优
Nginx Ingress 使用示例

云原生运行时安全 Falco
kubernetes的SecurityContext

K3s 和 Traefik
Traefik 2.2版本搭建
Traefik 中间件配置
Traefik 简介
traefik 为服务配置 sso
Traefik Plugins 全面解析

使用cert-manage自动签发证书
阿里云DNS与cert-manage

kubectl debug 调试集群内的容器

Kubernetes备份恢复之Velero 1
Kubernetes备份恢复之Velero 2
使用 Velero 备份还原 Kubernetes 集群

实现一个容器镜像白名单的 K8S 准入控制器

Kubernetes 故障检测和自愈工具 NPD

2.2 Serverless

当我们在聊 Serverless 时你应该知道这些(包含IaaS等基本知识)

2.3 Rook&Ceph

Ceph介绍、原理、架构
Ceph删除OSD

2.4 Istio

图解Istio
使用 Istio 实现非侵入流量治理
Istio源码分析1

3 linux

单服务器最大tcp连接数及调优汇总
linxu服务器并发调优

linux 指标监控小记

理解网络命名空间与 VETH Pair 对
iptables
连接跟踪(conntrack):原理、应用及 Linux 内核实现
内核调试技巧–systemtap定位丢包原因
Linux 数据包的接收与发送过程
Linux 虚拟网络设备

LVS、Nginx 及 HAProxy 工作原理

linux如何收发网络包的
HTTP请求的过程
三次握手、四次挥手

详解国密 SSL ECC_SM4_SM3 套件

MySQL监控

调度系统设计精要

Linux Capabilities

select、poll、epoll之间的区别

Linux 重建yum和python

Shell 脚本避坑指南

3.1 Nginx

后端必备 Nginx 配置

nginx配置全解

Nginx HTTPS 低耗时调优

4 ElasticSearch

ElasticSearch实战系列三: ElasticSearch的JAVA API使用教程

ELK 中常见的难点问题和优化技巧

springboot + ES

5 JAVA

建议使用LocalDateTime而不是Date

JVM 配置常用参数和常用 GC 调优策略

从实践角度理解BIO和NIO

java8 中的时间处理

Spring Cloud技术栈概述

Tomcat 在 SpringBoot 中是如何启动的

Spring声明事务的三种方式

线程安全和内存模型

JAVA 线上故障排查思路
线上故障如何快速排查

高并发场景下JVM调优实践之路

5.1 Spring

Spring生命周期
BeanFactory和ApplicationContext区别

SpringBoot 多种读取配置文件中参数的方式
SpringBoot 中使用 @Valid 注解镜像参数校验

SpringBoot WebMvcConfigurer详解(代替传统的xml配置)
SpringBoot 优化构建Docker镜像

6 GO

vscode-Go 插件用法

Go语言文件读取的一些总结

Go的方法集详解

goMod 导入本地其他项目的包
grpc讲解
Go netpoller 原生网络模型之源码全面揭秘

gRPC-Gateway 示例1

Golang调度器GMP原理与调度
Go的g0,m0
高并发下订单系统思考
Go的线程模型
go的携程池
etcd中的Raft
深入剖析共识性算法 Raft
浅析GC
go与虚拟内存
Goroutine 数量控制在多少合适,会影响 GC 和调度
GMP 模型,为什么要有 P
GO 的抢占调度
GO 的限流

go 的channel
Go interface 底层实现
Go Mutex 源码剖析

使用viper管理配置
viper 源码分析

实现一个负载均衡器

Go的调试技巧
Go性能剖析 PProf
腾讯Go性能测试与优化
火焰图展示性能瓶颈

Golang 实现 Paxos 分布式共识算法

7 概念知识

代码仓库创建规范

有状态服务上 Kubernetes 的核心技术
大厂们的云原生案例
云原生应用负载均衡选型指南
深入浅出负载均衡
图解系列

服务架构简述
分布式系统体系
分布式系统概念原理
调度系统设计精要
B站高可用架构实践

注册中心对比

文件系统

leaf 分布式ID

分布式链路追踪(Tracing)系统 - Jaeger在Golang中的使用

申请内存时底层发生了什

零拷贝技术

8 工具

Jenkins 的CI/CD
Jenkins X
阿里的Jenkins X实践
gitlab CI/CD

容器镜像漏洞检测工具 Trivy 入门指南
使用 FIO 对 Kubernetes 持久卷进行 Benchmark:读/写(IOPS)、带宽(MB/s)和延迟

镜像搬运工具 Skopeo

如何画好架构图
开源云原生画图工具

集群中的Harbor部署

grafana设置定制化主题

github Page 搭建博客
github awesome推荐

Postman自动化接口测试

自动测试项目中的Sql是否正确

mysql优化
mysql经典概念
高性能Mysql主从架构的复制原理及配置详解
Kubernetes部署本地有状态mysql主从服务
mysqlslap性能测试

MongoDB 运维实战总结

Redis 中 bgsave 方式持久化的细节问题
Redis-benchmark性能测试

cheat.sh 统一访问世界上最好的、社区驱动的备忘单(cheat sheet)存储库(需要公网环境)

9 算法

图解调度算法

10 书籍

云原生书籍推荐
go相关书籍推荐

11 中间件

Kafka 实战