-
-Kubernetes Handbook 始于 2016 年底,开源于 2017 年 3 月并在其后不断完善,是第一本系统介绍 Kubernetes 的中文书籍。写作本书的过程中,笔者记录了从零开始学习和使用 Kubernetes 的历程,着重于经验总结和资料分享,亦有 Kubernetes 核心概念解析,希望能够帮助大家少走弯路,为大家介绍 Kubernetes 周边生态,如微服务、DevOps、大数据应用、[Service Mesh](https://jimmysong.io/blog/what-is-a-service-mesh/)、云原生应用、Serverless 等领域。
+Kubernetes Handbook 项目始于 2016 年底,开源于 2017 年 3 月并在其后不断完善,这是第一本系统介绍 Kubernetes 的中文电子书。写作本书的过程中,笔者记录了从零开始学习和使用 Kubernetes 的历程,着重于经验总结和资料分享,亦有 Kubernetes 核心概念解析,希望能够帮助大家少走弯路,为大家介绍 Kubernetes 周边生态,如微服务、DevOps、大数据应用、[Service Mesh](https://jimmysong.io/blog/what-is-a-service-mesh/)、云原生应用、Serverless 等领域。
### 开始之前
diff --git a/book.json b/book.json
index 119463df0f..fd9dcf7415 100644
--- a/book.json
+++ b/book.json
@@ -1,12 +1,12 @@
{
- "title": "Kubernetes Handbook - Kubernetes 中文指南/云原生应用架构实践手册 · Jimmy Song",
+ "title": "Kubernetes 中文指南——云原生应用架构实践手册",
"description": "Kubernetes Handbook - Kubernetes 中文指南/云原生应用架构实践手册,本书记录了本人从零开始学习和使用 Kubernetes 的心路历程,着重于经验分享和总结,同时也会有相关的概念解析,希望能够帮助大家少踩坑,少走弯路,还会指引大家关注Kubernetes生态周边,如微服务构建、DevOps、大数据应用、Service Mesh、Cloud Native等领域。",
"language": "zh-hans",
- "author": "Jimmy Song(宋净超)",
+ "author": "宋净超(Jimmy Song)",
"links": {
"sidebar": {
"回到主页": "https://jimmysong.io",
- "云原生开源项目大全": "https://jimmysong.io/awesome-cloud-native",
+ "云原生开源项目大全": "https://jimmysong.io/awesome-cloud-native/",
"云原生社区": "https://cloudnative.to"
}
},
diff --git a/cover-thumbnail.jpg b/cover-thumbnail.jpg
index 03dab50770..a0b1fe72c5 100644
Binary files a/cover-thumbnail.jpg and b/cover-thumbnail.jpg differ
diff --git a/cover.jpg b/cover.jpg
index bb6bb2fa77..46b9814895 100644
Binary files a/cover.jpg and b/cover.jpg differ
diff --git a/node_modules/gitbook-plugin-adsense/package.json b/node_modules/gitbook-plugin-adsense/package.json
index 210ce5e0b4..b2f7c32b64 100644
--- a/node_modules/gitbook-plugin-adsense/package.json
+++ b/node_modules/gitbook-plugin-adsense/package.json
@@ -9,7 +9,7 @@
"spec": "1.0.3",
"type": "version"
},
- "/Users/jimmy/Workspace/github/rootsongjc/kubernetes-handbook"
+ "/Users/jimmy/Workspace/github/rootsongjc/istio-handbook"
]
],
"_from": "gitbook-plugin-adsense@1.0.3",
@@ -43,7 +43,7 @@
"_shasum": "3ca1d940f016ad88321f6797e852c9ed837c94e9",
"_shrinkwrap": null,
"_spec": "gitbook-plugin-adsense@1.0.3",
- "_where": "/Users/jimmy/Workspace/github/rootsongjc/kubernetes-handbook",
+ "_where": "/Users/jimmy/Workspace/github/rootsongjc/istio-handbook",
"bugs": {
"url": "https://github.com/Vufuzi/plugin-google-adsense/issues"
},
diff --git a/node_modules/gitbook-plugin-back-to-top-button/screenshots.png b/node_modules/gitbook-plugin-back-to-top-button/screenshots.png
index cbbd13dc57..49b2b560e0 100644
Binary files a/node_modules/gitbook-plugin-back-to-top-button/screenshots.png and b/node_modules/gitbook-plugin-back-to-top-button/screenshots.png differ
diff --git a/node_modules/gitbook-plugin-flexible-alerts/LICENSE b/node_modules/gitbook-plugin-flexible-alerts/LICENSE
new file mode 100644
index 0000000000..64189c54c8
--- /dev/null
+++ b/node_modules/gitbook-plugin-flexible-alerts/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 zanfab
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/gitbook-plugin-flexible-alerts/README.md b/node_modules/gitbook-plugin-flexible-alerts/README.md
new file mode 100644
index 0000000000..8a6e8a177a
--- /dev/null
+++ b/node_modules/gitbook-plugin-flexible-alerts/README.md
@@ -0,0 +1,191 @@
+# GitBook plugin: Flexible Alerts
+
+![Build Status](https://api.travis-ci.org/zanfab/gitbook-plugin-flexible-alerts.svg)
+[![npm version](https://img.shields.io/npm/v/gitbook-plugin-flexible-alerts/latest.svg)](https://www.npmjs.com/package/gitbook-plugin-flexible-alerts)
+[![npm Downloads](https://img.shields.io/npm/dt/gitbook-plugin-flexible-alerts.svg)](https://www.npmjs.com/package/gitbook-plugin-flexible-alerts)
+
+This GitBook plugin converts blockquotes into beautiful alerts. Look and feel can be configured on a global as well as on a alert specific level so output does fit your needs (some examples are shown below). In addition, you can provide own alert types.
+
+![Sample alerts created with plugin 'flexible-alerts'](https://user-images.githubusercontent.com/44210522/50688702-ea774f00-1026-11e9-9281-ca615cb466f5.jpg)
+
+## Installation
+
+### Step #1 - Update book.json file
+
+1. In you gitbook's book.json file, add `flexible-alerts` to plugins list.
+2. In pluginsConfig, configure the plugin so it does fit your needs. A custom setup is not mandatory.
+3. By default style 'callout' and headings 'Note', 'Tip', 'Warning', 'Attention' will be used. You can change it using plugin configuration via `book.json` or for a single alert in your markdown files.
+
+**Sample `book.json` file for gitbook version 2.0.0+**
+
+```json
+{
+ "plugins": [
+ "flexible-alerts"
+ ]
+}
+```
+
+**Sample `book.json` file for gitbook version 2.0.0+ and style `flat` instead of `callout`**
+
+```json
+{
+ "plugins": [
+ "flexible-alerts"
+ ],
+ "pluginsConfig": {
+ "flexible-alerts": {
+ "style": "flat"
+ }
+ }
+}
+```
+
+**Sample `book.json` file for gitbook version 2.0.0+ and custom headings**
+
+```json
+{
+ "plugins": [
+ "flexible-alerts"
+ ],
+ "pluginsConfig": {
+ "flexible-alerts": {
+ "note": {
+ "label": "Hinweis"
+ },
+ "tip": {
+ "label": "Tipp"
+ },
+ "warning": {
+ "label": "Warnung"
+ },
+ "danger": {
+ "label": "Achtung"
+ }
+ }
+ }
+}
+```
+
+**Sample `book.json` file for gitbook version 2.0.0+ and multilingual headings**
+
+```json
+{
+ "plugins": [
+ "flexible-alerts"
+ ],
+ "pluginsConfig": {
+ "flexible-alerts": {
+ "note": {
+ "label": {
+ "de": "Hinweis",
+ "en": "Note"
+ }
+ },
+ "tip": {
+ "label": {
+ "de": "Tipp",
+ "en": "Tip"
+ }
+ },
+ "warning": {
+ "label": {
+ "de": "Warnung",
+ "en": "Warning"
+ }
+ },
+ "danger": {
+ "label": {
+ "de": "Achtung",
+ "en": "Attention"
+ }
+ }
+ }
+ }
+}
+```
+
+Note: Above snippets can be used as complete `book.json` file, if one of these matches your requirements and your book doesn't have one yet.
+
+### Step #2 - gitbook commands
+
+1. Run `gitbook install`. It will automatically install `flexible-alerts` gitbook plugin for your book. This is needed only once.
+2. Build your book (`gitbook build`) or serve (`gitbook serve`) as usual.
+
+## Usage
+
+To use the plugin just modify an existing blockquote and prepend a line matching pattern `[!type]`. By default types `NOTE`, `TIP`, `WARNING` and `DANGER` are supported. You can extend the available types by providing a valid configuration (see below for an example).
+
+```markdown
+> [!NOTE]
+> An alert of type 'note' using global style 'callout'.
+```
+
+```markdown
+> [!NOTE|style:flat]
+> An alert of type 'note' using alert specific style 'flat' which overrides global style 'callout'.
+```
+
+As you can see in the second snippet, output can be configured on alert level also. Supported options are listed in following table:
+
+| Key | Allowed value |
+| --------------- | ---- |
+| style | One of follwowing values: callout, flat |
+| label | Any text |
+| icon | A valid Font Awesome icon, e.g. 'fa fa-info-circle' |
+| className | A name of a CSS class which specifies the look and feel |
+| labelVisibility | One of follwowing values: visible (default), hidden |
+| iconVisibility | One of follwowing values: visible (default), hidden |
+
+Multiple options can be used for single alerts as shown below:
+
+```markdown
+> [!TIP|style:flat|label:My own heading|iconVisibility:hidden]
+> An alert of type 'tip' using alert specific style 'flat' which overrides global style 'callout'.
+> In addition, this alert uses an own heading and hides specific icon.
+```
+
+![Custom alert](https://user-images.githubusercontent.com/44210522/50689970-04676080-102c-11e9-9cbc-8af129cb988c.png)
+
+As mentioned above you can provide your own alert types. Therefore, you have to provide the type configuration via `book.json`. Following example shows an additional type `COMMENT`.
+
+```json
+{
+ "plugins": [
+ "flexible-alerts"
+ ],
+ "pluginsConfig": {
+ "flexible-alerts": {
+ "style": "callout",
+ "comment": {
+ "label": "Comment",
+ "icon": "fa fa-comments",
+ "className": "info"
+ }
+ }
+ }
+}
+```
+
+In Markdown just use the alert according to the types provided by default.
+
+```markdown
+> [!COMMENT]
+> An alert of type 'comment' using style 'callout' with default settings.
+```
+
+![Custom alert type 'comment'](https://user-images.githubusercontent.com/44210522/50722960-6f21a600-10d7-11e9-87e7-d40d87045afe.png)
+
+## Troubleshooting
+
+If alerts do not look as expected, check if your `book.json` as well as alerts in Markdown are valid according to this documentation.
+
+## Changelog
+
+04/08/2019 - Fixed issue concerning languages using characters others than [a-z,A-Z,0-9] like Chinese or Russian.
+
+02/24/2019 - Added support for Internet Explorer 11
+
+01/07/2019 - Moved complete icon definition to pluginsConfig section
+
+01/05/2019 - Initial Release
\ No newline at end of file
diff --git a/node_modules/gitbook-plugin-flexible-alerts/dist/book/plugin.js b/node_modules/gitbook-plugin-flexible-alerts/dist/book/plugin.js
new file mode 100644
index 0000000000..75f21e440e
--- /dev/null
+++ b/node_modules/gitbook-plugin-flexible-alerts/dist/book/plugin.js
@@ -0,0 +1,9 @@
+/*!
+ * gitbook-plugin-flexible-alerts
+ * v1.0.3
+ * https://github.com/zanfab/gitbook-plugin-flexible-alerts#readme
+ * (c) 2019 Fabian Zankl
+ * MIT license
+ */
+"use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function findAlertSetting(t,n,e,i){var o=(t||"").match(new RegExp("".concat(n,":(([^\\r\\n|]*))")));return o?i?i(o[1]):o[1]:i?i(e):e}require(["gitbook","jQuery"],function(p,e){p.events.bind("page.change",function(){var b=p.state.config.pluginsConfig["flexible-alerts"];e("blockquote").each(function(){var t=e(this).html(),n=t.replace(/\[!(\w*)((?:\|\w*:.*)*?)\]([\s\S]*)/g,function(t,n,e,i){var o=b[n.toLowerCase()];if(!o)return t;var r=findAlertSetting(e,"style",b.style),c=findAlertSetting(e,"iconVisibility","visible",function(t){return"hidden"!==t}),l=findAlertSetting(e,"labelVisibility","visible",function(t){return"hidden"!==t}),a=findAlertSetting(e,"label",o.label),f=findAlertSetting(e,"icon",o.icon),s=findAlertSetting(e,"className",o.className);if("object"===_typeof(a)){var u=p.state.innerLanguage;u&&a.hasOwnProperty(u)?a=a[u]:c=l=!1}var y='');return'
\n
\n ').concat(c?y:"","\n ").concat(l?a:"","\n
\n
").concat(i,"\n
")});n!==t&&e(this).replaceWith(n)})})});
+//# sourceMappingURL=plugin.js.map
diff --git a/node_modules/gitbook-plugin-flexible-alerts/dist/book/plugin.js.map b/node_modules/gitbook-plugin-flexible-alerts/dist/book/plugin.js.map
new file mode 100644
index 0000000000..eda291e54e
--- /dev/null
+++ b/node_modules/gitbook-plugin-flexible-alerts/dist/book/plugin.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"plugin.js","sources":["../../src/book/plugin.js"],"sourcesContent":["function findAlertSetting(input, key, fallback, callback) {\n const match = (input || '').match(new RegExp(`${key}:(([^\\\\r\\\\n|]*))`));\n if (!match) {\n return callback ? callback(fallback) : fallback;\n }\n\n return callback ? callback(match[1]) : match[1];\n}\n\nrequire(['gitbook', 'jQuery'], function (gitbook, $) {\n gitbook.events.bind('page.change', function () {\n const options = gitbook.state.config.pluginsConfig['flexible-alerts'];\n\n $('blockquote').each(function () {\n const origin = $(this).html();\n const content = origin.replace(/\\[!(\\w*)((?:\\|\\w*:.*)*?)\\]([\\s\\S]*)/g, (match, key, settings, value) => {\n const config = options[key.toLowerCase()];\n\n if (!config) {\n return match;\n }\n\n // Style configuration\n const style = findAlertSetting(settings, 'style', options.style);\n let isIconVisible = findAlertSetting(settings, 'iconVisibility', 'visible', (value) => value !== 'hidden');\n let isLabelVisible = findAlertSetting(settings, 'labelVisibility', 'visible', (value) => value !== 'hidden');\n let label = findAlertSetting(settings, 'label', config.label);\n const icon = findAlertSetting(settings, 'icon', config.icon);\n const className = findAlertSetting(settings, 'className', config.className);\n\n // Label can be language specific and could be specified via user configuration\n if (typeof label === 'object') {\n const language = gitbook.state.innerLanguage;\n\n if (language && label.hasOwnProperty(language)) {\n label = label[language];\n } else {\n isLabelVisible = false;\n isIconVisible = false;\n }\n }\n\n const iconTag = ``;\n\n return (\n `