From 7c3017d57ea4d6c46d813f2771122b000a47086f Mon Sep 17 00:00:00 2001
From: Jimmy Song
Date: Wed, 18 Oct 2017 14:16:55 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0Kubernetes=E7=9B=B8=E5=85=B3?=
=?UTF-8?q?=E8=B5=84=E6=96=99=E9=93=BE=E6=8E=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
appendix/debug-kubernetes-services.html | 23 +-
appendix/docker-best-practice.html | 15 +-
appendix/index.html | 15 +-
appendix/issues.html | 15 +-
appendix/material-share.html | 1890 +++++++++++++++++
appendix/tricks.html | 15 +-
concepts/concepts.html | 15 +-
concepts/configmap.html | 15 +-
concepts/cronjob.html | 15 +-
concepts/daemonset.html | 15 +-
concepts/deployment.html | 15 +-
concepts/garbage-collection.html | 15 +-
concepts/horizontal-pod-autoscaling.html | 21 +-
concepts/index.html | 15 +-
concepts/ingress.html | 15 +-
concepts/init-containers.html | 15 +-
concepts/job.html | 15 +-
concepts/label.html | 15 +-
concepts/namespace.html | 15 +-
concepts/network-policy.html | 15 +-
concepts/node.html | 15 +-
concepts/objects.html | 15 +-
concepts/pod-lifecycle.html | 15 +-
concepts/pod-overview.html | 15 +-
concepts/pod-security-policy.html | 15 +-
concepts/pod.html | 15 +-
concepts/replicaset.html | 15 +-
concepts/secret.html | 15 +-
concepts/service.html | 25 +-
concepts/serviceaccount.html | 15 +-
concepts/statefulset.html | 15 +-
concepts/volume.html | 15 +-
develop/client-go-sample.html | 15 +-
develop/contribute.html | 15 +-
develop/developing-environment.html | 15 +-
develop/index.html | 15 +-
develop/testing.html | 15 +-
guide/access-cluster.html | 15 +-
guide/access-kubernetes-cluster.html | 15 +-
...plication-development-deployment-flow.html | 15 +-
...thenticate-across-clusters-kubeconfig.html | 15 +-
guide/cluster-security-management.html | 15 +-
guide/command-usage.html | 15 +-
.../configure-liveness-readiness-probes.html | 15 +-
guide/configure-pod-service-account.html | 15 +-
...nnecting-to-applications-port-forward.html | 15 +-
guide/deploy-applications-in-kubernetes.html | 15 +-
guide/docker-cli-to-kubectl.html | 15 +-
guide/index.html | 15 +-
guide/ip-masq-agent.html | 15 +-
...ctl-user-authentication-authorization.html | 15 +-
.../kubelet-authentication-authorization.html | 15 +-
guide/managing-tls-in-a-cluster.html | 15 +-
.../migrating-hadoop-yarn-to-kubernetes.html | 15 +-
guide/rbac.html | 15 +-
guide/resource-configuration.html | 15 +-
guide/resource-quota-management.html | 15 +-
guide/secret-configuration.html | 15 +-
guide/service-access-application-cluster.html | 15 +-
guide/tls-bootstrapping.html | 15 +-
guide/using-kubectl.html | 15 +-
images/services-iptables-overview.jpg | Bin 0 -> 64130 bytes
images/services-userspace-overview.jpg | Bin 0 -> 61568 bytes
index.html | 15 +-
manifests/heapster/heapster-deployment.yaml | 3 +-
practice/app-log-collection.html | 15 +-
practice/cephfs.html | 15 +-
practice/configuration-best-practice.html | 15 +-
practice/create-kubeconfig.html | 15 +-
practice/create-tls-and-secret-key.html | 15 +-
practice/dashboard-addon-installation.html | 15 +-
practice/data-persistence-problem.html | 15 +-
practice/distributed-load-test.html | 15 +-
practice/edge-node-configuration.html | 15 +-
practice/efk-addon-installation.html | 15 +-
practice/etcd-cluster-installation.html | 15 +-
practice/glusterfs.html | 15 +-
practice/heapster-addon-installation.html | 15 +-
practice/index.html | 15 +-
practice/install-kbernetes1.6-on-centos.html | 15 +-
practice/jenkins-ci-cd.html | 15 +-
practice/kubectl-installation.html | 15 +-
practice/kubedns-addon-installation.html | 15 +-
.../manage-compute-resources-container.html | 15 +-
practice/master-installation.html | 15 +-
practice/monitor.html | 15 +-
.../network-and-cluster-perfermance-test.html | 15 +-
practice/node-installation.html | 15 +-
practice/operation.html | 15 +-
.../service-discovery-and-loadbalancing.html | 15 +-
practice/service-rolling-update.html | 15 +-
...ainers-using-glusterfs-with-openshift.html | 15 +-
practice/storage.html | 15 +-
practice/traefik-ingress-installation.html | 15 +-
.../using-ceph-for-persistent-storage.html | 15 +-
...sing-glusterfs-for-persistent-storage.html | 15 +-
.../using-heapster-to-get-object-metrics.html | 15 +-
...metheus-to-monitor-kuberentes-cluster.html | 15 +-
search_plus_index.json | 2 +-
usecases/big-data.html | 15 +-
usecases/configuring-request-routing.html | 15 +-
usecases/index.html | 15 +-
usecases/istio-installation.html | 15 +-
usecases/istio.html | 15 +-
usecases/linkerd-user-guide.html | 15 +-
usecases/linkerd.html | 15 +-
usecases/microservices.html | 15 +-
...park-with-kubernetes-native-scheduler.html | 15 +-
usecases/serverless.html | 15 +-
.../service-discovery-in-microservices.html | 15 +-
usecases/service-mesh.html | 15 +-
usecases/spark-standalone-on-kubernetes.html | 15 +-
112 files changed, 3407 insertions(+), 117 deletions(-)
create mode 100644 appendix/material-share.html
create mode 100644 images/services-iptables-overview.jpg
create mode 100644 images/services-userspace-overview.jpg
diff --git a/appendix/debug-kubernetes-services.html b/appendix/debug-kubernetes-services.html
index 17c82d7de..50decd87e 100644
--- a/appendix/debug-kubernetes-services.html
+++ b/appendix/debug-kubernetes-services.html
@@ -79,6 +79,8 @@
+
+
@@ -1666,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1780,11 +1795,15 @@ kubectl top pod POD_NAME --containers
-
+
+
+
+
+
@@ -1792,7 +1811,7 @@ kubectl top pod POD_NAME --containers
diff --git a/appendix/docker-best-practice.html b/appendix/docker-best-practice.html
index c7f360d86..357b16ef7 100644
--- a/appendix/docker-best-practice.html
+++ b/appendix/docker-best-practice.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1847,7 +1860,7 @@
diff --git a/appendix/index.html b/appendix/index.html
index e84157481..e907b69a1 100644
--- a/appendix/index.html
+++ b/appendix/index.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1775,7 +1788,7 @@
diff --git a/appendix/issues.html b/appendix/issues.html
index 6d099e698..065ed91bb 100644
--- a/appendix/issues.html
+++ b/appendix/issues.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1821,7 +1834,7 @@ Sep 4 15:25:36 bj-xg-oam-kubernetes-001 kube-controller-manager: E0904 15:25:36
diff --git a/appendix/material-share.html b/appendix/material-share.html
new file mode 100644
index 000000000..e25319fd8
--- /dev/null
+++ b/appendix/material-share.html
@@ -0,0 +1,1890 @@
+
+
+
+
+
+
+ 7.5 相关资料分享 · Kubernetes Handbook
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Kubernetes相关资料链接
+授人以鱼,不如授人以渔。下面的资料将有助于大家了解kubernetes生态圈当前发展状况和发展趋势,我特此整理相关资料如下。
+生态环境
+包括kubernetes和cloud native相关的开源软件、工具和全景图。
+
+幻灯片、图书和情报资料分享
+
+博客与网站
+Kubernetes和Cloud Native相关网站、专栏、博客等。
+网站与专栏
+
+博客
+
+
+
+
+
+
+
+
+
+
results matching ""
+
+
+
+
+
+
No results matching ""
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/appendix/tricks.html b/appendix/tricks.html
index 614f8ccb7..c0ae22827 100644
--- a/appendix/tricks.html
+++ b/appendix/tricks.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1829,7 +1842,7 @@
diff --git a/concepts/concepts.html b/concepts/concepts.html
index 024813db3..140d67be2 100644
--- a/concepts/concepts.html
+++ b/concepts/concepts.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1848,7 +1861,7 @@
diff --git a/concepts/configmap.html b/concepts/configmap.html
index 359a6a028..8f04c4a1a 100644
--- a/concepts/configmap.html
+++ b/concepts/configmap.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -2053,7 +2066,7 @@ log_level=INFO
diff --git a/concepts/cronjob.html b/concepts/cronjob.html
index c08bfe16e..beb62da3b 100644
--- a/concepts/cronjob.html
+++ b/concepts/cronjob.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1860,7 +1873,7 @@ job "hello-1202039034" deleted
diff --git a/concepts/daemonset.html b/concepts/daemonset.html
index 3c3aeedff..8ebab2877 100644
--- a/concepts/daemonset.html
+++ b/concepts/daemonset.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1839,7 +1852,7 @@
diff --git a/concepts/deployment.html b/concepts/deployment.html
index 5d0235e1f..481166deb 100644
--- a/concepts/deployment.html
+++ b/concepts/deployment.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -2312,7 +2325,7 @@ $ echo $?
diff --git a/concepts/garbage-collection.html b/concepts/garbage-collection.html
index 7a5676d1d..10a0a1e6c 100644
--- a/concepts/garbage-collection.html
+++ b/concepts/garbage-collection.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1856,7 +1869,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 22159eeab..f8163f42b 100644
--- a/concepts/horizontal-pod-autoscaling.html
+++ b/concepts/horizontal-pod-autoscaling.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1753,7 +1766,7 @@
使用kubectl管理
Horizontal Pod Autoscaling作为API resource也可以像Pod、Deployment一样使用kubeclt命令管理,使用方法跟它们一样,资源名称为hpa
。
kubectl create hpa
-kubebectl get hpa
+kubectl get hpa
kubectl describe hpa
kubectl delete hpa
@@ -1823,9 +1836,9 @@ kubectl delete hpa
HPA说明:https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
HPA详解:https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/
kubectl autoscale命令详细使用说明:https://kubernetes.io/docs/user-guide/kubectl/v1.6/#autoscale
-自定义metrics开发:https://github.com/kubernetes/metrics
+自定义metrics开发:https://github.com/kubernetes/metrics
@@ -1869,7 +1882,7 @@ kubectl delete hpa
diff --git a/concepts/index.html b/concepts/index.html
index c096ca52b..5554550d4 100644
--- a/concepts/index.html
+++ b/concepts/index.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1832,7 +1845,7 @@ Kubernetes 还提供完善的管理]
diff --git a/concepts/ingress.html b/concepts/ingress.html
index 7f7464228..559f8b053 100644
--- a/concepts/ingress.html
+++ b/concepts/ingress.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1988,7 +2001,7 @@ NAME RULE BACKEND ADDRESS
diff --git a/concepts/init-containers.html b/concepts/init-containers.html
index 5103ab893..dc1c357af 100644
--- a/concepts/init-containers.html
+++ b/concepts/init-containers.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1962,7 +1975,7 @@ myapp-pod 1/1 Running 0 9m
diff --git a/concepts/job.html b/concepts/job.html
index 627b65695..2d7338648 100644
--- a/concepts/job.html
+++ b/concepts/job.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1800,7 +1813,7 @@ $ kubectl logs $pods
diff --git a/concepts/label.html b/concepts/label.html
index 9792aa1c9..c3638f3b2 100644
--- a/concepts/label.html
+++ b/concepts/label.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1845,7 +1858,7 @@ $ kubectl get pods -l &apo
diff --git a/concepts/namespace.html b/concepts/namespace.html
index acab7bae8..746b93dfc 100644
--- a/concepts/namespace.html
+++ b/concepts/namespace.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1776,7 +1789,7 @@
diff --git a/concepts/network-policy.html b/concepts/network-policy.html
index f10b7751d..f562f8e91 100644
--- a/concepts/network-policy.html
+++ b/concepts/network-policy.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1829,7 +1842,7 @@
diff --git a/concepts/node.html b/concepts/node.html
index f59a20ce9..4a87720e7 100644
--- a/concepts/node.html
+++ b/concepts/node.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1799,7 +1812,7 @@
diff --git a/concepts/objects.html b/concepts/objects.html
index 48030f2a9..2e7a752d4 100644
--- a/concepts/objects.html
+++ b/concepts/objects.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1866,7 +1879,7 @@
diff --git a/concepts/pod-lifecycle.html b/concepts/pod-lifecycle.html
index d51ab5bfb..268a86c97 100644
--- a/concepts/pod-lifecycle.html
+++ b/concepts/pod-lifecycle.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1921,7 +1934,7 @@
diff --git a/concepts/pod-overview.html b/concepts/pod-overview.html
index 8f34c4aec..02a77a26a 100644
--- a/concepts/pod-overview.html
+++ b/concepts/pod-overview.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1811,7 +1824,7 @@
diff --git a/concepts/pod-security-policy.html b/concepts/pod-security-policy.html
index 97c2d3fcd..c6f84274f 100644
--- a/concepts/pod-security-policy.html
+++ b/concepts/pod-security-policy.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1972,7 +1985,7 @@ podsecuritypolicy "permissive" delete
diff --git a/concepts/pod.html b/concepts/pod.html
index 564e1fb29..1684f6f47 100644
--- a/concepts/pod.html
+++ b/concepts/pod.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1852,7 +1865,7 @@
diff --git a/concepts/replicaset.html b/concepts/replicaset.html
index fc1a59993..c63c36827 100644
--- a/concepts/replicaset.html
+++ b/concepts/replicaset.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1816,7 +1829,7 @@
diff --git a/concepts/secret.html b/concepts/secret.html
index 2b2575cbd..f5aa11bae 100644
--- a/concepts/secret.html
+++ b/concepts/secret.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1894,7 +1907,7 @@ token
diff --git a/concepts/service.html b/concepts/service.html
index ff01ef6ca..b13d7d4e4 100644
--- a/concepts/service.html
+++ b/concepts/service.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1819,7 +1832,7 @@
网络返回的结果是,任何到达 Service
的 IP:Port 的请求,都会被代理到一个合适的 backend,不需要客户端知道关于 Kubernetes、Service
、或 Pod
的任何信息。
默认的策略是,通过 round-robin 算法来选择 backend Pod
。
实现基于客户端 IP 的会话亲和性,可以通过设置 service.spec.sessionAffinity
的值为 "ClientIP"
(默认值为 "None"
)。
-
+
iptables 代理模式
这种模式,kube-proxy 会监视 Kubernetes master 对 Service
对象和 Endpoints
对象的添加和移除。
对每个 Service
,它会安装 iptables 规则,从而捕获到达该 Service
的 clusterIP
(虚拟 IP)和端口的请求,进而将请求重定向到 Service
的一组 backend 中的某个上面。
@@ -1828,7 +1841,7 @@
实现基于客户端 IP 的会话亲和性,可以将 service.spec.sessionAffinity
的值设置为 "ClientIP"
(默认值为 "None"
)。
和 userspace 代理类似,网络返回的结果是,任何到达 Service
的 IP:Port 的请求,都会被代理到一个合适的 backend,不需要客户端知道关于 Kubernetes、Service
、或 Pod
的任何信息。
这应该比 userspace 代理更快、更可靠。然而,不像 userspace 代理,如果初始选择的 Pod
没有响应,iptables 代理能够自动地重试另一个 Pod
,所以它需要依赖 readiness probes。
-
+
多端口 Service
很多 Service
需要暴露多个端口。对于这种情况,Kubernetes 支持在 Service
对象中定义多个端口。
当使用多个端口时,必须给出所有的端口的名称,这样 Endpoint 就不会产生歧义,例如:
@@ -2051,9 +2064,11 @@ iptables 代理不会隐藏 Kubernetes 集
API 对象
在 Kubernetes REST API 中,Service 是 top-level 资源。关于 API 对象的更多细节可以查看:Service API 对象。
更多信息
-阅读 使用 Service 连接 Frontend 到 Backend。
+
@@ -2097,7 +2112,7 @@ iptables 代理不会隐藏 Kubernetes 集
diff --git a/concepts/serviceaccount.html b/concepts/serviceaccount.html
index 3c64ec974..d34911af8 100644
--- a/concepts/serviceaccount.html
+++ b/concepts/serviceaccount.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1915,7 +1928,7 @@ serviceaccounts/default
diff --git a/concepts/statefulset.html b/concepts/statefulset.html
index 6c2fda1fd..017870e5b 100644
--- a/concepts/statefulset.html
+++ b/concepts/statefulset.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -2218,7 +2231,7 @@ $ kubectl delete pvc www-web-0 www-web-1
diff --git a/concepts/volume.html b/concepts/volume.html
index 420a68492..ee8bb9183 100644
--- a/concepts/volume.html
+++ b/concepts/volume.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1921,7 +1934,7 @@
diff --git a/develop/client-go-sample.html b/develop/client-go-sample.html
index 9d639c909..d8e1519bf 100644
--- a/develop/client-go-sample.html
+++ b/develop/client-go-sample.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -2006,7 +2019,7 @@ Events:
diff --git a/develop/contribute.html b/develop/contribute.html
index 9483e6c0d..7e2817275 100644
--- a/develop/contribute.html
+++ b/develop/contribute.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1774,7 +1787,7 @@
diff --git a/develop/developing-environment.html b/develop/developing-environment.html
index bcfb389b3..205bebfc7 100644
--- a/develop/developing-environment.html
+++ b/develop/developing-environment.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1787,7 +1800,7 @@
diff --git a/develop/index.html b/develop/index.html
index 9e87bb8ca..1793f9337 100644
--- a/develop/index.html
+++ b/develop/index.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1766,7 +1779,7 @@
diff --git a/develop/testing.html b/develop/testing.html
index 15c06bd96..4e13d187e 100644
--- a/develop/testing.html
+++ b/develop/testing.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1881,7 +1894,7 @@ make test_e2e_node TEST_ARGS=
diff --git a/guide/access-cluster.html b/guide/access-cluster.html
index 70af5dbd1..4c336ba58 100644
--- a/guide/access-cluster.html
+++ b/guide/access-cluster.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1977,7 +1990,7 @@ $ curl $APISERVER/api --header
diff --git a/guide/access-kubernetes-cluster.html b/guide/access-kubernetes-cluster.html
index 464fef4cb..4fed00ff9 100644
--- a/guide/access-kubernetes-cluster.html
+++ b/guide/access-kubernetes-cluster.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1773,7 +1786,7 @@
diff --git a/guide/application-development-deployment-flow.html b/guide/application-development-deployment-flow.html
index 3f555d8e9..890088c32 100644
--- a/guide/application-development-deployment-flow.html
+++ b/guide/application-development-deployment-flow.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1768,7 +1781,7 @@
diff --git a/guide/authenticate-across-clusters-kubeconfig.html b/guide/authenticate-across-clusters-kubeconfig.html
index f0fcc3d68..179819a16 100644
--- a/guide/authenticate-across-clusters-kubeconfig.html
+++ b/guide/authenticate-across-clusters-kubeconfig.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1992,7 +2005,7 @@ $ kubectl config use-context federal-context
diff --git a/guide/cluster-security-management.html b/guide/cluster-security-management.html
index 47fe8e28e..5ebc8938a 100644
--- a/guide/cluster-security-management.html
+++ b/guide/cluster-security-management.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1767,7 +1780,7 @@
diff --git a/guide/command-usage.html b/guide/command-usage.html
index 8698318e8..4f74525b9 100644
--- a/guide/command-usage.html
+++ b/guide/command-usage.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1767,7 +1780,7 @@
diff --git a/guide/configure-liveness-readiness-probes.html b/guide/configure-liveness-readiness-probes.html
index f858a8a64..c315c621e 100644
--- a/guide/configure-liveness-readiness-probes.html
+++ b/guide/configure-liveness-readiness-probes.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1956,7 +1969,7 @@ the Container has been restarted:
diff --git a/guide/configure-pod-service-account.html b/guide/configure-pod-service-account.html
index 21df9976e..46978f8d6 100644
--- a/guide/configure-pod-service-account.html
+++ b/guide/configure-pod-service-account.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1914,7 +1927,7 @@ serviceaccounts/default
diff --git a/guide/connecting-to-applications-port-forward.html b/guide/connecting-to-applications-port-forward.html
index 77676cb0e..f6b087c23 100644
--- a/guide/connecting-to-applications-port-forward.html
+++ b/guide/connecting-to-applications-port-forward.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1806,7 +1819,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 7607b6051..a957ec8a5 100644
--- a/guide/deploy-applications-in-kubernetes.html
+++ b/guide/deploy-applications-in-kubernetes.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1806,7 +1819,7 @@
diff --git a/guide/docker-cli-to-kubectl.html b/guide/docker-cli-to-kubectl.html
index 3531a3ffd..393aefac1 100644
--- a/guide/docker-cli-to-kubectl.html
+++ b/guide/docker-cli-to-kubectl.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1943,7 +1956,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 49cf416d8..1fc036eb5 100644
--- a/guide/index.html
+++ b/guide/index.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1771,7 +1784,7 @@
diff --git a/guide/ip-masq-agent.html b/guide/ip-masq-agent.html
index 2608c9271..61851ccc1 100644
--- a/guide/ip-masq-agent.html
+++ b/guide/ip-masq-agent.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1831,7 +1844,7 @@ MASQUERADE all -- anywhere anywhere /* ip-masq-agent:
diff --git a/guide/kubectl-user-authentication-authorization.html b/guide/kubectl-user-authentication-authorization.html
index 5082e1dd6..64c062ddb 100644
--- a/guide/kubectl-user-authentication-authorization.html
+++ b/guide/kubectl-user-authentication-authorization.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1864,7 +1877,7 @@ No resources found.
diff --git a/guide/kubelet-authentication-authorization.html b/guide/kubelet-authentication-authorization.html
index 2cdd9d2eb..ccb1dca45 100644
--- a/guide/kubelet-authentication-authorization.html
+++ b/guide/kubelet-authentication-authorization.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1879,7 +1892,7 @@
diff --git a/guide/managing-tls-in-a-cluster.html b/guide/managing-tls-in-a-cluster.html
index cd9e10202..6e167dd85 100644
--- a/guide/managing-tls-in-a-cluster.html
+++ b/guide/managing-tls-in-a-cluster.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1857,7 +1870,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 94b604d55..da9eae713 100644
--- a/guide/migrating-hadoop-yarn-to-kubernetes.html
+++ b/guide/migrating-hadoop-yarn-to-kubernetes.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1937,7 +1950,7 @@ kubectl create configmap spark-config \
diff --git a/guide/rbac.html b/guide/rbac.html
index 86025c203..e94c40ef3 100644
--- a/guide/rbac.html
+++ b/guide/rbac.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -2294,7 +2307,7 @@
diff --git a/guide/resource-configuration.html b/guide/resource-configuration.html
index 90376cb9e..d2b4e55ee 100644
--- a/guide/resource-configuration.html
+++ b/guide/resource-configuration.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1767,7 +1780,7 @@
diff --git a/guide/resource-quota-management.html b/guide/resource-quota-management.html
index dc85453ec..fbe2b9691 100644
--- a/guide/resource-quota-management.html
+++ b/guide/resource-quota-management.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1839,7 +1852,7 @@
diff --git a/guide/secret-configuration.html b/guide/secret-configuration.html
index d5c23e1c5..fd66c1f69 100644
--- a/guide/secret-configuration.html
+++ b/guide/secret-configuration.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -2188,7 +2201,7 @@ secret "test-db-secret" created
diff --git a/guide/service-access-application-cluster.html b/guide/service-access-application-cluster.html
index d39d807f0..d977f9710 100644
--- a/guide/service-access-application-cluster.html
+++ b/guide/service-access-application-cluster.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1837,7 +1850,7 @@ kubectl describe replicasets
diff --git a/guide/tls-bootstrapping.html b/guide/tls-bootstrapping.html
index 8345f8059..284e4ab4a 100644
--- a/guide/tls-bootstrapping.html
+++ b/guide/tls-bootstrapping.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1881,7 +1894,7 @@
diff --git a/guide/using-kubectl.html b/guide/using-kubectl.html
index 480a9bba9..0271d85a7 100644
--- a/guide/using-kubectl.html
+++ b/guide/using-kubectl.html
@@ -1668,6 +1668,19 @@
+
+
+
+
+
+
+
+ 7.5 相关资料分享
+
+
+
+
+
@@ -1794,7 +1807,7 @@
diff --git a/images/services-iptables-overview.jpg b/images/services-iptables-overview.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0b914f4eded10ba240fefccc595b4da76afdf7e1
GIT binary patch
literal 64130
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