├── README.md └── docs ├── .DS_Store └── kubernetes ├── dashboard-user-role.yaml ├── dashboard.yaml └── kube-flannel.yaml /README.md: -------------------------------------------------------------------------------- 1 | 2 |

3 | 4 |

5 | 持续更新中... 6 |

7 | 8 |

9 | 10 |

11 |
12 |

13 | 14 | 自学之路漫又长,唯有不断总结,不断回味,不断分享,才能成长! 15 | 16 | 联系我可以去[【公众号】](#公众号)直接私信我,或者加我[【微信】](#微信) 17 | 18 |

19 | 20 | 21 | 22 |

23 | 24 | 25 |

26 | 27 | 公众号:CodeSheep 28 | 29 | 哔哩哔哩:CodeSheep 30 | CSDN:CodeSheep 31 | 掘金:CodeSheep 32 | 知乎:CodeSheep程序羊 33 |

34 | 35 | 36 | --- 37 | # 学习路线 38 | 39 | - [Java后端开发学习路线](https://mp.weixin.qq.com/s/rAoamIey7cARMES7kfIaLw) 40 | 41 |

42 | 43 | 44 | 45 |

46 | 47 | > 注:图片上传后可能被压缩,如需无损版高清大图,可去微信公众号「CodeSheep」后台回复「高清大图」四个字获取即可 48 | 49 | - [C语言/C++开发学习路线(偏后台)](https://mp.weixin.qq.com/s/tXilzUzN7cDhnc3ztw4Vlw) 50 | - Linux学习路线 51 | - [前端开发学习路线](https://mp.weixin.qq.com/s/Y50BZPXfWhQw5xYl7WgEZw) 52 | 53 | --- 54 | # 项目推荐 55 | 56 | - [看完这篇,别人的开源项目结构应该能看懂了](https://mp.weixin.qq.com/s/5Ar5B9Ah2BdO8i9YjMQ7Qg) 57 | - [上次谁说要Java开源项目来着?来!](https://mp.weixin.qq.com/s/y59hmDbQj1QglVj90viZqw) 58 | - [分享几款适合初学者的C语言/C++开源项目](https://mp.weixin.qq.com/s/bRNiqhZZXaoRwPEt8GIpLg) 59 | - [吵着要学AI的小伙伴,可以看看这些牛批的开源项目](https://mp.weixin.qq.com/s/I9lr_SEg70OO_v-GOIUgjQ) 60 | - [再整理几个开源项目:练手/毕设/私活都不愁了](https://mp.weixin.qq.com/s/jjugnXIr3G0u7i9krbmmqg) 61 | - [C/C++领域的练手开源项目,小伙伴们接好](https://mp.weixin.qq.com/s/fNgOqKlITKa4yTbULO2Atw) 62 | - [5个值得学习和练手的企业级开源项目!](https://mp.weixin.qq.com/s/PmxVlkI9LUmnqqSk0Frqeg) 63 | - [互联网开发十大顶级开源项目巡礼!](https://mp.weixin.qq.com/s/2cXCyl9rLNhFY1dDurkEMA) 64 | - [推荐几个炫酷的Python开源项目](https://mp.weixin.qq.com/s/Fu4OMojTJK0MrZohsLOx4w) 65 | 66 | --- 67 | # 书籍推荐 68 | 69 | - [我的Java后端开发小书架分享](https://mp.weixin.qq.com/s/voNG467kSVfR-yjwelQhow) 70 | - [必读计算机编程好书推荐!程序员小伙搬出了他的书架!](https://www.bilibili.com/video/BV1kJ411W7pi) 71 | - [自学C/C++书籍推荐(自学C/C++看书路线推荐)](https://www.bilibili.com/video/BV1ob411m76i) 72 | 73 | --- 74 | # 自学编程 75 | 76 | --- 77 | ### 编程基础! 78 | 79 | - 基本功趣味学习 80 | 81 | - [老大说:谁要再用double定义商品金额,就自己收拾东西走](https://mp.weixin.qq.com/s/UyYDt3HB8IO_AoSDLndhxA) 82 | - [为什么我们要面向接口编程?!](https://mp.weixin.qq.com/s/Dg9LcKJBrabcnvC_6wga-A) 83 | - [恕我直言,我怀疑你没怎么用过枚举](https://mp.weixin.qq.com/s/DgOr7cat8SP0zoY7Ke3toQ) 84 | - [一文详解序列化和反序列化](https://mp.weixin.qq.com/s/0EfIUB9E-0Oh_Clwuxswuw) 85 | - [对不起我拖后腿了!我才刚用上Java 11](https://mp.weixin.qq.com/s/kNMQp-vjVK6Fq07xalZkng) 86 | - [答应我,别再if/else走天下了可以吗](https://mp.weixin.qq.com/s/ufRf8DQQRYQI0q2VxG3hQg) 87 | - [答应我,别再if/else走天下了可以吗「C++ 版」](https://mp.weixin.qq.com/s/iGqAZM7Ja_OzjH5AgS8geA) 88 | - [听说你只会用注解,不会自己写注解?](https://mp.weixin.qq.com/s/gdYysBB3aD_HmPyvEThFXw) 89 | - [从一个面试题看程序员的几项基本功](https://mp.weixin.qq.com/s/dVgDv1bNH8ivO0Ft0FtmZg) 90 | - [只因少写一个判空,我的代码上线后炸了!](https://mp.weixin.qq.com/s/RsC7peRsFaJAEcG2eTJb0Q) 91 | - [以后要是再写for循环,我就捶自己](https://mp.weixin.qq.com/s/yI82juBiirJ56BZfGJezLw) 92 | - [什么?你项目还在用Date表示时间?!](https://mp.weixin.qq.com/s/v-Va_GuSUGr9HVAW84kloQ) 93 | - [面试官:为什么要重写hashcode和equals方法?](https://mp.weixin.qq.com/s/QZPezSruj0qvBUJEM4jB0g) 94 | - [这才是学编程要懂的基础!](https://mp.weixin.qq.com/s/ttncekujB82g88GRx3a6lQ) 95 | - [真有小伙伴不知道浮点数如何转二进制吗?](https://mp.weixin.qq.com/s/LVpvmBO0GY6TC4gwL_12Yw) 96 | - [List使用踩坑记录](https://mp.weixin.qq.com/s/9bw2-pkuYSKEnstb4KGsqQ) 97 | - [Map使用踩坑记录](https://mp.weixin.qq.com/s/D21mcfI4cxNf4D9ukjESog) 98 | 99 | - 多线程/并发 100 | 101 | - [ThreadLocal源码剖析](https://mp.weixin.qq.com/s/ND-nUCGvXTHkEClKqN1qrQ) 102 | - 线程池详解 103 | - 各种“锁”大科普 104 | - JUC工具类解析 105 | 106 | - JVM 107 | - JVM内存模型剖析 108 | - JVM垃圾回收详解 109 | - 类加载机制 110 | - 性能调优和问题排查 111 | 112 | - 数据结构和算法 113 | 114 | - [24张图,九大数据结构安排得明明白白!](https://mp.weixin.qq.com/s/ZVwIUN-xf9FuxOFXW8H3Nw) 115 | - [诸葛亮vs司马懿,排序算法大战谁能笑到最后?](https://mp.weixin.qq.com/s/za_MJY3-r9Gfiu3BJfej7Q) 116 | - [十大经典排序算法大梳理 (动图+代码)](https://mp.weixin.qq.com/s/ekGdneZrMa23ALxt5mvKpQ) 117 | - [数据结构里各种难啃的“树”,一文搞懂它](https://mp.weixin.qq.com/s/k4-RaW4ROlo6chSXsO_4AA) 118 | - [一篇文章彻底学会递归思路解题!](https://mp.weixin.qq.com/s/-V0jBkPoZHYC2jLfSnQ6-g) 119 | - 哈希算法详解 120 | 121 | 122 | - 计算机网络(TCP/IP协议栈) 123 | 124 | - [计网 IP 知识全家桶,45 张图一套带走](https://mp.weixin.qq.com/s/21Tk-8gxpDoH9DNWNYCWmA) 125 | - [ping命令用得这么6,原理知道不?图解一波!](https://mp.weixin.qq.com/s/55bbQX2-SUNe6PEI9My5fA) 126 | - [探究:一个数据包在网络中到底是怎么游走的?](https://mp.weixin.qq.com/s/07zloKKMUl-RHN6tWqZIJQ) 127 | - [硬不硬你说了算!全图解被问千百遍的TCP三次握手和四次挥手面试题](https://mp.weixin.qq.com/s/lFnyBaaP3f0eNcKGW5RtCg) 128 | - [硬核!30 张图解 HTTP 常见的面试题](https://mp.weixin.qq.com/s/FJGKObVnU61ve_ioejLrtw) 129 | - [如果面试再问GET和POST区别,就把这篇甩给他](https://mp.weixin.qq.com/s/BraxnIUJF4JGtIep0YiovA) 130 | - [计网 TCP/UDP 部分高频面试题大集合](https://mp.weixin.qq.com/s/SZ8XcOzZCVJG_P1_O4OtWQ) 131 | 132 | - 操作系统 133 | 134 | - [硬核科普:程序员必知的 89 个操作系统核心概念](https://mp.weixin.qq.com/s/VsQ7IpP-jnXSjJhOAzl-ew) 135 | 136 | - 数据库/SQL 137 | 138 | - [left join、right join和join,傻傻分不清?](https://mp.weixin.qq.com/s/o150rmPOgzUeafVTh-ESmQ) 139 | - [数据库索引到底是什么](https://mp.weixin.qq.com/s/WMuxdG3ymNMWWDk1XhLwZQ) 140 | - [数据库索引的原理和使用准则](https://mp.weixin.qq.com/s/4K3borSZXt-yc5t5UJnJpQ) 141 | - 数据库锁机制 142 | - 数据库事务特性与隔离级别详解 143 | - SQL优化详解 144 | - 基于代理的数据库分库分表框架 Mycat实践 145 | 146 | - 其他 147 | 148 | - [UML大科普:一文梳理清 14种 UML图](https://mp.weixin.qq.com/s/o1P4z3u2Xphu_IyTUFT-2g) 149 | 150 | --- 151 | ### 工具和软件 152 | 153 | [【置顶1】熬10天夜,肝出了这个PDF版「软件安装手册」](https://mp.weixin.qq.com/s/YNOZSQ5smo1uGE5ZttUZ_w) 154 | 155 | [【置顶2】再肝两夜,写了个「服务器项目部署」实战PDF手册](https://mp.weixin.qq.com/s/JUJ6qu_ec3s1JmTxQt_V3g) 156 | 157 | - Linux系统 158 | 159 | - [常用 Linux 发行版操作系统大盘点](https://mp.weixin.qq.com/s/x8rwsIOzYEPXmEVXmWJ4Tg) 160 | - [人手一套Linux环境搭建之:macOS版本教程](https://mp.weixin.qq.com/s/WeZLtfrMdnISpX3v5WpJfA) 161 | - [人手一套Linux环境之:Windows版本教程](https://mp.weixin.qq.com/s/onVwwEQ1DAwbvK7qS2YNxg) 162 | - [面试常问的20个Linux命令](https://mp.weixin.qq.com/s/3NI4FWuOfYMJBiKqqnpqMA) 163 | - [废柴电脑拯救计划:搭个云服务器它不香嘛](https://mp.weixin.qq.com/s/YpWp-b3vcAtb_jBwCM7wtg) 164 | 165 | - Git/SVN 166 | 167 | - [一招搞定GitHub下载加速!](https://mp.weixin.qq.com/s/SYR4zvjhAH1mX9fxdp8cbA) 168 | - [为什么 Git把 SVN拍在了沙滩上!](https://mp.weixin.qq.com/s/bUYz9JwqAYH_Fn6nHPSmTg) 169 | - [Git的由来、数据模型以及基础命令](https://mp.weixin.qq.com/s/VvpjFUXd6jcatACHyFPHfg) 170 | - [Git操作与命令看这篇足矣!](https://mp.weixin.qq.com/s/swnwBiuyVmhs5iPqv3H6BQ) 171 | 172 | - 开发软件 173 | 174 | - [船新 IDEA 2020.1 真香体验!](https://mp.weixin.qq.com/s/Ua4TYlcNntLr-x9WQirHyg) 175 | - [没用过这些IDEA插件?怪不得写代码头疼](https://mp.weixin.qq.com/s/xMwGAL_7sGkmnFvWZroVPw) 176 | - [试水JetBrains官方新编程字体,真香!](https://mp.weixin.qq.com/s/RK_ygHgMjayL5-qTnlHbeg) 177 | 178 | 179 | - 持续集成 180 | - [Jenkins长大了,Pipeline该用起来了!](https://mp.weixin.qq.com/s/Y2gxBmBK2HPvr1uKUUxRYA) 181 | - [如何让自己少写点bug?](https://mp.weixin.qq.com/s/PgoXJcJX_sm5132VGQoZ1w) 182 | 183 | - 文档管理 184 | 185 | - Dash 186 | - Zeal 187 | 188 | - 其他软件和工具 189 | 190 | - [我的常用软件大公开!](https://mp.weixin.qq.com/s/ONx6wjGjQSvOOIgnEBTNJQ) 191 | - [这么多编程学习网站,总有一个适合你吧](https://mp.weixin.qq.com/s/L9lbKUJHTThCoOC8d6FGpg) 192 | - [前后端都分离了,该搞个好用的API管理系统了!](https://mp.weixin.qq.com/s/Ahs6fnIfFVVPOn3NZpIsNA) 193 | - [服务器软件大盘点!](https://mp.weixin.qq.com/s/J1XjIwtEKjaltqWH-0qmgw) 194 | - [几款提升效率和B格的软件神器](https://mp.weixin.qq.com/s/HZRz_A8bLcOTuzcezYEFZg) 195 | - [我的常用在线工具网站](https://mp.weixin.qq.com/s/oMAJaKDfr_bmgCVD0CX1oA) 196 | 197 | 198 | --- 199 | ### 应用框架 200 | 201 | - Spring系列框架 202 | 203 | * [Spring Boot 应用程序启动过程探秘](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483867&idx=1&sn=319afaf4a53a659aa2e513732e0deee2&chksm=fdded71fcaa95e09ed14f1608cc6809d321897b2c7bcafb72873eaa672fcc9fe233038ebc21c&scene=21#wechat_redirect) 204 | * [SpringBoot 中 @SpringBootApplication注解背后的三体结构探秘](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483829&idx=1&sn=e0fd1b9154e687f367e850ca0251c073&chksm=fdded771caa95e67180b6ac76e03f506b6325c3a81cf1ddbe4d8cacbf1a8fb0cb6ebc276d50a&scene=21#wechat_redirect) 205 | * [Spring Boot日志框架实践](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483822&idx=1&sn=0302e3d40ca827a37d135707ea944769&chksm=fdded76acaa95e7ccb18bdc857e21dbac962c32ebe661df15b7019caba50619d14e3cebdbd53&scene=21#wechat_redirect) 206 | * [利用神器BTrace 追踪线上 Spring Boot应用运行时信息](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483994&idx=1&sn=0df1d378f66122803d894b9d10b8a264&chksm=fdded49ecaa95d88fad4a1a92ac6338e53f6fc42f0324537b8e24973a7dc0e5db5b361e24dd4&scene=21#wechat_redirect) 207 | * [Spring Boot工程集成全局唯一ID生成器 UidGenerator](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483908&idx=1&sn=bb43028457c590eeac1e43fcfc6cf2ba&chksm=fdded4c0caa95dd67a29c79526dd0947fe7134f0a2cdfb72bb5b057f9976464f8b1534a846e9&scene=21#wechat_redirect) 208 | * [Spring Boot Admin 2.0开箱体验](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483816&idx=1&sn=c7a3581bfa9f8853961446db28e3904b&chksm=fdded76ccaa95e7a5a884e1d6079556f2f89b9b6fdce31bb962e8c4e21579bef8fc4f4ef146e&scene=21#wechat_redirect) 209 | * [基于Spring Security Oauth2的SSO单点登录+JWT权限控制实践](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247484161&idx=1&sn=6378dbce60394dc71877dd890b52309d&chksm=fdded5c5caa95cd39f81a39863dd56cb4f4787bd69b9795b050552de70b255d4187808ed5e16&scene=21#wechat_redirect)[](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247484330&idx=1&sn=0dc2690c5398f345e4d9ac61ee4f62dd&chksm=fdded56ecaa95c78d39499728f9a5227e4499eb60bdbc90599cd1d2693aa808bd5001d9403fd&scene=21#wechat_redirect) 210 | * [封装一个流水号ID生成器:id-spring-boot-starter](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247484330&idx=1&sn=0dc2690c5398f345e4d9ac61ee4f62dd&chksm=fdded56ecaa95c78d39499728f9a5227e4499eb60bdbc90599cd1d2693aa808bd5001d9403fd&scene=21#wechat_redirect) 211 | * [自制一个 elasticsearch-spring-boot-starter](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247484014&idx=1&sn=b04b0530921877e733b1fd606714096d&chksm=fdded4aacaa95dbc36245635484d1fb53f926c7c85436745126818d308c6eae8eae4a2a71a61&scene=21#wechat_redirect) 212 | * [基于Spring Security和 JWT的权限系统设计](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247484035&idx=1&sn=e92e92c550279e6c0484c39daa2a4361&chksm=fdded447caa95d514dd3dc299b8168945422a466829981a0841ab826d7de26f4474d810ecaf0&scene=21#wechat_redirect) 213 | * [Spring Boot 工程集成全局唯一ID生成器 Vesta](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483949&idx=1&sn=25ce8750d7ce3de823c28c36cd0a8a19&chksm=fdded4e9caa95dff078f62b6d365fff87d0b41aefb1de6f18c241d4757cc3c5e31fc515d4dc3&scene=21#wechat_redirect) 214 | * [Mybatis-Plus 真好用(乡村爱情加持)](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247484119&idx=1&sn=96f980fb364c3a1cbdca802ca6477eb3&chksm=fdded413caa95d0534bfa137fac7820075ccb9699fc5dca6400ab06f3d4cc3894f7c3b9aa2ea&scene=21#wechat_redirect) 215 | - [啥?听说你还在手写复杂的参数校验?](https://mp.weixin.qq.com/s/WQ-2fPOxk0GvSHiRR5-kQw) 216 | * [如何自制一个Spring Boot Starter并推送到远端公服](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483999&idx=1&sn=388b301f8bee2376ec8d791d7eb565bf&chksm=fdded49bcaa95d8daa7026876e189f7e8e740b8d50f1d64cbddd054430a55005947cd516144a&scene=21#wechat_redirect) 217 | * [Spring Boot应用缓存实践之:Ehcache加持](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483893&idx=1&sn=dbfc63f98c1f22c58db40b0de3b126cf&chksm=fdded731caa95e27f0f12f1a8f7be55bf74886ac59170052cc6c2035ddd82373126c50b95f7d&scene=21#wechat_redirect) 218 | * [自然语言处理工具包 HanLP在 Spring Boot中的应用](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483917&idx=1&sn=10501a9d725b9ea7be4c873a14871214&chksm=fdded4c9caa95ddf2edbfadbc448a32396a9ba97bea6f67764eb0aade88d32786e77fcb5a1b8&scene=21#wechat_redirect)[](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483940&idx=1&sn=da510a926fe8a772a06bc9c4ca527c2c&chksm=fdded4e0caa95df6131b89caa4de55db4ccc54f839883ee71926790e2f06d853648e30f2ac32&scene=21#wechat_redirect) 219 | * [基于Spring Boot实现图片上传/加水印一把梭操作](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483940&idx=1&sn=da510a926fe8a772a06bc9c4ca527c2c&chksm=fdded4e0caa95df6131b89caa4de55db4ccc54f839883ee71926790e2f06d853648e30f2ac32&scene=21#wechat_redirect) 220 | * [EVCache缓存在 Spring Boot中的实战](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483958&idx=1&sn=4d6c9e99827a0bd2357a7724c00045a1&chksm=fdded4f2caa95de45e330427a8392de52fb473b0d9ec7cafda699ffc6f1a80b3f632250d1405&scene=21#wechat_redirect) 221 | * [Guava Cache本地缓存在 Spring Boot应用中的实践](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483990&idx=1&sn=67991fd14de685dad94e930f29f7b721&chksm=fdded492caa95d84439bc32303709d0b0c871f3a87ea948dfe81c8e3a60d90718e3d1411d036&scene=21#wechat_redirect)[](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247484010&idx=1&sn=f2d722b6681d14b11d6aa399f1613e52&chksm=fdded4aecaa95db83868737f30e950205510492729a189f378c7326146e057b2e82267ac7dd9&scene=21#wechat_redirect) 222 | * [Spring Boot项目利用MyBatis Generator进行数据层代码自动生成](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247484010&idx=1&sn=f2d722b6681d14b11d6aa399f1613e52&chksm=fdded4aecaa95db83868737f30e950205510492729a189f378c7326146e057b2e82267ac7dd9&scene=21#wechat_redirect) 223 | * [初探Kotlin+SpringBoot联合编程](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247484900&idx=2&sn=45df41412575afb244f75de08b6bbe7f&chksm=fdded320caa95a36e85c510a1a72951b97a579511db7bd58aba2270020434b5579b8c3ce578f&scene=21#wechat_redirect) 224 | * [Spring Boot优雅编码之:Lombok加持](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247485020&idx=1&sn=3c3405807f96a597398f513c48bb094e&chksm=fdded098caa9598e6159bd7315180e149e6a789a3ee75d42b4acaaae96669504e08378eeddae&scene=21#wechat_redirect) 225 | * [Spring Boot应用监控实战](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483771&idx=1&sn=7c5f103a816c16e453e04141d7433bf9&chksm=fdded7bfcaa95ea9a5dbe81114d32c1908bf8da0b3366bfbfcbe2473445cdba73c5e2060d5f3&scene=21#wechat_redirect) 226 | * [Spring Boot应用部署于外置Tomcat容器](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483792&idx=1&sn=fde72633b86c7f951cd2a25f0c270121&chksm=fdded754caa95e420516178ff70b67b42271c4c68bc4644b4671925bf3c0b8383242432318a5&scene=21#wechat_redirect) 227 | * [Spring Boot热部署加持](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483804&idx=1&sn=ac5860655be99dea94aa12cc393669f6&chksm=fdded758caa95e4efc39d9d4bcbafdc4c491b7894b951bedd37f884bb846f757757e0ff4cbd0&scene=21#wechat_redirect) 228 | - [数据库密码配置项都不加密?心也太大了!](https://mp.weixin.qq.com/s/CTDEFxTKdk0qxK9VNSEIqw) 229 | - [谁要是再敢用Map传参,我过去就是一JIO](https://mp.weixin.qq.com/s/AdtUX9davFH-C60gBypnoA) 230 | 231 | - 前后端分离 232 | 233 | - [这次要讲不清前后端分离,我都怎么地!](https://mp.weixin.qq.com/s/Y0z-3r_Mdm-etCwa0GmQmQ) 234 | - [前后端分离的接口规范,我们是这样做的!](https://mp.weixin.qq.com/s/zAOYAcR-6DEJU_s0qXe91g) 235 | - [前后端分离式开发:高效协作10板斧](https://mp.weixin.qq.com/s/niYHlrCDIkA1NqPVI_VJ8w) 236 | - [前后端都分离了,该搞个好用的API管理系统了!](https://mp.weixin.qq.com/s/Ahs6fnIfFVVPOn3NZpIsNA) 237 | 238 | - 微服务 239 | 240 | * [RPC框架实践之:Apache Thrift](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483777&idx=1&sn=f15f86fd0cde1855fec1f6ad2098b331&chksm=fdded745caa95e53bbcc8ccaf495dc1a4abb64412cc6ea60989c8cafd138d475fae073b87011&scene=21#wechat_redirect) 241 | * [RPC框架实践之:Google gRPC](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483780&idx=1&sn=e04264df80209244f8e263ef0931d134&chksm=fdded740caa95e56190918108985795439a277a88e054c119b3cb63a92a8e0899943d9f3e02b&scene=21#wechat_redirect) 242 | * [微服务调用链追踪中心搭建](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483764&idx=1&sn=964629a4e1d42d84047986529376eb28&chksm=fdded7b0caa95ea6a038c623f8813c239e3c6cf87a6cd3818277369f6c287a6833d7826b9bdd&scene=21#wechat_redirect) 243 | * [利用Zipkin追踪Mysql数据库调用链](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483774&idx=1&sn=18b144913d593af54f5e60a5a1353897&chksm=fdded7bacaa95eac39e1d29152a32a57e876bb227c37465c39672418d0cb392da6f9ed48cf7c&scene=21#wechat_redirect) 244 | * [Spring Cloud Feign的两种使用姿势](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483887&idx=1&sn=6d4b191dc992ea27bf8602eefd323383&chksm=fdded72bcaa95e3ddbe74c3c1cebd524d17dd6e58c01e387ce04d3994bac694b40c505732441&scene=21#wechat_redirect) 245 | * [Spring Cloud Eureka Server高可用之:在线扩容](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483902&idx=1&sn=9b3a26473bda9ac4a109f844e3644aea&chksm=fdded73acaa95e2c25b68f638eb174108b1d53c2944f28ba82588142065af477ce4262ac09db&scene=21#wechat_redirect) 246 | * [Eureka Server 开启Spring Security Basic认证](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483954&idx=1&sn=feb4559a3b3f44915fadd18090e491a0&chksm=fdded4f6caa95de08eb0b4e0006abc1a6c1be1f50d56567f223717a0de667a9dd10f3d7655eb&scene=21#wechat_redirect)[](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483973&idx=1&sn=e022ca0c0962c07d4de1ca9770713cb9&chksm=fdded481caa95d97c4cb055f7bb692199a5bee8ccc1dfd9f787990f8cbc09a25a5ec9a1b2964&scene=21#wechat_redirect) 247 | * [Eureka Server启用 https服务指北](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483973&idx=1&sn=e022ca0c0962c07d4de1ca9770713cb9&chksm=fdded481caa95d97c4cb055f7bb692199a5bee8ccc1dfd9f787990f8cbc09a25a5ec9a1b2964&scene=21#wechat_redirect) 248 | 249 | - Docker容器/集群 250 | 251 | * [利用ELK搭建Docker容器化应用日志中心](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247484928&idx=2&sn=4db40348f22f82b1106122cafbd77c33&chksm=fdded0c4caa959d25f914c79849cdef56045ce53ce18256c26fad0b9d967b575e4e9902da211&scene=21#wechat_redirect) 252 | * [Docker容器可视化监控中心搭建](https://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483763&idx=1&sn=6ceb9e73540b5016dadfb212636b3855&scene=21#wechat_redirect) 253 | * [Docker容器跨主机通信之:直接路由方式](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483798&idx=1&sn=fd8f78d60d1dc6e4da3359dbf6a14753&chksm=fdded752caa95e44e1cf62f5dc373a49d93426c9800a5343b1959a12a5b1fdb4958b2ee746c1&scene=21#wechat_redirect) 254 | * [利用TICK搭建Docker容器可视化监控中心](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483810&idx=1&sn=51a4cdb03e54348e7736ea47fae04a96&chksm=fdded766caa95e70e14dba33a51224c319219852e1618bbefb380f1b9406b1d19f8563a66bf8&scene=21#wechat_redirect) 255 | * [编写高效Dockerfile的几条准则](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483813&idx=1&sn=b0b87a7ec8816f53fd19142424682de0&chksm=fdded761caa95e775957e59ed0eccd913162d776f917f44711e4833d541c9c24d1db616f1334&scene=21#wechat_redirect) 256 | * [利用 Kubeadm部署 Kubernetes 1.13.1 集群实践录](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483982&idx=1&sn=3af0acac7cc213ff34a5710b21efef15&chksm=fdded48acaa95d9c6b3fd8b3d030890fa45c7be9bcdf44595dbfc2d3421c815deceadd1764f8&scene=21#wechat_redirect) 257 | * [Docker Swarm的前世今生](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483801&idx=1&sn=6e482b69f46ee620c17309d7d88e4cd9&chksm=fdded75dcaa95e4b2bd4fc7a72bff0008f55c4f8d69003c6924b6b573a76a41c90b311596c51&scene=21#wechat_redirect) 258 | * [Docker Swarm集群初探]() 259 | * [利用K8S技术栈打造个人私有云(连载之:初章)](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483699&idx=1&sn=57b84f4ec72c8a578934cdb4225e6fe7&chksm=fdded7f7caa95ee198652c295b48b74565fd244afc4dccc0551b036c8216caab0397a1342d99&scene=21#wechat_redirect) 260 | * [利用K8S技术栈打造个人私有云(连载之:K8S集群搭建)](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483755&idx=1&sn=92a547c579aeacf1db9a8f0e56601b52&chksm=fdded7afcaa95eb9d6aa6cf323bff1df46692fc6a6672e0a483105f091ddf9670fb06d034e2a&scene=21#wechat_redirect) 261 | * [利用K8S技术栈打造个人私有云(连载之:K8S环境理解和练手)](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483758&idx=1&sn=629b6219a06374b2050703b9549037fa&chksm=fdded7aacaa95ebc9a3e88e839515b13109752c26c586032ae60219d2c3b24e13385e1bcd37c&scene=21#wechat_redirect) 262 | * [利用K8S技术栈打造个人私有云(连载之:基础镜像制作与实验)](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483759&idx=1&sn=8403d42fe1769a252f9ee2997fc2f561&chksm=fdded7abcaa95ebd8cdae86f4d692f1f6e92daab74dbbd8c56c6db8fe6aa2a3616ccce1eebb1&scene=21#wechat_redirect) 263 | * [利用K8S技术栈打造个人私有云(连载之:K8S资源控制)](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483760&idx=1&sn=d44f2c744ccdc965fb6c7e4d9efe9f92&chksm=fdded7b4caa95ea278d7363b4b4788d84914b915422a9cc98e7936c3bce0c7ce1197abfac13f&scene=21#wechat_redirect) 264 | 265 | - 缓存/中间件/运维 266 | 267 | * [Redis字符串类型内部编码剖析](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483838&idx=1&sn=d8dd3eff36d1323811362a01c272c667&chksm=fdded77acaa95e6c8119ed796dd9f2e0f085b7a00f2f38872df8ca45f8bc0d1becfa487b93b8&scene=21#wechat_redirect) 268 | * [Redis 哈希结构内存模型剖析](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483862&idx=1&sn=63effdf595d75bceef4bb9a1cb766d5c&chksm=fdded712caa95e04c36d8555f249fecd1a860f3ac50823c1054ee2b4cacb9f9f06740c48651b&scene=21#wechat_redirect) 269 | * [你可能没有细究过的TCP/IP](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483819&idx=1&sn=e7a5dc93a94ea6e9ce297ca7a1a187dc&chksm=fdded76fcaa95e79a907517c83f6f1d9475a6c87e8ab1a2995e05e75ca823009044eb1d253f4&scene=21#wechat_redirect) 270 | * [Nginx服务器开箱体验](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483783&idx=1&sn=1e552ee01b50cde1df32c07db8e7b4ea&chksm=fdded743caa95e55a62c5b216795be61785265daf6a23d803e4566ba50253c240544b87971e3&scene=21#wechat_redirect) 271 | * [从一份配置清单详解Nginx服务器配置](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483807&idx=1&sn=e3a164701c2f6e0f3cf91bd25d595479&chksm=fdded75bcaa95e4d857e5f4e040f37b7c3d8f3b301856493419498b6e54d8a43addfc25e7505&scene=21#wechat_redirect) 272 | * [基于代理的数据库分库分表框架 Mycat实践](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483977&idx=1&sn=c739684c8a97ef3ec222e4fc76b2a2c1&chksm=fdded48dcaa95d9b1e47a8851262a81472ffe80e3f91d1d327e1dd71e11349defeb34a8726b8&scene=21#wechat_redirect) 273 | * [Jenkins长大了,Pipeline该用起来了!](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247484886&idx=2&sn=46d651172e2426760c7fe1675f1ed73a&chksm=fdded312caa95a04430b2caaf6b73e09ca963109d91224c4d7fdb544c6ae72bf90dad3b72ab7&scene=21#wechat_redirect) 274 | * [一文详解Linux系统常用监控工具](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483877&idx=1&sn=113867c83c0cecf5781a9e1a7f91bdd1&chksm=fdded721caa95e37f757660e7f14775ac55e4a72f9c24b119af7ef83ca7587ceb53f22298c99&scene=21#wechat_redirect) 275 | * [一文上手 Elasticsearch常用可视化管理工具](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483913&idx=1&sn=254e99832da662cd5dc7af57bfb0081b&chksm=fdded4cdcaa95ddbf867ce83b2a4c48aa497d6b61b087ba9111b040dfcfaab1f8c9aa34f2d53&scene=21#wechat_redirect) 276 | * [从一份定义文件详解ELK中Logstash插件结构](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483825&idx=1&sn=51bfd85095f7ba287fea388294169f0e&chksm=fdded775caa95e63e34796dcc26326d3c88fe1def3a4df62d5bf7711de9b0aaba2a773233567&scene=21#wechat_redirect) 277 | * [Elasticsearch 索引的映射配置详解](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483844&idx=1&sn=77e4651389efebcad361467e4dc995e4&chksm=fdded700caa95e163ed9e86e96d8bb5e467e8e6c36cdb905d6eb291c6e49ebd084ec51ce36cf&scene=21#wechat_redirect) 278 | * [CentOS7 上搭建多节点 Elasticsearch集群](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483921&idx=1&sn=3b29a77f6dd9faa8ed4410dec7705289&chksm=fdded4d5caa95dc3a4cd5ab040a1de5ef21c8e77dd15c9554d1e88ffa19a96d286c3f526627e&scene=21#wechat_redirect) 279 | * [轻量级 memcached缓存代理 twemproxy实践](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247483945&idx=1&sn=00633aed7adecf6fc71289758226caed&chksm=fdded4edcaa95dfbe771cf97b6056c725e5c7a2d835b41589f52b97f261d63f807ff06e26091&scene=21#wechat_redirect) 280 | * [前后端都分离了,该搞个好用的API管理系统了!](http://mp.weixin.qq.com/s?__biz=MzU4ODI1MjA3NQ==&mid=2247484489&idx=1&sn=8d59a12d27de5c50776d1a9967890a7e&chksm=fdded28dcaa95b9b1798009f7b9df7f0381573ad52d7903361687796ca4a7b071024e0085e1e&scene=21#wechat_redirect) 281 | 282 | --- 283 | ## 看源码 284 | 285 | - [Java(JDK)源码阅读环境搭建](https://mp.weixin.qq.com/s/K0ehqbxrzSz07nqnqRvn5A) 286 | - Spring Boot源码阅读调试环境搭建 287 | - Redis源码阅读调试环境搭建 288 | 289 | 290 | 291 | --- 292 | # 面试相关 293 | 294 | --- 295 | ### 面试题分享 296 | 297 | - [Java基础知识面试题大集合](https://mp.weixin.qq.com/s/f-qIQGbzwHcW5Ur51rCqgg) 298 | - [Java虚拟机(JVM)面试题大集合](https://mp.weixin.qq.com/s/T2DqgJ9-0QiRZQYUeR3c8w) 299 | - [Java并发和多线程基础面试题大集合](https://mp.weixin.qq.com/s/pIVf97W4DuAPNxq6zgRvsQ) 300 | - [计网 TCP/UDP 部分高频面试题大集合](https://mp.weixin.qq.com/s/SZ8XcOzZCVJG_P1_O4OtWQ) 301 | - [面试常问的20个Linux命令](https://mp.weixin.qq.com/s/3NI4FWuOfYMJBiKqqnpqMA) 302 | - [Spring 经典面试题大集合](https://mp.weixin.qq.com/s/q4CajkpSUC8TCgv55VK5aQ) 303 | - [Spring Boot基础面试题大集合](https://mp.weixin.qq.com/s/cLh9xCDkVG0KV-uaX8PkNw) 304 | - [Spring Cloud基础面试题大集合](https://mp.weixin.qq.com/s/g0br3PfTmm8C_nkKbzE_ig) 305 | - [C语言/C++基础面试知识大集合](https://mp.weixin.qq.com/s/7mx58Idw1pL0MjPIFBUB1Q) 306 | 307 | ### 面经分享 308 | 309 | - [小伙伴现身说法:Linux后台开发该如何准备](https://mp.weixin.qq.com/s/joFBDntI9PmyVRiKPHwpRg) 310 | - [二本无实习上岸滴滴京东58复盘(上)](https://mp.weixin.qq.com/s/V0nRwXQlkNBnBneERZQURQ) 311 | - [二本无实习上岸滴滴京东58·复盘(中)](https://mp.weixin.qq.com/s/BnbBQGL-S2sGdRtNh7DN1A) 312 | - [小伙伴面经分享(一):深信服(含答案)](https://mp.weixin.qq.com/s/3YfKHo2lW-NC1tEA_u-mlQ) 313 | - [小伙伴面经分享(二):京东(含答案)](https://mp.weixin.qq.com/s/sc-7rc6obYZNFcc1mjNPAg) 314 | - [一位程序媛的秋招软件开发岗面试经历](https://mp.weixin.qq.com/s/jAPYcMULqQl6AE_Vv7BZhQ) 315 | - [写简历→面试→谈薪:一绿向北](https://mp.weixin.qq.com/s/0RoFVAezxW8cl3bjlAHbQg) 316 | 317 | --- 318 | ### 简历模板 319 | 320 | - [简历模板分享](https://mp.weixin.qq.com/s/-qlU2-a-vvXWOHXzKHRm6A) 321 | 322 | ### 城市/公司选择 323 | 324 | - [一二线城市知名IT互联网公司名单](https://mp.weixin.qq.com/s/VFocc914mGTrDzodI-MF1A) 325 | 326 | --- 327 | # 资源推荐 328 | 329 | - [我的Java后端开发小书架分享](https://mp.weixin.qq.com/s/voNG467kSVfR-yjwelQhow) 330 | - [这么多编程学习网站,总有一个适合你吧](https://mp.weixin.qq.com/s/L9lbKUJHTThCoOC8d6FGpg) 331 | - [阿里巴巴Java开发手册分享](https://mp.weixin.qq.com/s/yncEfIOxWeNj7asCLPwrUw) 332 | - [简历模板分享](https://mp.weixin.qq.com/s/-qlU2-a-vvXWOHXzKHRm6A) 333 | 334 | --- 335 | # 其他技术文章 336 | 337 | - [扫码付款背后的原理居然是这样](https://mp.weixin.qq.com/s/RjVLsAhiMIYzsMhXJiReNg) 338 | 339 | 340 | 341 | --- 342 | # 关于作者 343 | 344 | --- 345 | ### 自我介绍 346 | 347 | - [自我介绍](https://mp.weixin.qq.com/s/ePhaYezFblgt0NgbvtWqww) 348 | 349 | --- 350 | ### 联系方式 351 | 352 | - [微信公众号私信联系我](https://mp.weixin.qq.com/s/ePhaYezFblgt0NgbvtWqww) 353 | 354 | --- 355 | ### 我的心路历程 356 | 357 | - [我的毕业季,没有一点点仪式感](https://mp.weixin.qq.com/s/0iSzqJBj7YHkijGxbFUqCQ) 358 | - [既然硕士毕业也去搞开发,那我还读个喵的研?](https://mp.weixin.qq.com/s/_Kt9OmaBVDDj6S7rsdC-Aw) 359 | - [二线城市的程序员活得好吗?](https://mp.weixin.qq.com/s/gOo8ztVLdXp3m_rvBozQpQ) 360 | - [自学编程的八大误区!克服它!](https://mp.weixin.qq.com/s/r_vm7lA2Ul_ZFhkx60wplg) 361 | - [我的本科回忆录:从迷茫自卑到保送华科](https://mp.weixin.qq.com/s/t9F6Z-DrybWLUxVrPTRPJw) 362 | - [聊一聊加班多该如何有效地自我提升](https://mp.weixin.qq.com/s/2mt8NGW0fhx-J1R2GyvKKQ) 363 | - [到底要不要考研?](https://mp.weixin.qq.com/s/pwInIR-h1gkPXGuu4u1aWw) 364 | - [昨夜,我梦回武汉 . . .](https://mp.weixin.qq.com/s/lfGqTBuyRSiA9NL-8Na-xg) 365 | - [转行的路,走起来其实有点累...](https://mp.weixin.qq.com/s/FPreCde-JHl2D6HZDGK7qg) 366 | - [来B站一年,我活成了人的模样!](https://mp.weixin.qq.com/s/-RWgqMi2iKFUQGWbgyyo3w) 367 | - [快30岁的我,终于赚到人生第一个10W!](https://mp.weixin.qq.com/s/i-EFuFb7yPpoOidme18EWA) 368 | 369 | 370 | --- 371 | ### 写作之路 372 | 373 | - [坚持写博客三年了,分享几个私藏小工具](https://mp.weixin.qq.com/s/T-b7GfBoMGRuOqtp3T_HaA) 374 | - [Win10下Hexo博客搭建教程,及阿里云服务器部署实战](https://mp.weixin.qq.com/s/JTTUYJTvtdT6X2fvLUBFZg) 375 | - [用Github+docsify,我花了半天就搭好了个人博客](https://mp.weixin.qq.com/s/grsv_rx3DL862M8dBsHd_A) 376 | 377 | 378 | 379 | 380 | --- 381 | # 闲聊/侃大山 382 | 383 | - [如何优雅地向老师表达:我这周任务没啥进展?](https://mp.weixin.qq.com/s/gbIGNXIkOpw8tQ5aIoJMtw) 384 | - [C语言为什么不会过时](https://mp.weixin.qq.com/s/ltcfVu__ajU_i9wq77OnJg) 385 | - [好不容易读个研,遇到放羊的导师可咋整?](https://mp.weixin.qq.com/s/OkxMe3Eaywx-KF9tBmjf-Q) 386 | - [程序员小猪队友行为大赏](https://mp.weixin.qq.com/s/1dJO8VJ6GaZykv33IUslkw) 387 | - [研究生/专升本都扩招,我们没有理由放弃!](https://mp.weixin.qq.com/s/MvZFLDHItPR7InzrtYRL5w) 388 | - [实不相瞒,在家远程办公15天,我有点自闭](https://mp.weixin.qq.com/s/gJBlu5gXL5vqYWG6ggisRw) 389 | - [2020开年,C语言重回巅峰王座!](https://mp.weixin.qq.com/s/fW-xZ2vJTaZa6XgF_LlMDA) 390 | - [膜拜!感谢大佬们赏饭吃,向你们致敬!](https://mp.weixin.qq.com/s/oyK1nLSBZStKT1C3NiASEg) 391 | - [嗯,用了一下Kotlin编程语言,真香!](https://mp.weixin.qq.com/s/xYG355L4YXRkKnOvv23umw) 392 | - [程序员竟也会玩浪漫?【非程序员勿进】](https://mp.weixin.qq.com/s/vI7EGqo7YbljRdZn2nUSMQ) 393 | - [真实IT领域2/8法则,扎心了!](https://mp.weixin.qq.com/s/wd9QkLsrygO8ADW6heJg8w) 394 | 395 | --- 396 | 397 | 398 | 399 |

400 | 401 |

402 | IT咨询、获取更新、领取资源,直接扫码私我即可! 403 |

404 | 405 |

406 | 407 | ![](https://codesheep.oss-cn-hangzhou.aliyuncs.com/blog/20200501190828.png) 408 | 409 | -------------------------------------------------------------------------------- /docs/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hansonwang99/JavaCollection/cf9f5fa7c5c0b0c48f3164351b88cdf48533dbe8/docs/.DS_Store -------------------------------------------------------------------------------- /docs/kubernetes/dashboard-user-role.yaml: -------------------------------------------------------------------------------- 1 | kind: ClusterRoleBinding 2 | apiVersion: rbac.authorization.k8s.io/v1beta1 3 | metadata: 4 | name: admin 5 | annotations: 6 | rbac.authorization.kubernetes.io/autoupdate: "true" 7 | roleRef: 8 | kind: ClusterRole 9 | name: cluster-admin 10 | apiGroup: rbac.authorization.k8s.io 11 | subjects: 12 | - kind: ServiceAccount 13 | name: admin 14 | namespace: kube-system 15 | --- 16 | apiVersion: v1 17 | kind: ServiceAccount 18 | metadata: 19 | name: admin 20 | namespace: kube-system 21 | labels: 22 | kubernetes.io/cluster-service: "true" 23 | addonmanager.kubernetes.io/mode: Reconcile 24 | -------------------------------------------------------------------------------- /docs/kubernetes/dashboard.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2017 The Kubernetes Authors. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # ------------------- Dashboard Secret ------------------- # 16 | 17 | apiVersion: v1 18 | kind: Secret 19 | metadata: 20 | labels: 21 | k8s-app: kubernetes-dashboard 22 | name: kubernetes-dashboard-certs 23 | namespace: kube-system 24 | type: Opaque 25 | 26 | --- 27 | # ------------------- Dashboard Service Account ------------------- # 28 | 29 | apiVersion: v1 30 | kind: ServiceAccount 31 | metadata: 32 | labels: 33 | k8s-app: kubernetes-dashboard 34 | name: kubernetes-dashboard 35 | namespace: kube-system 36 | 37 | --- 38 | # ------------------- Dashboard Role & Role Binding ------------------- # 39 | 40 | kind: Role 41 | apiVersion: rbac.authorization.k8s.io/v1 42 | metadata: 43 | name: kubernetes-dashboard-minimal 44 | namespace: kube-system 45 | rules: 46 | # Allow Dashboard to create 'kubernetes-dashboard-key-holder' secret. 47 | - apiGroups: [""] 48 | resources: ["secrets"] 49 | verbs: ["create"] 50 | # Allow Dashboard to create 'kubernetes-dashboard-settings' config map. 51 | - apiGroups: [""] 52 | resources: ["configmaps"] 53 | verbs: ["create"] 54 | # Allow Dashboard to get, update and delete Dashboard exclusive secrets. 55 | - apiGroups: [""] 56 | resources: ["secrets"] 57 | resourceNames: ["kubernetes-dashboard-key-holder", "kubernetes-dashboard-certs"] 58 | verbs: ["get", "update", "delete"] 59 | # Allow Dashboard to get and update 'kubernetes-dashboard-settings' config map. 60 | - apiGroups: [""] 61 | resources: ["configmaps"] 62 | resourceNames: ["kubernetes-dashboard-settings"] 63 | verbs: ["get", "update"] 64 | # Allow Dashboard to get metrics from heapster. 65 | - apiGroups: [""] 66 | resources: ["services"] 67 | resourceNames: ["heapster"] 68 | verbs: ["proxy"] 69 | - apiGroups: [""] 70 | resources: ["services/proxy"] 71 | resourceNames: ["heapster", "http:heapster:", "https:heapster:"] 72 | verbs: ["get"] 73 | 74 | --- 75 | apiVersion: rbac.authorization.k8s.io/v1 76 | kind: RoleBinding 77 | metadata: 78 | name: kubernetes-dashboard-minimal 79 | namespace: kube-system 80 | roleRef: 81 | apiGroup: rbac.authorization.k8s.io 82 | kind: Role 83 | name: kubernetes-dashboard-minimal 84 | subjects: 85 | - kind: ServiceAccount 86 | name: kubernetes-dashboard 87 | namespace: kube-system 88 | 89 | --- 90 | # ------------------- Dashboard Deployment ------------------- # 91 | 92 | kind: Deployment 93 | apiVersion: apps/v1beta2 94 | metadata: 95 | labels: 96 | k8s-app: kubernetes-dashboard 97 | name: kubernetes-dashboard 98 | namespace: kube-system 99 | spec: 100 | replicas: 1 101 | revisionHistoryLimit: 10 102 | selector: 103 | matchLabels: 104 | k8s-app: kubernetes-dashboard 105 | template: 106 | metadata: 107 | labels: 108 | k8s-app: kubernetes-dashboard 109 | spec: 110 | containers: 111 | - name: kubernetes-dashboard 112 | image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.0 113 | ports: 114 | - containerPort: 8443 115 | protocol: TCP 116 | args: 117 | - --auto-generate-certificates 118 | - --token-ttl=5400 119 | # Uncomment the following line to manually specify Kubernetes API server Host 120 | # If not specified, Dashboard will attempt to auto discover the API server and connect 121 | # to it. Uncomment only if the default does not work. 122 | # - --apiserver-host=http://my-address:port 123 | volumeMounts: 124 | - name: kubernetes-dashboard-certs 125 | mountPath: /certs 126 | # Create on-disk volume to store exec logs 127 | - mountPath: /tmp 128 | name: tmp-volume 129 | livenessProbe: 130 | httpGet: 131 | scheme: HTTPS 132 | path: / 133 | port: 8443 134 | initialDelaySeconds: 30 135 | timeoutSeconds: 30 136 | volumes: 137 | - name: kubernetes-dashboard-certs 138 | hostPath: 139 | path: /home/share/certs 140 | type: Directory 141 | - name: tmp-volume 142 | emptyDir: {} 143 | serviceAccountName: kubernetes-dashboard 144 | # Comment the following tolerations if Dashboard must not be deployed on master 145 | tolerations: 146 | - key: node-role.kubernetes.io/master 147 | effect: NoSchedule 148 | 149 | --- 150 | # ------------------- Dashboard Service ------------------- # 151 | 152 | kind: Service 153 | apiVersion: v1 154 | metadata: 155 | labels: 156 | k8s-app: kubernetes-dashboard 157 | name: kubernetes-dashboard 158 | namespace: kube-system 159 | spec: 160 | ports: 161 | - port: 443 162 | targetPort: 8443 163 | nodePort: 31234 164 | selector: 165 | k8s-app: kubernetes-dashboard 166 | type: NodePort 167 | -------------------------------------------------------------------------------- /docs/kubernetes/kube-flannel.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | kind: ClusterRole 3 | apiVersion: rbac.authorization.k8s.io/v1beta1 4 | metadata: 5 | name: flannel 6 | rules: 7 | - apiGroups: 8 | - "" 9 | resources: 10 | - pods 11 | verbs: 12 | - get 13 | - apiGroups: 14 | - "" 15 | resources: 16 | - nodes 17 | verbs: 18 | - list 19 | - watch 20 | - apiGroups: 21 | - "" 22 | resources: 23 | - nodes/status 24 | verbs: 25 | - patch 26 | --- 27 | kind: ClusterRoleBinding 28 | apiVersion: rbac.authorization.k8s.io/v1beta1 29 | metadata: 30 | name: flannel 31 | roleRef: 32 | apiGroup: rbac.authorization.k8s.io 33 | kind: ClusterRole 34 | name: flannel 35 | subjects: 36 | - kind: ServiceAccount 37 | name: flannel 38 | namespace: kube-system 39 | --- 40 | apiVersion: v1 41 | kind: ServiceAccount 42 | metadata: 43 | name: flannel 44 | namespace: kube-system 45 | --- 46 | kind: ConfigMap 47 | apiVersion: v1 48 | metadata: 49 | name: kube-flannel-cfg 50 | namespace: kube-system 51 | labels: 52 | tier: node 53 | app: flannel 54 | data: 55 | cni-conf.json: | 56 | { 57 | "name": "cbr0", 58 | "plugins": [ 59 | { 60 | "type": "flannel", 61 | "delegate": { 62 | "hairpinMode": true, 63 | "isDefaultGateway": true 64 | } 65 | }, 66 | { 67 | "type": "portmap", 68 | "capabilities": { 69 | "portMappings": true 70 | } 71 | } 72 | ] 73 | } 74 | net-conf.json: | 75 | { 76 | "Network": "10.244.0.0/16", 77 | "Backend": { 78 | "Type": "vxlan" 79 | } 80 | } 81 | --- 82 | apiVersion: extensions/v1beta1 83 | kind: DaemonSet 84 | metadata: 85 | name: kube-flannel-ds-amd64 86 | namespace: kube-system 87 | labels: 88 | tier: node 89 | app: flannel 90 | spec: 91 | template: 92 | metadata: 93 | labels: 94 | tier: node 95 | app: flannel 96 | spec: 97 | hostNetwork: true 98 | nodeSelector: 99 | beta.kubernetes.io/arch: amd64 100 | tolerations: 101 | - operator: Exists 102 | effect: NoSchedule 103 | serviceAccountName: flannel 104 | initContainers: 105 | - name: install-cni 106 | image: quay.io/coreos/flannel:v0.10.0-amd64 107 | command: 108 | - cp 109 | args: 110 | - -f 111 | - /etc/kube-flannel/cni-conf.json 112 | - /etc/cni/net.d/10-flannel.conflist 113 | volumeMounts: 114 | - name: cni 115 | mountPath: /etc/cni/net.d 116 | - name: flannel-cfg 117 | mountPath: /etc/kube-flannel/ 118 | containers: 119 | - name: kube-flannel 120 | image: quay.io/coreos/flannel:v0.10.0-amd64 121 | command: 122 | - /opt/bin/flanneld 123 | args: 124 | - --ip-masq 125 | - --kube-subnet-mgr 126 | resources: 127 | requests: 128 | cpu: "100m" 129 | memory: "50Mi" 130 | limits: 131 | cpu: "100m" 132 | memory: "50Mi" 133 | securityContext: 134 | privileged: true 135 | env: 136 | - name: POD_NAME 137 | valueFrom: 138 | fieldRef: 139 | fieldPath: metadata.name 140 | - name: POD_NAMESPACE 141 | valueFrom: 142 | fieldRef: 143 | fieldPath: metadata.namespace 144 | volumeMounts: 145 | - name: run 146 | mountPath: /run 147 | - name: flannel-cfg 148 | mountPath: /etc/kube-flannel/ 149 | volumes: 150 | - name: run 151 | hostPath: 152 | path: /run 153 | - name: cni 154 | hostPath: 155 | path: /etc/cni/net.d 156 | - name: flannel-cfg 157 | configMap: 158 | name: kube-flannel-cfg 159 | --- 160 | apiVersion: extensions/v1beta1 161 | kind: DaemonSet 162 | metadata: 163 | name: kube-flannel-ds-arm64 164 | namespace: kube-system 165 | labels: 166 | tier: node 167 | app: flannel 168 | spec: 169 | template: 170 | metadata: 171 | labels: 172 | tier: node 173 | app: flannel 174 | spec: 175 | hostNetwork: true 176 | nodeSelector: 177 | beta.kubernetes.io/arch: arm64 178 | tolerations: 179 | - operator: Exists 180 | effect: NoSchedule 181 | serviceAccountName: flannel 182 | initContainers: 183 | - name: install-cni 184 | image: quay.io/coreos/flannel:v0.10.0-arm64 185 | command: 186 | - cp 187 | args: 188 | - -f 189 | - /etc/kube-flannel/cni-conf.json 190 | - /etc/cni/net.d/10-flannel.conflist 191 | volumeMounts: 192 | - name: cni 193 | mountPath: /etc/cni/net.d 194 | - name: flannel-cfg 195 | mountPath: /etc/kube-flannel/ 196 | containers: 197 | - name: kube-flannel 198 | image: quay.io/coreos/flannel:v0.10.0-arm64 199 | command: 200 | - /opt/bin/flanneld 201 | args: 202 | - --ip-masq 203 | - --kube-subnet-mgr 204 | resources: 205 | requests: 206 | cpu: "100m" 207 | memory: "50Mi" 208 | limits: 209 | cpu: "100m" 210 | memory: "50Mi" 211 | securityContext: 212 | privileged: true 213 | env: 214 | - name: POD_NAME 215 | valueFrom: 216 | fieldRef: 217 | fieldPath: metadata.name 218 | - name: POD_NAMESPACE 219 | valueFrom: 220 | fieldRef: 221 | fieldPath: metadata.namespace 222 | volumeMounts: 223 | - name: run 224 | mountPath: /run 225 | - name: flannel-cfg 226 | mountPath: /etc/kube-flannel/ 227 | volumes: 228 | - name: run 229 | hostPath: 230 | path: /run 231 | - name: cni 232 | hostPath: 233 | path: /etc/cni/net.d 234 | - name: flannel-cfg 235 | configMap: 236 | name: kube-flannel-cfg 237 | --- 238 | apiVersion: extensions/v1beta1 239 | kind: DaemonSet 240 | metadata: 241 | name: kube-flannel-ds-arm 242 | namespace: kube-system 243 | labels: 244 | tier: node 245 | app: flannel 246 | spec: 247 | template: 248 | metadata: 249 | labels: 250 | tier: node 251 | app: flannel 252 | spec: 253 | hostNetwork: true 254 | nodeSelector: 255 | beta.kubernetes.io/arch: arm 256 | tolerations: 257 | - operator: Exists 258 | effect: NoSchedule 259 | serviceAccountName: flannel 260 | initContainers: 261 | - name: install-cni 262 | image: quay.io/coreos/flannel:v0.10.0-arm 263 | command: 264 | - cp 265 | args: 266 | - -f 267 | - /etc/kube-flannel/cni-conf.json 268 | - /etc/cni/net.d/10-flannel.conflist 269 | volumeMounts: 270 | - name: cni 271 | mountPath: /etc/cni/net.d 272 | - name: flannel-cfg 273 | mountPath: /etc/kube-flannel/ 274 | containers: 275 | - name: kube-flannel 276 | image: quay.io/coreos/flannel:v0.10.0-arm 277 | command: 278 | - /opt/bin/flanneld 279 | args: 280 | - --ip-masq 281 | - --kube-subnet-mgr 282 | resources: 283 | requests: 284 | cpu: "100m" 285 | memory: "50Mi" 286 | limits: 287 | cpu: "100m" 288 | memory: "50Mi" 289 | securityContext: 290 | privileged: true 291 | env: 292 | - name: POD_NAME 293 | valueFrom: 294 | fieldRef: 295 | fieldPath: metadata.name 296 | - name: POD_NAMESPACE 297 | valueFrom: 298 | fieldRef: 299 | fieldPath: metadata.namespace 300 | volumeMounts: 301 | - name: run 302 | mountPath: /run 303 | - name: flannel-cfg 304 | mountPath: /etc/kube-flannel/ 305 | volumes: 306 | - name: run 307 | hostPath: 308 | path: /run 309 | - name: cni 310 | hostPath: 311 | path: /etc/cni/net.d 312 | - name: flannel-cfg 313 | configMap: 314 | name: kube-flannel-cfg 315 | --- 316 | apiVersion: extensions/v1beta1 317 | kind: DaemonSet 318 | metadata: 319 | name: kube-flannel-ds-ppc64le 320 | namespace: kube-system 321 | labels: 322 | tier: node 323 | app: flannel 324 | spec: 325 | template: 326 | metadata: 327 | labels: 328 | tier: node 329 | app: flannel 330 | spec: 331 | hostNetwork: true 332 | nodeSelector: 333 | beta.kubernetes.io/arch: ppc64le 334 | tolerations: 335 | - operator: Exists 336 | effect: NoSchedule 337 | serviceAccountName: flannel 338 | initContainers: 339 | - name: install-cni 340 | image: quay.io/coreos/flannel:v0.10.0-ppc64le 341 | command: 342 | - cp 343 | args: 344 | - -f 345 | - /etc/kube-flannel/cni-conf.json 346 | - /etc/cni/net.d/10-flannel.conflist 347 | volumeMounts: 348 | - name: cni 349 | mountPath: /etc/cni/net.d 350 | - name: flannel-cfg 351 | mountPath: /etc/kube-flannel/ 352 | containers: 353 | - name: kube-flannel 354 | image: quay.io/coreos/flannel:v0.10.0-ppc64le 355 | command: 356 | - /opt/bin/flanneld 357 | args: 358 | - --ip-masq 359 | - --kube-subnet-mgr 360 | resources: 361 | requests: 362 | cpu: "100m" 363 | memory: "50Mi" 364 | limits: 365 | cpu: "100m" 366 | memory: "50Mi" 367 | securityContext: 368 | privileged: true 369 | env: 370 | - name: POD_NAME 371 | valueFrom: 372 | fieldRef: 373 | fieldPath: metadata.name 374 | - name: POD_NAMESPACE 375 | valueFrom: 376 | fieldRef: 377 | fieldPath: metadata.namespace 378 | volumeMounts: 379 | - name: run 380 | mountPath: /run 381 | - name: flannel-cfg 382 | mountPath: /etc/kube-flannel/ 383 | volumes: 384 | - name: run 385 | hostPath: 386 | path: /run 387 | - name: cni 388 | hostPath: 389 | path: /etc/cni/net.d 390 | - name: flannel-cfg 391 | configMap: 392 | name: kube-flannel-cfg 393 | --- 394 | apiVersion: extensions/v1beta1 395 | kind: DaemonSet 396 | metadata: 397 | name: kube-flannel-ds-s390x 398 | namespace: kube-system 399 | labels: 400 | tier: node 401 | app: flannel 402 | spec: 403 | template: 404 | metadata: 405 | labels: 406 | tier: node 407 | app: flannel 408 | spec: 409 | hostNetwork: true 410 | nodeSelector: 411 | beta.kubernetes.io/arch: s390x 412 | tolerations: 413 | - operator: Exists 414 | effect: NoSchedule 415 | serviceAccountName: flannel 416 | initContainers: 417 | - name: install-cni 418 | image: quay.io/coreos/flannel:v0.10.0-s390x 419 | command: 420 | - cp 421 | args: 422 | - -f 423 | - /etc/kube-flannel/cni-conf.json 424 | - /etc/cni/net.d/10-flannel.conflist 425 | volumeMounts: 426 | - name: cni 427 | mountPath: /etc/cni/net.d 428 | - name: flannel-cfg 429 | mountPath: /etc/kube-flannel/ 430 | containers: 431 | - name: kube-flannel 432 | image: quay.io/coreos/flannel:v0.10.0-s390x 433 | command: 434 | - /opt/bin/flanneld 435 | args: 436 | - --ip-masq 437 | - --kube-subnet-mgr 438 | resources: 439 | requests: 440 | cpu: "100m" 441 | memory: "50Mi" 442 | limits: 443 | cpu: "100m" 444 | memory: "50Mi" 445 | securityContext: 446 | privileged: true 447 | env: 448 | - name: POD_NAME 449 | valueFrom: 450 | fieldRef: 451 | fieldPath: metadata.name 452 | - name: POD_NAMESPACE 453 | valueFrom: 454 | fieldRef: 455 | fieldPath: metadata.namespace 456 | volumeMounts: 457 | - name: run 458 | mountPath: /run 459 | - name: flannel-cfg 460 | mountPath: /etc/kube-flannel/ 461 | volumes: 462 | - name: run 463 | hostPath: 464 | path: /run 465 | - name: cni 466 | hostPath: 467 | path: /etc/cni/net.d 468 | - name: flannel-cfg 469 | configMap: 470 | name: kube-flannel-cfg 471 | --------------------------------------------------------------------------------