From 3a13966b4a39dd149c749fc6bcbe31a5a8984f9c Mon Sep 17 00:00:00 2001
From: Jimmy Song
Date: Fri, 24 Nov 2017 22:59:46 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0serverless=E6=9E=B6=E6=9E=84?=
=?UTF-8?q?=E7=9A=84=E5=AE=9A=E4=B9=89=E4=BC=98=E5=8A=BF=E5=92=8C=E5=8A=A3?=
=?UTF-8?q?=E5=8A=BF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
ISSUE_TEMPLATE.md | 16 +
appendix/debug-kubernetes-services.html | 17 +-
appendix/docker-best-practice.html | 17 +-
appendix/index.html | 17 +-
appendix/issues.html | 17 +-
appendix/material-share.html | 17 +-
appendix/tricks.html | 17 +-
...ernetes-and-cloud-native-app-overview.html | 17 +-
concepts/annotation.html | 17 +-
concepts/concepts.html | 17 +-
concepts/configmap-hot-update.html | 17 +-
concepts/configmap.html | 17 +-
concepts/cronjob.html | 17 +-
concepts/daemonset.html | 17 +-
concepts/deployment.html | 17 +-
concepts/garbage-collection.html | 17 +-
concepts/horizontal-pod-autoscaling.html | 17 +-
concepts/index.html | 17 +-
concepts/ingress.html | 17 +-
concepts/init-containers.html | 17 +-
concepts/job.html | 17 +-
concepts/label.html | 17 +-
concepts/namespace.html | 17 +-
concepts/network-policy.html | 17 +-
concepts/node.html | 21 +-
concepts/objects.html | 17 +-
concepts/pod-hook.html | 2562 +++++++++++++++++
concepts/pod-lifecycle.html | 21 +-
concepts/pod-overview.html | 17 +-
concepts/pod-security-policy.html | 17 +-
concepts/pod.html | 17 +-
concepts/replicaset.html | 17 +-
concepts/secret.html | 17 +-
concepts/service.html | 17 +-
concepts/serviceaccount.html | 17 +-
concepts/statefulset.html | 17 +-
concepts/volume.html | 17 +-
develop/client-go-sample.html | 17 +-
develop/contribute.html | 17 +-
develop/developing-environment.html | 17 +-
develop/index.html | 17 +-
develop/minikube.html | 17 +-
develop/testing.html | 17 +-
guide/access-cluster.html | 17 +-
guide/access-kubernetes-cluster.html | 17 +-
...etes-pods-from-outside-of-the-cluster.html | 17 +-
...plication-development-deployment-flow.html | 17 +-
guide/auth-with-kubeconfig-or-token.html | 17 +-
...thenticate-across-clusters-kubeconfig.html | 17 +-
guide/authentication.html | 17 +-
...arbin-mobile-dashboard-for-kubernetes.html | 17 +-
guide/cluster-security-management.html | 17 +-
guide/command-usage.html | 17 +-
.../configure-liveness-readiness-probes.html | 17 +-
guide/configure-pod-service-account.html | 17 +-
...nnecting-to-applications-port-forward.html | 17 +-
guide/deploy-applications-in-kubernetes.html | 17 +-
guide/docker-cli-to-kubectl.html | 17 +-
guide/index.html | 17 +-
guide/ip-masq-agent.html | 17 +-
guide/kubectl-cheatsheet.html | 17 +-
...ctl-user-authentication-authorization.html | 17 +-
.../kubelet-authentication-authorization.html | 17 +-
guide/managing-tls-in-a-cluster.html | 17 +-
.../migrating-hadoop-yarn-to-kubernetes.html | 17 +-
guide/rbac.html | 17 +-
guide/resource-configuration.html | 17 +-
guide/resource-quota-management.html | 17 +-
guide/secret-configuration.html | 17 +-
guide/service-access-application-cluster.html | 17 +-
guide/tls-bootstrapping.html | 17 +-
...ing-etcdctl-to-access-kubernetes-data.html | 17 +-
guide/using-kubectl.html | 17 +-
guide/using-statefulset.html | 17 +-
images/non-serverless-game-arch.jpg | Bin 0 -> 15401 bytes
images/serverless-faas-platform.jpg | Bin 0 -> 29205 bytes
images/serverless-game-arch.jpg | Bin 0 -> 29056 bytes
images/serverless-server-side-software.jpg | Bin 0 -> 45477 bytes
index.html | 17 +-
practice/app-log-collection.html | 17 +-
practice/cephfs.html | 17 +-
practice/ci-cd.html | 17 +-
practice/configuration-best-practice.html | 17 +-
practice/create-kubeconfig.html | 17 +-
practice/create-private-charts-repo.html | 17 +-
practice/create-tls-and-secret-key.html | 17 +-
practice/dashboard-addon-installation.html | 17 +-
practice/dashboard-upgrade.html | 17 +-
practice/data-persistence-problem.html | 17 +-
practice/distributed-load-test.html | 17 +-
practice/drone-ci-cd.html | 17 +-
practice/edge-node-configuration.html | 17 +-
practice/efk-addon-installation.html | 17 +-
practice/etcd-cluster-installation.html | 17 +-
practice/glusterfs.html | 17 +-
practice/heapster-addon-installation.html | 17 +-
practice/heapster.html | 17 +-
practice/helm.html | 17 +-
practice/index.html | 17 +-
practice/install-kbernetes1.6-on-centos.html | 17 +-
practice/jenkins-ci-cd.html | 17 +-
practice/kubectl-installation.html | 17 +-
practice/kubedns-addon-installation.html | 17 +-
.../manage-compute-resources-container.html | 17 +-
practice/manually-upgrade.html | 17 +-
practice/master-installation.html | 17 +-
practice/monitor.html | 17 +-
practice/monitoring.html | 17 +-
.../network-and-cluster-perfermance-test.html | 17 +-
practice/nginx-ingress-installation.html | 17 +-
practice/node-installation.html | 17 +-
practice/operation.html | 17 +-
practice/prometheus.html | 17 +-
.../service-discovery-and-loadbalancing.html | 17 +-
practice/service-rolling-update.html | 17 +-
practice/services-management-tool.html | 17 +-
...ainers-using-glusterfs-with-openshift.html | 17 +-
practice/storage.html | 17 +-
practice/traefik-ingress-installation.html | 17 +-
practice/update-and-upgrade.html | 17 +-
.../using-ceph-for-persistent-storage.html | 17 +-
...sing-glusterfs-for-persistent-storage.html | 17 +-
.../using-heapster-to-get-object-metrics.html | 17 +-
...metheus-to-monitor-kuberentes-cluster.html | 17 +-
search_plus_index.json | 2 +-
usecases/big-data.html | 17 +-
usecases/configuring-request-routing.html | 17 +-
usecases/edge-computing.html | 17 +-
usecases/index.html | 17 +-
usecases/install-and-expand-istio-mesh.html | 17 +-
usecases/integrating-vms.html | 17 +-
usecases/istio-installation.html | 17 +-
usecases/istio.html | 17 +-
usecases/linkerd-user-guide.html | 17 +-
usecases/linkerd.html | 17 +-
usecases/microservices.html | 17 +-
...park-with-kubernetes-native-scheduler.html | 17 +-
usecases/serverless.html | 17 +-
.../service-discovery-in-microservices.html | 17 +-
usecases/service-mesh.html | 17 +-
usecases/spark-standalone-on-kubernetes.html | 17 +-
usecases/understanding-serverless.html | 72 +-
142 files changed, 4797 insertions(+), 141 deletions(-)
create mode 100644 ISSUE_TEMPLATE.md
create mode 100644 concepts/pod-hook.html
create mode 100644 images/non-serverless-game-arch.jpg
create mode 100644 images/serverless-faas-platform.jpg
create mode 100644 images/serverless-game-arch.jpg
create mode 100644 images/serverless-server-side-software.jpg
diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md
new file mode 100644
index 000000000..f811e184b
--- /dev/null
+++ b/ISSUE_TEMPLATE.md
@@ -0,0 +1,16 @@
+## 环境
+
+**版本和配置信息**
+
+- kubernetes版本:
+- docker版本:
+- 网络插件:
+- 存储类型:
+
+## 操作
+
+**导致该问题的操作或现象**
+
+## 日志
+
+**日志或报错信息**
diff --git a/appendix/debug-kubernetes-services.html b/appendix/debug-kubernetes-services.html
index 088482255..6da899086 100644
--- a/appendix/debug-kubernetes-services.html
+++ b/appendix/debug-kubernetes-services.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2488,7 +2503,7 @@ kubectl top pod POD_NAME --containers
diff --git a/appendix/docker-best-practice.html b/appendix/docker-best-practice.html
index 8ba461a65..39dc1d853 100644
--- a/appendix/docker-best-practice.html
+++ b/appendix/docker-best-practice.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2536,7 +2551,7 @@
diff --git a/appendix/index.html b/appendix/index.html
index 5e145f022..d06b07c60 100644
--- a/appendix/index.html
+++ b/appendix/index.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2465,7 +2480,7 @@
diff --git a/appendix/issues.html b/appendix/issues.html
index 500847f0c..16db5fc85 100644
--- a/appendix/issues.html
+++ b/appendix/issues.html
@@ -297,6 +297,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2521,7 +2536,7 @@ kubectl patch deploy --namespace kube-system tiller-deploy -p
diff --git a/appendix/material-share.html b/appendix/material-share.html
index ea4d5ddff..5e47f2ca4 100644
--- a/appendix/material-share.html
+++ b/appendix/material-share.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2527,7 +2542,7 @@
diff --git a/appendix/tricks.html b/appendix/tricks.html
index 14abe7a05..b386b2f75 100644
--- a/appendix/tricks.html
+++ b/appendix/tricks.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2626,7 +2641,7 @@
diff --git a/cloud-native/kubernetes-and-cloud-native-app-overview.html b/cloud-native/kubernetes-and-cloud-native-app-overview.html
index 045bdbe5a..91744757c 100644
--- a/cloud-native/kubernetes-and-cloud-native-app-overview.html
+++ b/cloud-native/kubernetes-and-cloud-native-app-overview.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2808,7 +2823,7 @@
diff --git a/concepts/annotation.html b/concepts/annotation.html
index 09c03a5ea..1ee754191 100644
--- a/concepts/annotation.html
+++ b/concepts/annotation.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2521,7 +2536,7 @@
diff --git a/concepts/concepts.html b/concepts/concepts.html
index bc222451e..57b511c56 100644
--- a/concepts/concepts.html
+++ b/concepts/concepts.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2538,7 +2553,7 @@
diff --git a/concepts/configmap-hot-update.html b/concepts/configmap-hot-update.html
index 9f1671bf2..90a2ab4a2 100644
--- a/concepts/configmap-hot-update.html
+++ b/concepts/configmap-hot-update.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2762,7 +2777,7 @@ DEBUG
diff --git a/concepts/configmap.html b/concepts/configmap.html
index 207103626..4cb5c70f6 100644
--- a/concepts/configmap.html
+++ b/concepts/configmap.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2743,7 +2758,7 @@ log_level=INFO
diff --git a/concepts/cronjob.html b/concepts/cronjob.html
index d857bd8fe..79808fb0f 100644
--- a/concepts/cronjob.html
+++ b/concepts/cronjob.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2550,7 +2565,7 @@ job "hello-1202039034" deleted
diff --git a/concepts/daemonset.html b/concepts/daemonset.html
index 380c1ec84..0c2f82520 100644
--- a/concepts/daemonset.html
+++ b/concepts/daemonset.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2529,7 +2544,7 @@
diff --git a/concepts/deployment.html b/concepts/deployment.html
index 29756a3bc..9e9901fd6 100644
--- a/concepts/deployment.html
+++ b/concepts/deployment.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -3001,7 +3016,7 @@ $ echo $?
diff --git a/concepts/garbage-collection.html b/concepts/garbage-collection.html
index ca8d871a4..3968d58be 100644
--- a/concepts/garbage-collection.html
+++ b/concepts/garbage-collection.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2546,7 +2561,7 @@ curl -X DELETE localhost:8080/apis/extensions/v1beta1/namespaces/default/replica
diff --git a/concepts/horizontal-pod-autoscaling.html b/concepts/horizontal-pod-autoscaling.html
index c3897caa3..ac30efa01 100644
--- a/concepts/horizontal-pod-autoscaling.html
+++ b/concepts/horizontal-pod-autoscaling.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2559,7 +2574,7 @@ kubectl delete hpa
diff --git a/concepts/index.html b/concepts/index.html
index 17192df1d..73bfc2d7d 100644
--- a/concepts/index.html
+++ b/concepts/index.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2522,7 +2537,7 @@ Kubernetes 还提供完善的管理]
diff --git a/concepts/ingress.html b/concepts/ingress.html
index bda9e155c..111f502e6 100644
--- a/concepts/ingress.html
+++ b/concepts/ingress.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2678,7 +2693,7 @@ NAME RULE BACKEND ADDRESS
diff --git a/concepts/init-containers.html b/concepts/init-containers.html
index f9ffe0b8c..dde553123 100644
--- a/concepts/init-containers.html
+++ b/concepts/init-containers.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2652,7 +2667,7 @@ myapp-pod 1/1 Running 0 9m
diff --git a/concepts/job.html b/concepts/job.html
index 273ed2fe9..4af6548f4 100644
--- a/concepts/job.html
+++ b/concepts/job.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2490,7 +2505,7 @@ $ kubectl logs $pods
diff --git a/concepts/label.html b/concepts/label.html
index 0249b539b..4bbb0acd8 100644
--- a/concepts/label.html
+++ b/concepts/label.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2535,7 +2550,7 @@ $ kubectl get pods -l &apo
diff --git a/concepts/namespace.html b/concepts/namespace.html
index 9d0c12af3..d110619be 100644
--- a/concepts/namespace.html
+++ b/concepts/namespace.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2466,7 +2481,7 @@
diff --git a/concepts/network-policy.html b/concepts/network-policy.html
index 0dbe30275..1c43d7d2a 100644
--- a/concepts/network-policy.html
+++ b/concepts/network-policy.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2519,7 +2534,7 @@
diff --git a/concepts/node.html b/concepts/node.html
index 0dfc0093a..5a1ccf3be 100644
--- a/concepts/node.html
+++ b/concepts/node.html
@@ -82,7 +82,7 @@
-
+
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2473,7 +2488,7 @@
-
+
@@ -2489,7 +2504,7 @@
diff --git a/concepts/objects.html b/concepts/objects.html
index a58143942..9455a7a7a 100644
--- a/concepts/objects.html
+++ b/concepts/objects.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2556,7 +2571,7 @@
diff --git a/concepts/pod-hook.html b/concepts/pod-hook.html
new file mode 100644
index 000000000..316117b46
--- /dev/null
+++ b/concepts/pod-hook.html
@@ -0,0 +1,2562 @@
+
+
+
+
+
+
+ Pod hook · Kubernetes Handbook - jimmysong.io
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Pod hook
+Pod hook(钩子)是由Kubernetes管理的kubelet发起的,当容器中的进程启动前或者容器中的进程终止之前运行,这是包含在容器的生命周期之中。可以同时为Pod中的所有容器都配置hook。
+Hook的类型包括两种:
+
+exec:执行一段命令
+HTTP:发送HTTP请求。
+
+参考下面的配置:
+apiVersion: v1
+kind: Pod
+metadata:
+ name: lifecycle-demo
+spec:
+ containers:
+ - name: lifecycle-demo-container
+ image: nginx
+ lifecycle:
+ postStart:
+ exec:
+ command: ["/bin/sh" , "-c" , "echo Hello from the postStart handler > /usr/share/message" ]
+ preStop:
+ exec:
+ command: ["/usr/sbin/nginx" ,"-s" ,"quit" ]
+
+在容器创建之后,容器的Entrypoint执行之前,这时候Pod已经被调度到某台node上,被某个kubelet管理了,这时候kubelet会调用postStart操作,该操作跟容器的启动命令是在异步执行的,也就是说在postStart操作执行完成之前,kubelet会锁住容器,不让应用程序的进程启动,只有在 postStart操作完成之后容器的状态才会被设置成为RUNNING。
+如果postStart或者preStop hook失败,将会终止容器。
+调试hook
+Hook调用的日志没有暴露个给Pod的event,所以只能通过describe
命令来获取,如果有错误将可以看到FailedPostStartHook
或FailedPreStopHook
这样的event。
+参考
+
+
+
+
+
+
+
+
+
+
results matching " "
+
+
+
+
+
+
No results matching " "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/concepts/pod-lifecycle.html b/concepts/pod-lifecycle.html
index 20e2a19ec..7be905dd9 100644
--- a/concepts/pod-lifecycle.html
+++ b/concepts/pod-lifecycle.html
@@ -79,7 +79,7 @@
-
+
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2600,7 +2615,7 @@
-
+
@@ -2611,7 +2626,7 @@
diff --git a/concepts/pod-overview.html b/concepts/pod-overview.html
index aab0c0553..bdd2fae52 100644
--- a/concepts/pod-overview.html
+++ b/concepts/pod-overview.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2501,7 +2516,7 @@
diff --git a/concepts/pod-security-policy.html b/concepts/pod-security-policy.html
index 5f6a440b2..be40dd0fd 100644
--- a/concepts/pod-security-policy.html
+++ b/concepts/pod-security-policy.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2662,7 +2677,7 @@ podsecuritypolicy "permissive" delete
diff --git a/concepts/pod.html b/concepts/pod.html
index 1176da129..5712c073e 100644
--- a/concepts/pod.html
+++ b/concepts/pod.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2542,7 +2557,7 @@
diff --git a/concepts/replicaset.html b/concepts/replicaset.html
index 083d807d8..7ad97ad87 100644
--- a/concepts/replicaset.html
+++ b/concepts/replicaset.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2506,7 +2521,7 @@
diff --git a/concepts/secret.html b/concepts/secret.html
index 03ce41a4a..50fbeea04 100644
--- a/concepts/secret.html
+++ b/concepts/secret.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2584,7 +2599,7 @@ token
diff --git a/concepts/service.html b/concepts/service.html
index 681476d74..5dbad305c 100644
--- a/concepts/service.html
+++ b/concepts/service.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2789,7 +2804,7 @@ iptables 代理不会隐藏 Kubernetes 集
diff --git a/concepts/serviceaccount.html b/concepts/serviceaccount.html
index 14b766b1c..8ffb5a5cc 100644
--- a/concepts/serviceaccount.html
+++ b/concepts/serviceaccount.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2605,7 +2620,7 @@ serviceaccounts/default
diff --git a/concepts/statefulset.html b/concepts/statefulset.html
index c8b08e15d..48a1978e9 100644
--- a/concepts/statefulset.html
+++ b/concepts/statefulset.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2924,7 +2939,7 @@ zk-0 10.254.98.14 <nodes> 2181:31693/TCP 5m
diff --git a/concepts/volume.html b/concepts/volume.html
index 15e82ce91..3a1aa7cf9 100644
--- a/concepts/volume.html
+++ b/concepts/volume.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2611,7 +2626,7 @@
diff --git a/develop/client-go-sample.html b/develop/client-go-sample.html
index 98c465ae9..a605b702f 100644
--- a/develop/client-go-sample.html
+++ b/develop/client-go-sample.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2696,7 +2711,7 @@ Events:
diff --git a/develop/contribute.html b/develop/contribute.html
index d9b13ba95..1ff5364cc 100644
--- a/develop/contribute.html
+++ b/develop/contribute.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2464,7 +2479,7 @@
diff --git a/develop/developing-environment.html b/develop/developing-environment.html
index a4623309c..384c4947d 100644
--- a/develop/developing-environment.html
+++ b/develop/developing-environment.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2477,7 +2492,7 @@
diff --git a/develop/index.html b/develop/index.html
index 7b6fb1a0c..36ca8edf9 100644
--- a/develop/index.html
+++ b/develop/index.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2457,7 +2472,7 @@
diff --git a/develop/minikube.html b/develop/minikube.html
index 24552669f..8a29b323c 100644
--- a/develop/minikube.html
+++ b/develop/minikube.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2494,7 +2509,7 @@ Kubectl is now configured to use the cluster.
diff --git a/develop/testing.html b/develop/testing.html
index 2a3e943ef..1b4151bbf 100644
--- a/develop/testing.html
+++ b/develop/testing.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2571,7 +2586,7 @@ make test _e2e_node TEST_ARGS=
diff --git a/guide/access-cluster.html b/guide/access-cluster.html
index c740f77d7..9fb1686a5 100644
--- a/guide/access-cluster.html
+++ b/guide/access-cluster.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2667,7 +2682,7 @@ $ curl $APISERVER /api --header
diff --git a/guide/access-kubernetes-cluster.html b/guide/access-kubernetes-cluster.html
index bd4d21168..0cb3ac00b 100644
--- a/guide/access-kubernetes-cluster.html
+++ b/guide/access-kubernetes-cluster.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2463,7 +2478,7 @@
diff --git a/guide/accessing-kubernetes-pods-from-outside-of-the-cluster.html b/guide/accessing-kubernetes-pods-from-outside-of-the-cluster.html
index b7adef6d1..9801fb821 100644
--- a/guide/accessing-kubernetes-pods-from-outside-of-the-cluster.html
+++ b/guide/accessing-kubernetes-pods-from-outside-of-the-cluster.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2579,7 +2594,7 @@ influxdb 10.97.121.42 10.13.242.236 8086:30051/TCP 39s
diff --git a/guide/application-development-deployment-flow.html b/guide/application-development-deployment-flow.html
index 94e65d528..f22cde0f5 100644
--- a/guide/application-development-deployment-flow.html
+++ b/guide/application-development-deployment-flow.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2458,7 +2473,7 @@
diff --git a/guide/auth-with-kubeconfig-or-token.html b/guide/auth-with-kubeconfig-or-token.html
index 511280f90..94d2ad225 100644
--- a/guide/auth-with-kubeconfig-or-token.html
+++ b/guide/auth-with-kubeconfig-or-token.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2529,7 +2544,7 @@ ca.crt: 1310 bytes
diff --git a/guide/authenticate-across-clusters-kubeconfig.html b/guide/authenticate-across-clusters-kubeconfig.html
index 5eb1e2224..2ab2355f2 100644
--- a/guide/authenticate-across-clusters-kubeconfig.html
+++ b/guide/authenticate-across-clusters-kubeconfig.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2682,7 +2697,7 @@ $ kubectl config use-context federal-context
diff --git a/guide/authentication.html b/guide/authentication.html
index 9e69ba500..984cdaca7 100644
--- a/guide/authentication.html
+++ b/guide/authentication.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2958,7 +2973,7 @@ tar xzf easy-rsa.tar.gz
diff --git a/guide/carbin-mobile-dashboard-for-kubernetes.html b/guide/carbin-mobile-dashboard-for-kubernetes.html
index 5ef4a1199..7f404078c 100644
--- a/guide/carbin-mobile-dashboard-for-kubernetes.html
+++ b/guide/carbin-mobile-dashboard-for-kubernetes.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2469,7 +2484,7 @@
diff --git a/guide/cluster-security-management.html b/guide/cluster-security-management.html
index 40654c6a2..c78c05938 100644
--- a/guide/cluster-security-management.html
+++ b/guide/cluster-security-management.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2457,7 +2472,7 @@
diff --git a/guide/command-usage.html b/guide/command-usage.html
index 5f7296441..ab9172b30 100644
--- a/guide/command-usage.html
+++ b/guide/command-usage.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2457,7 +2472,7 @@
diff --git a/guide/configure-liveness-readiness-probes.html b/guide/configure-liveness-readiness-probes.html
index 45277f629..a504cbb23 100644
--- a/guide/configure-liveness-readiness-probes.html
+++ b/guide/configure-liveness-readiness-probes.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2646,7 +2661,7 @@ the Container has been restarted:
diff --git a/guide/configure-pod-service-account.html b/guide/configure-pod-service-account.html
index 699c57269..c5519a5f9 100644
--- a/guide/configure-pod-service-account.html
+++ b/guide/configure-pod-service-account.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2604,7 +2619,7 @@ serviceaccounts/default
diff --git a/guide/connecting-to-applications-port-forward.html b/guide/connecting-to-applications-port-forward.html
index 559fa3926..7f17b18a4 100644
--- a/guide/connecting-to-applications-port-forward.html
+++ b/guide/connecting-to-applications-port-forward.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2496,7 +2511,7 @@ kubectl get pods redis-master --template='{{(index (index .spec.containers
diff --git a/guide/deploy-applications-in-kubernetes.html b/guide/deploy-applications-in-kubernetes.html
index 288359bea..e3be0c21f 100644
--- a/guide/deploy-applications-in-kubernetes.html
+++ b/guide/deploy-applications-in-kubernetes.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2496,7 +2511,7 @@
diff --git a/guide/docker-cli-to-kubectl.html b/guide/docker-cli-to-kubectl.html
index 72138fa11..713af94dc 100644
--- a/guide/docker-cli-to-kubectl.html
+++ b/guide/docker-cli-to-kubectl.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2633,7 +2648,7 @@ InfluxDB is running at https://108.59.85.141/api/v1/namespaces/kube-system/servi
diff --git a/guide/index.html b/guide/index.html
index 8cfe36a04..bf3b0f95a 100644
--- a/guide/index.html
+++ b/guide/index.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2461,7 +2476,7 @@
diff --git a/guide/ip-masq-agent.html b/guide/ip-masq-agent.html
index e94dd5fae..9e0b2a2a8 100644
--- a/guide/ip-masq-agent.html
+++ b/guide/ip-masq-agent.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2521,7 +2536,7 @@ MASQUERADE all -- anywhere anywhere /* ip-masq-agent:
diff --git a/guide/kubectl-cheatsheet.html b/guide/kubectl-cheatsheet.html
index 08f4c2975..115a80ae9 100644
--- a/guide/kubectl-cheatsheet.html
+++ b/guide/kubectl-cheatsheet.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2863,7 +2878,7 @@ $ kubectl taint nodes foo dedicated=special-user:NoSchedule
diff --git a/guide/kubectl-user-authentication-authorization.html b/guide/kubectl-user-authentication-authorization.html
index c1872225c..fbabd39b1 100644
--- a/guide/kubectl-user-authentication-authorization.html
+++ b/guide/kubectl-user-authentication-authorization.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2554,7 +2569,7 @@ No resources found.
diff --git a/guide/kubelet-authentication-authorization.html b/guide/kubelet-authentication-authorization.html
index d43f96596..00702d896 100644
--- a/guide/kubelet-authentication-authorization.html
+++ b/guide/kubelet-authentication-authorization.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2569,7 +2584,7 @@
diff --git a/guide/managing-tls-in-a-cluster.html b/guide/managing-tls-in-a-cluster.html
index cea63d10b..e3f708016 100644
--- a/guide/managing-tls-in-a-cluster.html
+++ b/guide/managing-tls-in-a-cluster.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2547,7 +2562,7 @@ my-svc.my-namespace 10m yourname@example.com Approved,Issued
diff --git a/guide/migrating-hadoop-yarn-to-kubernetes.html b/guide/migrating-hadoop-yarn-to-kubernetes.html
index 0ecfd256c..eb058e766 100644
--- a/guide/migrating-hadoop-yarn-to-kubernetes.html
+++ b/guide/migrating-hadoop-yarn-to-kubernetes.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2627,7 +2642,7 @@ kubectl create configmap spark-config \
diff --git a/guide/rbac.html b/guide/rbac.html
index 8bed79f6c..a7292aa2b 100644
--- a/guide/rbac.html
+++ b/guide/rbac.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2984,7 +2999,7 @@
diff --git a/guide/resource-configuration.html b/guide/resource-configuration.html
index 8b17b9c20..eb5262dc5 100644
--- a/guide/resource-configuration.html
+++ b/guide/resource-configuration.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2457,7 +2472,7 @@
diff --git a/guide/resource-quota-management.html b/guide/resource-quota-management.html
index a14afd8f8..4f23b85ee 100644
--- a/guide/resource-quota-management.html
+++ b/guide/resource-quota-management.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2529,7 +2544,7 @@
diff --git a/guide/secret-configuration.html b/guide/secret-configuration.html
index 62f7d8c36..5095fd0e1 100644
--- a/guide/secret-configuration.html
+++ b/guide/secret-configuration.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2878,7 +2893,7 @@ secret "test-db-secret" created
diff --git a/guide/service-access-application-cluster.html b/guide/service-access-application-cluster.html
index 6fc1e320a..d33782bcb 100644
--- a/guide/service-access-application-cluster.html
+++ b/guide/service-access-application-cluster.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2527,7 +2542,7 @@ kubectl describe replicasets
diff --git a/guide/tls-bootstrapping.html b/guide/tls-bootstrapping.html
index b8b8a6e8f..144c1f467 100644
--- a/guide/tls-bootstrapping.html
+++ b/guide/tls-bootstrapping.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2574,7 +2589,7 @@
diff --git a/guide/using-etcdctl-to-access-kubernetes-data.html b/guide/using-etcdctl-to-access-kubernetes-data.html
index be3ce159f..d8477fac8 100644
--- a/guide/using-etcdctl-to-access-kubernetes-data.html
+++ b/guide/using-etcdctl-to-access-kubernetes-data.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2563,7 +2578,7 @@
diff --git a/guide/using-kubectl.html b/guide/using-kubectl.html
index e21c6856a..1d09b4579 100644
--- a/guide/using-kubectl.html
+++ b/guide/using-kubectl.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2484,7 +2499,7 @@
diff --git a/guide/using-statefulset.html b/guide/using-statefulset.html
index 17fc6fa78..22e43009e 100644
--- a/guide/using-statefulset.html
+++ b/guide/using-statefulset.html
@@ -299,6 +299,21 @@
+
+
+
+
+
+
+
+ 2.3.1.5.
+
+ Pod hook
+
+
+
+
+
@@ -2751,7 +2766,7 @@ sed -i s'/zookeeper.connect=localhost:2181/zookee
diff --git a/images/non-serverless-game-arch.jpg b/images/non-serverless-game-arch.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..91e614f65a7ef9fa0b1b3f63c0bae6b273862700
GIT binary patch
literal 15401
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
z
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
SOmn4DQt)`X7U?;9ZS)`Kk!;og
literal 0
HcmV?d00001
diff --git a/images/serverless-game-arch.jpg b/images/serverless-game-arch.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..43e7742cd85d38a0494be2248e1610cf88ecd0fc
GIT binary patch
literal 29056
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