diff --git a/README.md b/README.md
index af5d1af..9f0864e 100644
--- a/README.md
+++ b/README.md
@@ -36,7 +36,7 @@
---
# 学习路线
-- [Java后端开发学习路线](https://mp.weixin.qq.com/s/D5yHGclHsOXKa4DJ5xQJGg)
+- [Java后端开发学习路线](https://mp.weixin.qq.com/s/rAoamIey7cARMES7kfIaLw)
@@ -57,6 +57,7 @@
- [上次谁说要Java开源项目来着?来!](https://mp.weixin.qq.com/s/y59hmDbQj1QglVj90viZqw)
- [分享几款适合初学者的C语言/C++开源项目](https://mp.weixin.qq.com/s/bRNiqhZZXaoRwPEt8GIpLg)
- [吵着要学AI的小伙伴,可以看看这些牛批的开源项目](https://mp.weixin.qq.com/s/I9lr_SEg70OO_v-GOIUgjQ)
+- [再整理几个开源项目:练手/毕设/私活都不愁了](https://mp.weixin.qq.com/s/jjugnXIr3G0u7i9krbmmqg)
- [C/C++领域的练手开源项目,小伙伴们接好](https://mp.weixin.qq.com/s/fNgOqKlITKa4yTbULO2Atw)
- [5个值得学习和练手的企业级开源项目!](https://mp.weixin.qq.com/s/PmxVlkI9LUmnqqSk0Frqeg)
- [互联网开发十大顶级开源项目巡礼!](https://mp.weixin.qq.com/s/2cXCyl9rLNhFY1dDurkEMA)
@@ -65,6 +66,7 @@
---
# 书籍推荐
+- [我的Java后端开发小书架分享](https://mp.weixin.qq.com/s/voNG467kSVfR-yjwelQhow)
- [必读计算机编程好书推荐!程序员小伙搬出了他的书架!](https://www.bilibili.com/video/BV1kJ411W7pi)
- [自学C/C++书籍推荐(自学C/C++看书路线推荐)](https://www.bilibili.com/video/BV1ob411m76i)
@@ -76,21 +78,23 @@
- 基本功趣味学习
- - [这才是学编程要懂的基础!](https://mp.weixin.qq.com/s/ttncekujB82g88GRx3a6lQ)
- - [真有小伙伴不知道浮点数如何转二进制吗?](https://mp.weixin.qq.com/s/LVpvmBO0GY6TC4gwL_12Yw)
- - [编程坑太多,光一个List使用,就踩了5个](https://mp.weixin.qq.com/s/9bw2-pkuYSKEnstb4KGsqQ)
- [老大说:谁要再用double定义商品金额,就自己收拾东西走](https://mp.weixin.qq.com/s/UyYDt3HB8IO_AoSDLndhxA)
+ - [为什么我们要面向接口编程?!](https://mp.weixin.qq.com/s/Dg9LcKJBrabcnvC_6wga-A)
- [恕我直言,我怀疑你没怎么用过枚举](https://mp.weixin.qq.com/s/DgOr7cat8SP0zoY7Ke3toQ)
+ - [一文详解序列化和反序列化](https://mp.weixin.qq.com/s/0EfIUB9E-0Oh_Clwuxswuw)
- [对不起我拖后腿了!我才刚用上Java 11](https://mp.weixin.qq.com/s/kNMQp-vjVK6Fq07xalZkng)
- - [为什么我们要面向接口编程?!](https://mp.weixin.qq.com/s/Dg9LcKJBrabcnvC_6wga-A)
- [答应我,别再if/else走天下了可以吗](https://mp.weixin.qq.com/s/ufRf8DQQRYQI0q2VxG3hQg)
- - [答应我,别再if/else走天下了可以吗「C++ 篇」](https://mp.weixin.qq.com/s/iGqAZM7Ja_OzjH5AgS8geA)
+ - [答应我,别再if/else走天下了可以吗「C++ 版」](https://mp.weixin.qq.com/s/iGqAZM7Ja_OzjH5AgS8geA)
- [听说你只会用注解,不会自己写注解?](https://mp.weixin.qq.com/s/gdYysBB3aD_HmPyvEThFXw)
- [从一个面试题看程序员的几项基本功](https://mp.weixin.qq.com/s/dVgDv1bNH8ivO0Ft0FtmZg)
- [只因少写一个判空,我的代码上线后炸了!](https://mp.weixin.qq.com/s/RsC7peRsFaJAEcG2eTJb0Q)
- [以后要是再写for循环,我就捶自己](https://mp.weixin.qq.com/s/yI82juBiirJ56BZfGJezLw)
- [什么?你项目还在用Date表示时间?!](https://mp.weixin.qq.com/s/v-Va_GuSUGr9HVAW84kloQ)
- [面试官:为什么要重写hashcode和equals方法?](https://mp.weixin.qq.com/s/QZPezSruj0qvBUJEM4jB0g)
+ - [这才是学编程要懂的基础!](https://mp.weixin.qq.com/s/ttncekujB82g88GRx3a6lQ)
+ - [真有小伙伴不知道浮点数如何转二进制吗?](https://mp.weixin.qq.com/s/LVpvmBO0GY6TC4gwL_12Yw)
+ - [List使用踩坑记录](https://mp.weixin.qq.com/s/9bw2-pkuYSKEnstb4KGsqQ)
+ - [Map使用踩坑记录](https://mp.weixin.qq.com/s/D21mcfI4cxNf4D9ukjESog)
- 多线程/并发
@@ -107,6 +111,9 @@
- 数据结构和算法
+ - [24张图,九大数据结构安排得明明白白!](https://mp.weixin.qq.com/s/ZVwIUN-xf9FuxOFXW8H3Nw)
+ - [诸葛亮vs司马懿,排序算法大战谁能笑到最后?](https://mp.weixin.qq.com/s/za_MJY3-r9Gfiu3BJfej7Q)
+ - [十大经典排序算法大梳理 (动图+代码)](https://mp.weixin.qq.com/s/ekGdneZrMa23ALxt5mvKpQ)
- [数据结构里各种难啃的“树”,一文搞懂它](https://mp.weixin.qq.com/s/k4-RaW4ROlo6chSXsO_4AA)
- [一篇文章彻底学会递归思路解题!](https://mp.weixin.qq.com/s/-V0jBkPoZHYC2jLfSnQ6-g)
- 哈希算法详解
@@ -114,11 +121,13 @@
- 计算机网络(TCP/IP协议栈)
+ - [计网 IP 知识全家桶,45 张图一套带走](https://mp.weixin.qq.com/s/21Tk-8gxpDoH9DNWNYCWmA)
- [ping命令用得这么6,原理知道不?图解一波!](https://mp.weixin.qq.com/s/55bbQX2-SUNe6PEI9My5fA)
- [探究:一个数据包在网络中到底是怎么游走的?](https://mp.weixin.qq.com/s/07zloKKMUl-RHN6tWqZIJQ)
- [硬不硬你说了算!全图解被问千百遍的TCP三次握手和四次挥手面试题](https://mp.weixin.qq.com/s/lFnyBaaP3f0eNcKGW5RtCg)
- [硬核!30 张图解 HTTP 常见的面试题](https://mp.weixin.qq.com/s/FJGKObVnU61ve_ioejLrtw)
- [如果面试再问GET和POST区别,就把这篇甩给他](https://mp.weixin.qq.com/s/BraxnIUJF4JGtIep0YiovA)
+ - [计网 TCP/UDP 部分高频面试题大集合](https://mp.weixin.qq.com/s/SZ8XcOzZCVJG_P1_O4OtWQ)
- 操作系统
@@ -128,22 +137,36 @@
- [left join、right join和join,傻傻分不清?](https://mp.weixin.qq.com/s/o150rmPOgzUeafVTh-ESmQ)
- [数据库索引到底是什么](https://mp.weixin.qq.com/s/WMuxdG3ymNMWWDk1XhLwZQ)
+ - [数据库索引的原理和使用准则](https://mp.weixin.qq.com/s/4K3borSZXt-yc5t5UJnJpQ)
- 数据库锁机制
- 数据库事务特性与隔离级别详解
- SQL优化详解
- 基于代理的数据库分库分表框架 Mycat实践
+- 其他
+
+ - [UML大科普:一文梳理清 14种 UML图](https://mp.weixin.qq.com/s/o1P4z3u2Xphu_IyTUFT-2g)
+
---
### 工具和软件
+[【置顶1】熬10天夜,肝出了这个PDF版「软件安装手册」](https://mp.weixin.qq.com/s/YNOZSQ5smo1uGE5ZttUZ_w)
+
+[【置顶2】再肝两夜,写了个「服务器项目部署」实战PDF手册](https://mp.weixin.qq.com/s/JUJ6qu_ec3s1JmTxQt_V3g)
+
- Linux系统
- - [Linux环境都没有,怎么学编程?憋说了,肝!(保姆级教程)](https://mp.weixin.qq.com/s/WeZLtfrMdnISpX3v5WpJfA)
+ - [常用 Linux 发行版操作系统大盘点](https://mp.weixin.qq.com/s/x8rwsIOzYEPXmEVXmWJ4Tg)
+ - [人手一套Linux环境搭建之:macOS版本教程](https://mp.weixin.qq.com/s/WeZLtfrMdnISpX3v5WpJfA)
+ - [人手一套Linux环境之:Windows版本教程](https://mp.weixin.qq.com/s/onVwwEQ1DAwbvK7qS2YNxg)
+ - [面试常问的20个Linux命令](https://mp.weixin.qq.com/s/3NI4FWuOfYMJBiKqqnpqMA)
+ - [废柴电脑拯救计划:搭个云服务器它不香嘛](https://mp.weixin.qq.com/s/YpWp-b3vcAtb_jBwCM7wtg)
- Git/SVN
- [一招搞定GitHub下载加速!](https://mp.weixin.qq.com/s/SYR4zvjhAH1mX9fxdp8cbA)
- [为什么 Git把 SVN拍在了沙滩上!](https://mp.weixin.qq.com/s/bUYz9JwqAYH_Fn6nHPSmTg)
+ - [Git的由来、数据模型以及基础命令](https://mp.weixin.qq.com/s/VvpjFUXd6jcatACHyFPHfg)
- [Git操作与命令看这篇足矣!](https://mp.weixin.qq.com/s/swnwBiuyVmhs5iPqv3H6BQ)
- 开发软件
@@ -162,11 +185,15 @@
- Dash
- Zeal
-- 其他软件
+- 其他软件和工具
- [我的常用软件大公开!](https://mp.weixin.qq.com/s/ONx6wjGjQSvOOIgnEBTNJQ)
+ - [这么多编程学习网站,总有一个适合你吧](https://mp.weixin.qq.com/s/L9lbKUJHTThCoOC8d6FGpg)
- [前后端都分离了,该搞个好用的API管理系统了!](https://mp.weixin.qq.com/s/Ahs6fnIfFVVPOn3NZpIsNA)
- [服务器软件大盘点!](https://mp.weixin.qq.com/s/J1XjIwtEKjaltqWH-0qmgw)
+ - [几款提升效率和B格的软件神器](https://mp.weixin.qq.com/s/HZRz_A8bLcOTuzcezYEFZg)
+ - [我的常用在线工具网站](https://mp.weixin.qq.com/s/oMAJaKDfr_bmgCVD0CX1oA)
+
---
### 应用框架
@@ -259,10 +286,24 @@
- Spring Boot源码阅读调试环境搭建
- Redis源码阅读调试环境搭建
+
+
---
# 面试相关
---
+### 面试题分享
+
+- [Java基础知识面试题大集合](https://mp.weixin.qq.com/s/f-qIQGbzwHcW5Ur51rCqgg)
+- [Java虚拟机(JVM)面试题大集合](https://mp.weixin.qq.com/s/T2DqgJ9-0QiRZQYUeR3c8w)
+- [Java并发和多线程基础面试题大集合](https://mp.weixin.qq.com/s/pIVf97W4DuAPNxq6zgRvsQ)
+- [计网 TCP/UDP 部分高频面试题大集合](https://mp.weixin.qq.com/s/SZ8XcOzZCVJG_P1_O4OtWQ)
+- [面试常问的20个Linux命令](https://mp.weixin.qq.com/s/3NI4FWuOfYMJBiKqqnpqMA)
+- [Spring 经典面试题大集合](https://mp.weixin.qq.com/s/q4CajkpSUC8TCgv55VK5aQ)
+- [Spring Boot基础面试题大集合](https://mp.weixin.qq.com/s/cLh9xCDkVG0KV-uaX8PkNw)
+- [Spring Cloud基础面试题大集合](https://mp.weixin.qq.com/s/g0br3PfTmm8C_nkKbzE_ig)
+- [C语言/C++基础面试知识大集合](https://mp.weixin.qq.com/s/7mx58Idw1pL0MjPIFBUB1Q)
+
### 面经分享
- [小伙伴现身说法:Linux后台开发该如何准备](https://mp.weixin.qq.com/s/joFBDntI9PmyVRiKPHwpRg)
@@ -271,18 +312,30 @@
- [小伙伴面经分享(一):深信服(含答案)](https://mp.weixin.qq.com/s/3YfKHo2lW-NC1tEA_u-mlQ)
- [小伙伴面经分享(二):京东(含答案)](https://mp.weixin.qq.com/s/sc-7rc6obYZNFcc1mjNPAg)
- [一位程序媛的秋招软件开发岗面试经历](https://mp.weixin.qq.com/s/jAPYcMULqQl6AE_Vv7BZhQ)
+- [写简历→面试→谈薪:一绿向北](https://mp.weixin.qq.com/s/0RoFVAezxW8cl3bjlAHbQg)
---
### 简历模板
- [简历模板分享](https://mp.weixin.qq.com/s/-qlU2-a-vvXWOHXzKHRm6A)
+### 城市/公司选择
+
+- [一二线城市知名IT互联网公司名单](https://mp.weixin.qq.com/s/VFocc914mGTrDzodI-MF1A)
+
---
# 资源推荐
+- [我的Java后端开发小书架分享](https://mp.weixin.qq.com/s/voNG467kSVfR-yjwelQhow)
+- [这么多编程学习网站,总有一个适合你吧](https://mp.weixin.qq.com/s/L9lbKUJHTThCoOC8d6FGpg)
- [阿里巴巴Java开发手册分享](https://mp.weixin.qq.com/s/yncEfIOxWeNj7asCLPwrUw)
- [简历模板分享](https://mp.weixin.qq.com/s/-qlU2-a-vvXWOHXzKHRm6A)
+---
+# 其他技术文章
+
+- [扫码付款背后的原理居然是这样](https://mp.weixin.qq.com/s/RjVLsAhiMIYzsMhXJiReNg)
+
---
@@ -297,15 +350,12 @@
### 联系方式
- [微信公众号私信联系我](https://mp.weixin.qq.com/s/ePhaYezFblgt0NgbvtWqww)
-- [bilibili](https://space.bilibili.com/384068749)
-- [简书](https://www.jianshu.com/u/d19536b0189b)
-- [CSDN](https://blog.csdn.net/wangshuaiwsws95)
-- [掘金](https://juejin.im/user/59551ecdf265da6c2518cd5c)
-- [知乎](https://www.zhihu.com/people/code_sheep)
---
### 我的心路历程
+- [我的毕业季,没有一点点仪式感](https://mp.weixin.qq.com/s/0iSzqJBj7YHkijGxbFUqCQ)
+- [既然硕士毕业也去搞开发,那我还读个喵的研?](https://mp.weixin.qq.com/s/_Kt9OmaBVDDj6S7rsdC-Aw)
- [二线城市的程序员活得好吗?](https://mp.weixin.qq.com/s/gOo8ztVLdXp3m_rvBozQpQ)
- [自学编程的八大误区!克服它!](https://mp.weixin.qq.com/s/r_vm7lA2Ul_ZFhkx60wplg)
- [我的本科回忆录:从迷茫自卑到保送华科](https://mp.weixin.qq.com/s/t9F6Z-DrybWLUxVrPTRPJw)
@@ -320,7 +370,7 @@
---
### 写作之路
-
+- [坚持写博客三年了,分享几个私藏小工具](https://mp.weixin.qq.com/s/T-b7GfBoMGRuOqtp3T_HaA)
- [Win10下Hexo博客搭建教程,及阿里云服务器部署实战](https://mp.weixin.qq.com/s/JTTUYJTvtdT6X2fvLUBFZg)
- [用Github+docsify,我花了半天就搭好了个人博客](https://mp.weixin.qq.com/s/grsv_rx3DL862M8dBsHd_A)
@@ -330,6 +380,9 @@
---
# 闲聊/侃大山
+- [如何优雅地向老师表达:我这周任务没啥进展?](https://mp.weixin.qq.com/s/gbIGNXIkOpw8tQ5aIoJMtw)
+- [C语言为什么不会过时](https://mp.weixin.qq.com/s/ltcfVu__ajU_i9wq77OnJg)
+- [好不容易读个研,遇到放羊的导师可咋整?](https://mp.weixin.qq.com/s/OkxMe3Eaywx-KF9tBmjf-Q)
- [程序员小猪队友行为大赏](https://mp.weixin.qq.com/s/1dJO8VJ6GaZykv33IUslkw)
- [研究生/专升本都扩招,我们没有理由放弃!](https://mp.weixin.qq.com/s/MvZFLDHItPR7InzrtYRL5w)
- [实不相瞒,在家远程办公15天,我有点自闭](https://mp.weixin.qq.com/s/gJBlu5gXL5vqYWG6ggisRw)
diff --git a/docs/.DS_Store b/docs/.DS_Store
new file mode 100644
index 0000000..9aafd42
Binary files /dev/null and b/docs/.DS_Store differ
diff --git a/docs/kubernetes/dashboard-user-role.yaml b/docs/kubernetes/dashboard-user-role.yaml
new file mode 100644
index 0000000..987b0e5
--- /dev/null
+++ b/docs/kubernetes/dashboard-user-role.yaml
@@ -0,0 +1,23 @@
+kind: ClusterRoleBinding
+apiVersion: rbac.authorization.k8s.io/v1beta1
+metadata:
+ name: admin
+ annotations:
+ rbac.authorization.kubernetes.io/autoupdate: "true"
+roleRef:
+ kind: ClusterRole
+ name: cluster-admin
+ apiGroup: rbac.authorization.k8s.io
+subjects:
+- kind: ServiceAccount
+ name: admin
+ namespace: kube-system
+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: admin
+ namespace: kube-system
+ labels:
+ kubernetes.io/cluster-service: "true"
+ addonmanager.kubernetes.io/mode: Reconcile
diff --git a/docs/kubernetes/dashboard.yaml b/docs/kubernetes/dashboard.yaml
new file mode 100644
index 0000000..462c615
--- /dev/null
+++ b/docs/kubernetes/dashboard.yaml
@@ -0,0 +1,166 @@
+# Copyright 2017 The Kubernetes Authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# ------------------- Dashboard Secret ------------------- #
+
+apiVersion: v1
+kind: Secret
+metadata:
+ labels:
+ k8s-app: kubernetes-dashboard
+ name: kubernetes-dashboard-certs
+ namespace: kube-system
+type: Opaque
+
+---
+# ------------------- Dashboard Service Account ------------------- #
+
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ labels:
+ k8s-app: kubernetes-dashboard
+ name: kubernetes-dashboard
+ namespace: kube-system
+
+---
+# ------------------- Dashboard Role & Role Binding ------------------- #
+
+kind: Role
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+ name: kubernetes-dashboard-minimal
+ namespace: kube-system
+rules:
+ # Allow Dashboard to create 'kubernetes-dashboard-key-holder' secret.
+- apiGroups: [""]
+ resources: ["secrets"]
+ verbs: ["create"]
+ # Allow Dashboard to create 'kubernetes-dashboard-settings' config map.
+- apiGroups: [""]
+ resources: ["configmaps"]
+ verbs: ["create"]
+ # Allow Dashboard to get, update and delete Dashboard exclusive secrets.
+- apiGroups: [""]
+ resources: ["secrets"]
+ resourceNames: ["kubernetes-dashboard-key-holder", "kubernetes-dashboard-certs"]
+ verbs: ["get", "update", "delete"]
+ # Allow Dashboard to get and update 'kubernetes-dashboard-settings' config map.
+- apiGroups: [""]
+ resources: ["configmaps"]
+ resourceNames: ["kubernetes-dashboard-settings"]
+ verbs: ["get", "update"]
+ # Allow Dashboard to get metrics from heapster.
+- apiGroups: [""]
+ resources: ["services"]
+ resourceNames: ["heapster"]
+ verbs: ["proxy"]
+- apiGroups: [""]
+ resources: ["services/proxy"]
+ resourceNames: ["heapster", "http:heapster:", "https:heapster:"]
+ verbs: ["get"]
+
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ name: kubernetes-dashboard-minimal
+ namespace: kube-system
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: kubernetes-dashboard-minimal
+subjects:
+- kind: ServiceAccount
+ name: kubernetes-dashboard
+ namespace: kube-system
+
+---
+# ------------------- Dashboard Deployment ------------------- #
+
+kind: Deployment
+apiVersion: apps/v1beta2
+metadata:
+ labels:
+ k8s-app: kubernetes-dashboard
+ name: kubernetes-dashboard
+ namespace: kube-system
+spec:
+ replicas: 1
+ revisionHistoryLimit: 10
+ selector:
+ matchLabels:
+ k8s-app: kubernetes-dashboard
+ template:
+ metadata:
+ labels:
+ k8s-app: kubernetes-dashboard
+ spec:
+ containers:
+ - name: kubernetes-dashboard
+ image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.0
+ ports:
+ - containerPort: 8443
+ protocol: TCP
+ args:
+ - --auto-generate-certificates
+ - --token-ttl=5400
+ # Uncomment the following line to manually specify Kubernetes API server Host
+ # If not specified, Dashboard will attempt to auto discover the API server and connect
+ # to it. Uncomment only if the default does not work.
+ # - --apiserver-host=http://my-address:port
+ volumeMounts:
+ - name: kubernetes-dashboard-certs
+ mountPath: /certs
+ # Create on-disk volume to store exec logs
+ - mountPath: /tmp
+ name: tmp-volume
+ livenessProbe:
+ httpGet:
+ scheme: HTTPS
+ path: /
+ port: 8443
+ initialDelaySeconds: 30
+ timeoutSeconds: 30
+ volumes:
+ - name: kubernetes-dashboard-certs
+ hostPath:
+ path: /home/share/certs
+ type: Directory
+ - name: tmp-volume
+ emptyDir: {}
+ serviceAccountName: kubernetes-dashboard
+ # Comment the following tolerations if Dashboard must not be deployed on master
+ tolerations:
+ - key: node-role.kubernetes.io/master
+ effect: NoSchedule
+
+---
+# ------------------- Dashboard Service ------------------- #
+
+kind: Service
+apiVersion: v1
+metadata:
+ labels:
+ k8s-app: kubernetes-dashboard
+ name: kubernetes-dashboard
+ namespace: kube-system
+spec:
+ ports:
+ - port: 443
+ targetPort: 8443
+ nodePort: 31234
+ selector:
+ k8s-app: kubernetes-dashboard
+ type: NodePort
diff --git a/docs/kubernetes/kube-flannel.yaml b/docs/kubernetes/kube-flannel.yaml
new file mode 100644
index 0000000..0fa9fc5
--- /dev/null
+++ b/docs/kubernetes/kube-flannel.yaml
@@ -0,0 +1,470 @@
+---
+kind: ClusterRole
+apiVersion: rbac.authorization.k8s.io/v1beta1
+metadata:
+ name: flannel
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - pods
+ verbs:
+ - get
+ - apiGroups:
+ - ""
+ resources:
+ - nodes
+ verbs:
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/status
+ verbs:
+ - patch
+---
+kind: ClusterRoleBinding
+apiVersion: rbac.authorization.k8s.io/v1beta1
+metadata:
+ name: flannel
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: flannel
+subjects:
+- kind: ServiceAccount
+ name: flannel
+ namespace: kube-system
+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: flannel
+ namespace: kube-system
+---
+kind: ConfigMap
+apiVersion: v1
+metadata:
+ name: kube-flannel-cfg
+ namespace: kube-system
+ labels:
+ tier: node
+ app: flannel
+data:
+ cni-conf.json: |
+ {
+ "name": "cbr0",
+ "plugins": [
+ {
+ "type": "flannel",
+ "delegate": {
+ "hairpinMode": true,
+ "isDefaultGateway": true
+ }
+ },
+ {
+ "type": "portmap",
+ "capabilities": {
+ "portMappings": true
+ }
+ }
+ ]
+ }
+ net-conf.json: |
+ {
+ "Network": "10.244.0.0/16",
+ "Backend": {
+ "Type": "vxlan"
+ }
+ }
+---
+apiVersion: extensions/v1beta1
+kind: DaemonSet
+metadata:
+ name: kube-flannel-ds-amd64
+ namespace: kube-system
+ labels:
+ tier: node
+ app: flannel
+spec:
+ template:
+ metadata:
+ labels:
+ tier: node
+ app: flannel
+ spec:
+ hostNetwork: true
+ nodeSelector:
+ beta.kubernetes.io/arch: amd64
+ tolerations:
+ - operator: Exists
+ effect: NoSchedule
+ serviceAccountName: flannel
+ initContainers:
+ - name: install-cni
+ image: quay.io/coreos/flannel:v0.10.0-amd64
+ command:
+ - cp
+ args:
+ - -f
+ - /etc/kube-flannel/cni-conf.json
+ - /etc/cni/net.d/10-flannel.conflist
+ volumeMounts:
+ - name: cni
+ mountPath: /etc/cni/net.d
+ - name: flannel-cfg
+ mountPath: /etc/kube-flannel/
+ containers:
+ - name: kube-flannel
+ image: quay.io/coreos/flannel:v0.10.0-amd64
+ command:
+ - /opt/bin/flanneld
+ args:
+ - --ip-masq
+ - --kube-subnet-mgr
+ resources:
+ requests:
+ cpu: "100m"
+ memory: "50Mi"
+ limits:
+ cpu: "100m"
+ memory: "50Mi"
+ securityContext:
+ privileged: true
+ env:
+ - name: POD_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.name
+ - name: POD_NAMESPACE
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.namespace
+ volumeMounts:
+ - name: run
+ mountPath: /run
+ - name: flannel-cfg
+ mountPath: /etc/kube-flannel/
+ volumes:
+ - name: run
+ hostPath:
+ path: /run
+ - name: cni
+ hostPath:
+ path: /etc/cni/net.d
+ - name: flannel-cfg
+ configMap:
+ name: kube-flannel-cfg
+---
+apiVersion: extensions/v1beta1
+kind: DaemonSet
+metadata:
+ name: kube-flannel-ds-arm64
+ namespace: kube-system
+ labels:
+ tier: node
+ app: flannel
+spec:
+ template:
+ metadata:
+ labels:
+ tier: node
+ app: flannel
+ spec:
+ hostNetwork: true
+ nodeSelector:
+ beta.kubernetes.io/arch: arm64
+ tolerations:
+ - operator: Exists
+ effect: NoSchedule
+ serviceAccountName: flannel
+ initContainers:
+ - name: install-cni
+ image: quay.io/coreos/flannel:v0.10.0-arm64
+ command:
+ - cp
+ args:
+ - -f
+ - /etc/kube-flannel/cni-conf.json
+ - /etc/cni/net.d/10-flannel.conflist
+ volumeMounts:
+ - name: cni
+ mountPath: /etc/cni/net.d
+ - name: flannel-cfg
+ mountPath: /etc/kube-flannel/
+ containers:
+ - name: kube-flannel
+ image: quay.io/coreos/flannel:v0.10.0-arm64
+ command:
+ - /opt/bin/flanneld
+ args:
+ - --ip-masq
+ - --kube-subnet-mgr
+ resources:
+ requests:
+ cpu: "100m"
+ memory: "50Mi"
+ limits:
+ cpu: "100m"
+ memory: "50Mi"
+ securityContext:
+ privileged: true
+ env:
+ - name: POD_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.name
+ - name: POD_NAMESPACE
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.namespace
+ volumeMounts:
+ - name: run
+ mountPath: /run
+ - name: flannel-cfg
+ mountPath: /etc/kube-flannel/
+ volumes:
+ - name: run
+ hostPath:
+ path: /run
+ - name: cni
+ hostPath:
+ path: /etc/cni/net.d
+ - name: flannel-cfg
+ configMap:
+ name: kube-flannel-cfg
+---
+apiVersion: extensions/v1beta1
+kind: DaemonSet
+metadata:
+ name: kube-flannel-ds-arm
+ namespace: kube-system
+ labels:
+ tier: node
+ app: flannel
+spec:
+ template:
+ metadata:
+ labels:
+ tier: node
+ app: flannel
+ spec:
+ hostNetwork: true
+ nodeSelector:
+ beta.kubernetes.io/arch: arm
+ tolerations:
+ - operator: Exists
+ effect: NoSchedule
+ serviceAccountName: flannel
+ initContainers:
+ - name: install-cni
+ image: quay.io/coreos/flannel:v0.10.0-arm
+ command:
+ - cp
+ args:
+ - -f
+ - /etc/kube-flannel/cni-conf.json
+ - /etc/cni/net.d/10-flannel.conflist
+ volumeMounts:
+ - name: cni
+ mountPath: /etc/cni/net.d
+ - name: flannel-cfg
+ mountPath: /etc/kube-flannel/
+ containers:
+ - name: kube-flannel
+ image: quay.io/coreos/flannel:v0.10.0-arm
+ command:
+ - /opt/bin/flanneld
+ args:
+ - --ip-masq
+ - --kube-subnet-mgr
+ resources:
+ requests:
+ cpu: "100m"
+ memory: "50Mi"
+ limits:
+ cpu: "100m"
+ memory: "50Mi"
+ securityContext:
+ privileged: true
+ env:
+ - name: POD_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.name
+ - name: POD_NAMESPACE
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.namespace
+ volumeMounts:
+ - name: run
+ mountPath: /run
+ - name: flannel-cfg
+ mountPath: /etc/kube-flannel/
+ volumes:
+ - name: run
+ hostPath:
+ path: /run
+ - name: cni
+ hostPath:
+ path: /etc/cni/net.d
+ - name: flannel-cfg
+ configMap:
+ name: kube-flannel-cfg
+---
+apiVersion: extensions/v1beta1
+kind: DaemonSet
+metadata:
+ name: kube-flannel-ds-ppc64le
+ namespace: kube-system
+ labels:
+ tier: node
+ app: flannel
+spec:
+ template:
+ metadata:
+ labels:
+ tier: node
+ app: flannel
+ spec:
+ hostNetwork: true
+ nodeSelector:
+ beta.kubernetes.io/arch: ppc64le
+ tolerations:
+ - operator: Exists
+ effect: NoSchedule
+ serviceAccountName: flannel
+ initContainers:
+ - name: install-cni
+ image: quay.io/coreos/flannel:v0.10.0-ppc64le
+ command:
+ - cp
+ args:
+ - -f
+ - /etc/kube-flannel/cni-conf.json
+ - /etc/cni/net.d/10-flannel.conflist
+ volumeMounts:
+ - name: cni
+ mountPath: /etc/cni/net.d
+ - name: flannel-cfg
+ mountPath: /etc/kube-flannel/
+ containers:
+ - name: kube-flannel
+ image: quay.io/coreos/flannel:v0.10.0-ppc64le
+ command:
+ - /opt/bin/flanneld
+ args:
+ - --ip-masq
+ - --kube-subnet-mgr
+ resources:
+ requests:
+ cpu: "100m"
+ memory: "50Mi"
+ limits:
+ cpu: "100m"
+ memory: "50Mi"
+ securityContext:
+ privileged: true
+ env:
+ - name: POD_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.name
+ - name: POD_NAMESPACE
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.namespace
+ volumeMounts:
+ - name: run
+ mountPath: /run
+ - name: flannel-cfg
+ mountPath: /etc/kube-flannel/
+ volumes:
+ - name: run
+ hostPath:
+ path: /run
+ - name: cni
+ hostPath:
+ path: /etc/cni/net.d
+ - name: flannel-cfg
+ configMap:
+ name: kube-flannel-cfg
+---
+apiVersion: extensions/v1beta1
+kind: DaemonSet
+metadata:
+ name: kube-flannel-ds-s390x
+ namespace: kube-system
+ labels:
+ tier: node
+ app: flannel
+spec:
+ template:
+ metadata:
+ labels:
+ tier: node
+ app: flannel
+ spec:
+ hostNetwork: true
+ nodeSelector:
+ beta.kubernetes.io/arch: s390x
+ tolerations:
+ - operator: Exists
+ effect: NoSchedule
+ serviceAccountName: flannel
+ initContainers:
+ - name: install-cni
+ image: quay.io/coreos/flannel:v0.10.0-s390x
+ command:
+ - cp
+ args:
+ - -f
+ - /etc/kube-flannel/cni-conf.json
+ - /etc/cni/net.d/10-flannel.conflist
+ volumeMounts:
+ - name: cni
+ mountPath: /etc/cni/net.d
+ - name: flannel-cfg
+ mountPath: /etc/kube-flannel/
+ containers:
+ - name: kube-flannel
+ image: quay.io/coreos/flannel:v0.10.0-s390x
+ command:
+ - /opt/bin/flanneld
+ args:
+ - --ip-masq
+ - --kube-subnet-mgr
+ resources:
+ requests:
+ cpu: "100m"
+ memory: "50Mi"
+ limits:
+ cpu: "100m"
+ memory: "50Mi"
+ securityContext:
+ privileged: true
+ env:
+ - name: POD_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.name
+ - name: POD_NAMESPACE
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.namespace
+ volumeMounts:
+ - name: run
+ mountPath: /run
+ - name: flannel-cfg
+ mountPath: /etc/kube-flannel/
+ volumes:
+ - name: run
+ hostPath:
+ path: /run
+ - name: cni
+ hostPath:
+ path: /etc/cni/net.d
+ - name: flannel-cfg
+ configMap:
+ name: kube-flannel-cfg