From 470ced01ba5862fed7da389540bb063ef3cfa499 Mon Sep 17 00:00:00 2001 From: Dhilip Date: Wed, 9 Aug 2017 22:19:14 +0530 Subject: [PATCH 01/26] Slightly improves the readability. fix a couple of places that slightly improves the clarity. --- docs/concepts/configuration/assign-pod-node.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/concepts/configuration/assign-pod-node.md b/docs/concepts/configuration/assign-pod-node.md index 732319f474..d03d5ef811 100644 --- a/docs/concepts/configuration/assign-pod-node.md +++ b/docs/concepts/configuration/assign-pod-node.md @@ -69,7 +69,7 @@ When you then run `kubectl create -f pod.yaml`, the pod will get scheduled on th ## Interlude: built-in node labels -In addition to labels you [attach yourself](#step-one-attach-label-to-the-node), nodes come pre-populated +In addition to labels you [attach](#step-one-attach-label-to-the-node), nodes come pre-populated with a standard set of labels. As of Kubernetes v1.4 these labels are * `kubernetes.io/hostname` @@ -147,7 +147,7 @@ For more information on node affinity, see the design doc ### Inter-pod affinity and anti-affinity (beta feature) Inter-pod affinity and anti-affinity were introduced in Kubernetes 1.4. -Inter-pod affinity and anti-affinity allow you to constrain which nodes your pod is eligible to schedule on *based on +Inter-pod affinity and anti-affinity allow you to constrain which nodes your pod is eligible to be scheduled *based on labels on pods that are already running on the node* rather than based on labels on nodes. The rules are of the form "this pod should (or, in the case of anti-affinity, should not) run in an X if that X is already running one or more pods that meet rule Y." Y is expressed as a LabelSelector with an associated list of namespaces (or "all" namespaces); unlike nodes, because pods are namespaced @@ -214,7 +214,7 @@ be co-located in the same defined topology, eg., the same node. ##### Always co-located in the same node -In a three node cluster, a web application has in-memory cache such as redis, we want the web-servers to be co-located with the cache as much as possible. +In a three node cluster, a web application has in-memory cache such as redis. We want the web-servers to be co-located with the cache as much as possible. Here is the yaml snippet of a simple redis deployment with three replicas and selector label `app=store` ```yaml From 041a6804833fd825cfa284f4e73e39b9f5159c72 Mon Sep 17 00:00:00 2001 From: Dhilip Date: Wed, 9 Aug 2017 22:26:57 +0530 Subject: [PATCH 02/26] Minor grammar change Minor grammar fix --- docs/concepts/configuration/secret.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/concepts/configuration/secret.md b/docs/concepts/configuration/secret.md index 84b4e002a1..0d692dd700 100644 --- a/docs/concepts/configuration/secret.md +++ b/docs/concepts/configuration/secret.md @@ -509,7 +509,7 @@ Create a secret containing some ssh keys: $ kubectl create secret generic ssh-key-secret --from-file=ssh-privatekey=/path/to/.ssh/id_rsa --from-file=ssh-publickey=/path/to/.ssh/id_rsa.pub ``` -**Security Note:** think carefully before sending your own ssh keys: other users of the cluster may have access to the secret. Use a service account which you want to have accessible to all the users with whom you share the Kubernetes cluster, and can revoke if they are compromised. +**Security Note:** think carefully before sending your own ssh keys: other users of the cluster may have access to the secret. Use a service account which you want to be accessible to all the users with whom you share the Kubernetes cluster, and can revoke if they are compromised. Now we can create a pod which references the secret with the ssh key and From 95331dad38ed07d4a2c44513c576d2705ae57530 Mon Sep 17 00:00:00 2001 From: Chulmin Kang Date: Thu, 10 Aug 2017 02:39:35 +0900 Subject: [PATCH 03/26] Update deployment.md Fix the broken textboxes --- docs/concepts/workloads/controllers/deployment.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/concepts/workloads/controllers/deployment.md b/docs/concepts/workloads/controllers/deployment.md index f31e12792b..2be6f86a01 100644 --- a/docs/concepts/workloads/controllers/deployment.md +++ b/docs/concepts/workloads/controllers/deployment.md @@ -513,6 +513,7 @@ You can pause a Deployment before triggering one or more updates and then resume apply multiple fixes in between pausing and resuming without triggering unnecessary rollouts. For example, with a Deployment that was just created: + ```shell $ kubectl get deploy NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE @@ -523,18 +524,21 @@ nginx-2142116321 3 3 3 1m ``` Pause by running the following command: + ```shell $ kubectl rollout pause deployment/nginx-deployment deployment "nginx-deployment" paused ``` Then update the image of the Deployment: + ```shell $ kubectl set image deploy/nginx-deployment nginx=nginx:1.9.1 deployment "nginx-deployment" image updated ``` Notice that no new rollout started: + ```shell $ kubectl rollout history deploy/nginx-deployment deployments "nginx" @@ -547,6 +551,7 @@ nginx-2142116321 3 3 3 2m ``` You can make as many updates as you wish, for example, update the resources that will be used: + ```shell $ kubectl set resources deployment nginx -c=nginx --limits=cpu=200m,memory=512Mi deployment "nginx" resource requirements updated @@ -556,6 +561,7 @@ The initial state of the Deployment prior to pausing it will continue its functi the Deployment will not have any effect as long as the Deployment is paused. Eventually, resume the Deployment and observe a new ReplicaSet coming up with all the new updates: + ```shell $ kubectl rollout resume deploy/nginx-deployment deployment "nginx" resumed From c357416682d3bcf4e9ccc8ddc6bee3937a6102c3 Mon Sep 17 00:00:00 2001 From: Erik Stidham Date: Wed, 9 Aug 2017 13:35:58 -0500 Subject: [PATCH 04/26] Update Calico to latest - kubectl does not follow the "latest" redirects so they need the real version --- _includes/partner-script.js | 2 +- docs/setup/independent/create-cluster-kubeadm.md | 4 ++-- docs/tabs-example.md | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/_includes/partner-script.js b/_includes/partner-script.js index 0604d7dbc9..8a0f11ba51 100644 --- a/_includes/partner-script.js +++ b/_includes/partner-script.js @@ -263,7 +263,7 @@ type: 0, name: 'Tigera', logo: 'tigera', - link: 'http://docs.projectcalico.org/v1.5/getting-started/kubernetes/', + link: 'http://docs.projectcalico.org/latest/getting-started/kubernetes/', blurb: 'Tigera builds high performance, policy driven, cloud native networking solutions for Kubernetes.' }, { diff --git a/docs/setup/independent/create-cluster-kubeadm.md b/docs/setup/independent/create-cluster-kubeadm.md index 3878c48231..2f00185983 100644 --- a/docs/setup/independent/create-cluster-kubeadm.md +++ b/docs/setup/independent/create-cluster-kubeadm.md @@ -211,14 +211,14 @@ Please select one of the tabs to see installation instructions for the respectiv {% capture calico %} -The official Calico guide is [here](http://docs.projectcalico.org/v2.3/getting-started/kubernetes/installation/hosted/kubeadm/) +The official Calico guide is [here](http://docs.projectcalico.org/latest/getting-started/kubernetes/installation/hosted/kubeadm/) **Note:** - In order for Network Policy to work correctly, you need to pass `--pod-network-cidr=192.168.0.0/16` to `kubeadm init` - Calico works on `amd64` only. ```shell -kubectl apply -f http://docs.projectcalico.org/v2.3/getting-started/kubernetes/installation/hosted/kubeadm/1.6/calico.yaml +kubectl apply -f http://docs.projectcalico.org/v2.4/getting-started/kubernetes/installation/hosted/kubeadm/1.6/calico.yaml ``` {% endcapture %} diff --git a/docs/tabs-example.md b/docs/tabs-example.md index b582b16341..3f446f9c8d 100644 --- a/docs/tabs-example.md +++ b/docs/tabs-example.md @@ -14,7 +14,7 @@ Select one of the tabs. {% capture calico %} ```shell -kubectl apply -f "http://docs.projectcalico.org/v2.0/getting-started/kubernetes/installation/hosted/kubeadm/calico.yaml" +kubectl apply -f "http://docs.projectcalico.org/v2.4/getting-started/kubernetes/installation/hosted/kubeadm/calico.yaml" ``` {% endcapture %} @@ -54,7 +54,7 @@ Select one of the tabs. {{ "{% capture calico " }}%} ```shell -kubectl apply -f "http://docs.projectcalico.org/v2.0/getting-started/kubernetes/installation/hosted/kubeadm/calico.yaml" +kubectl apply -f "http://docs.projectcalico.org/v2.4/getting-started/kubernetes/installation/hosted/kubeadm/calico.yaml" ``` {{ "{% endcapture " }}%} @@ -87,7 +87,7 @@ kubectl apply -f "https://git.io/weave-kube" ````liquid {{ "{% capture calico " }}%} ```shell -kubectl apply -f "http://docs.projectcalico.org/v2.0/getting-started/kubernetes/installation/hosted/kubeadm/calico.yaml" +kubectl apply -f "http://docs.projectcalico.org/v2.4/getting-started/kubernetes/installation/hosted/kubeadm/calico.yaml" ``` {{ "{% endcapture " }}%} ```` From 1be8ef6513d2bff2e378b00396ccd7ce0c455e8a Mon Sep 17 00:00:00 2001 From: Stewart-YU <30410021+stewart-yu@users.noreply.github.com> Date: Thu, 10 Aug 2017 14:17:01 +0800 Subject: [PATCH 05/26] Update resource-quotas.md (#4728) * Update resource-quotas.md Invalid link. * fix url --- docs/concepts/policy/resource-quotas.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/concepts/policy/resource-quotas.md b/docs/concepts/policy/resource-quotas.md index 93c518b8d3..c1037784a4 100644 --- a/docs/concepts/policy/resource-quotas.md +++ b/docs/concepts/policy/resource-quotas.md @@ -233,7 +233,7 @@ restrictions around nodes: pods from several namespaces may run on the same node ## Example -See a [detailed example for how to use resource quota](/docs/tasks/configure-pod-container/apply-resource-quota-limit/). +See a [detailed example for how to use resource quota](/docs/tasks/administer-cluster/quota-api-object/). ## Read More From 13b6ea0707cefd294376141860adc9fc9597148e Mon Sep 17 00:00:00 2001 From: XsWack Date: Thu, 10 Aug 2017 14:51:34 +0800 Subject: [PATCH 06/26] Update jobs-run-to-completion.md fix typo --- docs/concepts/workloads/controllers/jobs-run-to-completion.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/concepts/workloads/controllers/jobs-run-to-completion.md b/docs/concepts/workloads/controllers/jobs-run-to-completion.md index c065e40bfc..23f604abab 100644 --- a/docs/concepts/workloads/controllers/jobs-run-to-completion.md +++ b/docs/concepts/workloads/controllers/jobs-run-to-completion.md @@ -291,7 +291,7 @@ unique to the pods of that job, and which matches unrelated pods, then pods of t job may be deleted, or this job may count other pods as completing it, or one or both of the jobs may refuse to create pods or run to completion. If a non-unique selector is chosen, then other controllers (e.g. ReplicationController) and their pods may behave -in unpredicatable ways too. Kubernetes will not stop you from making a mistake when +in unpredictable ways too. Kubernetes will not stop you from making a mistake when specifying `spec.selector`. Here is an example of a case when you might want to use this feature. From 53a1e25103a732859d7b122873cf62dee206793c Mon Sep 17 00:00:00 2001 From: lichuqiang Date: Thu, 10 Aug 2017 18:30:33 +0800 Subject: [PATCH 07/26] fix typo --- docs/concepts/cluster-administration/federation.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/concepts/cluster-administration/federation.md b/docs/concepts/cluster-administration/federation.md index 5a351319d4..56f7b54a3f 100644 --- a/docs/concepts/cluster-administration/federation.md +++ b/docs/concepts/cluster-administration/federation.md @@ -123,7 +123,7 @@ On IaaS providers such as Google Compute Engine or Amazon Web Services, a VM exi zone](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html). We suggest that all the VMs in a Kubernetes cluster should be in the same availability zone, because: - - compared to having a single global Kubernetes cluster, there are fewer single-points of failure + - compared to having a single global Kubernetes cluster, there are fewer single-points of failure. - compared to a cluster that spans availability zones, it is easier to reason about the availability properties of a single-zone cluster. - when the Kubernetes developers are designing the system (e.g. making assumptions about latency, bandwidth, or @@ -132,8 +132,8 @@ We suggest that all the VMs in a Kubernetes cluster should be in the same availa It is okay to have multiple clusters per availability zone, though on balance we think fewer is better. Reasons to prefer fewer clusters are: - - improved bin packing of Pods in some cases with more nodes in one cluster (less resource fragmentation) - - reduced operational overhead (though the advantage is diminished as ops tooling and processes matures) + - improved bin packing of Pods in some cases with more nodes in one cluster (less resource fragmentation). + - reduced operational overhead (though the advantage is diminished as ops tooling and processes matures). - reduced costs for per-cluster fixed resource costs, e.g. apiserver VMs (but small as a percentage of overall cluster cost for medium to large clusters). From 2bd131f98f8ba22deb98113eb4bd632dc2d4c12c Mon Sep 17 00:00:00 2001 From: Matthew Huxtable Date: Thu, 10 Aug 2017 11:38:27 +0100 Subject: [PATCH 08/26] Correct indent bug in httpGet liveness probe --- .../configure-liveness-readiness-probes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tasks/configure-pod-container/configure-liveness-readiness-probes.md b/docs/tasks/configure-pod-container/configure-liveness-readiness-probes.md index 088090f415..66dd333b18 100644 --- a/docs/tasks/configure-pod-container/configure-liveness-readiness-probes.md +++ b/docs/tasks/configure-pod-container/configure-liveness-readiness-probes.md @@ -207,8 +207,8 @@ ports: livenessProbe: httpGet: - path: /healthz - port: liveness-port + path: /healthz + port: liveness-port ``` ## Define readiness probes From b3eca614c70adfe35fbce922722e57312820c057 Mon Sep 17 00:00:00 2001 From: Stewart-YU <30410021+stewart-yu@users.noreply.github.com> Date: Thu, 10 Aug 2017 21:33:22 +0800 Subject: [PATCH 09/26] Update ingress.md missing space. --- docs/tasks/administer-federation/ingress.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/administer-federation/ingress.md b/docs/tasks/administer-federation/ingress.md index 693612b59b..3269071958 100644 --- a/docs/tasks/administer-federation/ingress.md +++ b/docs/tasks/administer-federation/ingress.md @@ -256,7 +256,7 @@ Check that: 1. Your clusters are correctly registered in the Cluster Federation API (`kubectl describe clusters`) 2. Your clusters are all 'Active'. This means that the cluster Federation system was able to connect and authenticate against the - clusters' endpoints. If not, consult the event logs of the federation-controller-manager pod to ascertain what the failure might be. (`kubectl --namespace=federation logs $(kubectl get pods --namespace=federation -l module=federation-controller-manager -oname`) + clusters' endpoints. If not, consult the event logs of the federation-controller-manager pod to ascertain what the failure might be. (`kubectl --namespace=federation logs $(kubectl get pods --namespace=federation -l module=federation-controller-manager -o name`) 3. That the login credentials provided to the Cluster Federation API for the clusters have the correct authorization and quota to create ingresses/services/replicasets in the relevant namespace in the From 23944b409285e18458c01d0924b59d8887e5795e Mon Sep 17 00:00:00 2001 From: Stewart-YU <30410021+stewart-yu@users.noreply.github.com> Date: Thu, 10 Aug 2017 23:18:35 +0800 Subject: [PATCH 10/26] Update zookeeper.md delete word "documentation" --- docs/tutorials/stateful-application/zookeeper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorials/stateful-application/zookeeper.md b/docs/tutorials/stateful-application/zookeeper.md index 01b782936b..1ef52a7a23 100644 --- a/docs/tutorials/stateful-application/zookeeper.md +++ b/docs/tutorials/stateful-application/zookeeper.md @@ -776,7 +776,7 @@ drwxr-sr-x 3 zookeeper zookeeper 4096 Dec 5 20:45 /var/lib/zookeeper/data ## Managing the ZooKeeper Process The [ZooKeeper documentation](https://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_supervision) -documentation indicates that "You will want to have a supervisory process that +indicates that "You will want to have a supervisory process that manages each of your ZooKeeper server processes (JVM)." Utilizing a watchdog (supervisory process) to restart failed processes in a distributed system is a common pattern. When deploying an application in Kubernetes, rather than using From a0a999d88ed5bf20a0064945a1ce0e192efade3f Mon Sep 17 00:00:00 2001 From: Stewart-YU <30410021+stewart-yu@users.noreply.github.com> Date: Thu, 10 Aug 2017 23:29:31 +0800 Subject: [PATCH 11/26] Update kubeadm.md spelling mistake. --- docs/admin/kubeadm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/admin/kubeadm.md b/docs/admin/kubeadm.md index 90e2b9d0c7..c4f0d5a5cd 100644 --- a/docs/admin/kubeadm.md +++ b/docs/admin/kubeadm.md @@ -79,7 +79,7 @@ cluster. This is also the address used to construct the suggested `kubeadm join` line at the end of the init process. If not set (or set to 0.0.0.0) then IP for the default interface will be used. -This address is also added to the certifcate that the API Server uses. +This address is also added to the certificate that the API Server uses. - `--apiserver-bind-port` From cc7cadb138526b6e823277673d385197f03e1505 Mon Sep 17 00:00:00 2001 From: Stewart-YU <30410021+stewart-yu@users.noreply.github.com> Date: Fri, 11 Aug 2017 03:03:54 +0800 Subject: [PATCH 12/26] Update ingress.md (#4712) spelling mistake. --- docs/tasks/administer-federation/ingress.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/administer-federation/ingress.md b/docs/tasks/administer-federation/ingress.md index 3269071958..4f0977f4ae 100644 --- a/docs/tasks/administer-federation/ingress.md +++ b/docs/tasks/administer-federation/ingress.md @@ -230,7 +230,7 @@ In particular, Federated ReplicaSets ensure that the desired number of pods are kept running in each cluster, even in the event of node failures. In the event of entire cluster or availability zone failures, Federated ReplicaSets automatically place additional -replacas in the other available clusters in the federation to accommodate the +replicas in the other available clusters in the federation to accommodate the traffic which was previously being served by the now unavailable cluster. While the Federated ReplicaSet ensures that sufficient replicas are kept running, the Federated Ingress ensures that user traffic is From c835bfc68d19051c11eb3f46ac3ebd5c3745100e Mon Sep 17 00:00:00 2001 From: Michelle Au Date: Thu, 10 Aug 2017 16:04:02 -0700 Subject: [PATCH 13/26] Add multizone limitations regarding dynamic provisioning (#4706) --- docs/admin/multiple-zones.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/admin/multiple-zones.md b/docs/admin/multiple-zones.md index acb5cb7061..8963259213 100644 --- a/docs/admin/multiple-zones.md +++ b/docs/admin/multiple-zones.md @@ -73,6 +73,18 @@ available and can tolerate the loss of a zone, the control plane is located in a single zone. Users that want a highly available control plane should follow the [high availability](/docs/admin/high-availability) instructions. +* StatefulSet volume zone spreading when using dynamic provisioning is currently not compatible with +pod affinity or anti-affinity policies. + +* If the name of the StatefulSet contains dashes ("-"), volume zone spreading +may not provide a uniform distribution of storage across zones. + +* When specifying multiple PVCs in a Deployment or Pod spec, the StorageClass +needs to be configured for a specific, single zone, or the PVs need to be +statically provisioned in a specific zone. Another workaround is to use a +StatefulSet, which will ensure that all the volumes for a replica are +provisioned in the same zone. + ## Walkthrough From fa691dafe775308d60711f9ee7b8bfb77542ed1f Mon Sep 17 00:00:00 2001 From: William Martin Stewart Date: Fri, 11 Aug 2017 01:41:10 +0200 Subject: [PATCH 14/26] Version Selector (#4386) * Show current version of docs in nav * Branch in edit link * WIP version selector * An actual working but not pretty version dropdown * update URLs for versions v1.7: https://kubernetes.io/docs/home/ v1.6: https://v1-6.docs.kubernetes.io/docs/home/ v1.5: https://v1-5.docs.kubernetes.io/docs/home/ v1.4: https://v1-4.docs.kubernetes.io/docs/home/ * fix v1.4 and v1.5 paths * Tidier drop downs * Make font visible always * Make background match main nav always * change to major.minor version number * show only major.minor version in drop down list * switch from githubbranch to docsbranch * update githubbranch * update githubbranch values * Border radius for bottom of dropdown * Tabs are hard --- _config.yml | 21 +++++++++++++++++++++ _includes/header.html | 11 +++++++++++ _sass/_base.sass | 30 +++++++++++++++++++++++++++++- editdocs.md | 2 +- 4 files changed, 62 insertions(+), 2 deletions(-) diff --git a/_config.yml b/_config.yml index f6071aef08..86f961e2a5 100644 --- a/_config.yml +++ b/_config.yml @@ -22,6 +22,27 @@ defaults: version: "v1.7" githubbranch: "master" docsbranch: "master" + versions: + - fullversion: "v1.7.3" + version: "v1.7" + githubbranch: "v1.7.3" + docsbranch: "release-1.7" + url: https://kubernetes.io/docs/home/ + - fullversion: "v1.6.8" + version: "v1.6" + githubbranch: "v1.6.8" + docsbranch: "release-1.6" + url: https://v1-6.docs.kubernetes.io/docs/home/ + - fullversion: "v1.5.7" + version: "v1.5" + githubbranch: "v1.5.7" + docsbranch: "release-1.5" + url: https://v1-5.docs.kubernetes.io/docs/ + - fullversion: "v1.4.12" + version: "v1.4" + githubbranch: "v1.4.12" + docsbranch: "release-1.4" + url: https://v1-4.docs.kubernetes.io/docs/ - scope: path: "docs" diff --git a/_includes/header.html b/_includes/header.html index 714056a347..a4c5250282 100644 --- a/_includes/header.html +++ b/_includes/header.html @@ -10,6 +10,17 @@
  • Partners
  • Community
  • Case Studies
  • +
  • + + {{page.version}} + + +
  • + Try Kubernetes diff --git a/_sass/_base.sass b/_sass/_base.sass index ca48b70ccb..5e96e07c47 100644 --- a/_sass/_base.sass +++ b/_sass/_base.sass @@ -258,12 +258,40 @@ ul.global-nav left: 0 background: #fff + ul + display: none + position: fixed + top: 40px + text-align: left + + li + display: block + height: 28px + + a + background: $dark-grey + color: #fff + padding: 7px + + li:last-child + a + border-radius: 7px + + li:hover + ul + display: block + .flip-nav ul.global-nav li a, .open-nav ul.global-nav li a, - color: #333 + color: $dark-grey + +.flip-nav ul.global-nav li ul li a, + background: #fff + color: $dark-grey .flip-nav ul.global-nav li a.active:after, +.flip-nav ul.global-nav li ul li a.active:after, .open-nav ul.global-nav li a.active:after, background: $blue diff --git a/editdocs.md b/editdocs.md index 05dadd90cf..cee46f80ef 100644 --- a/editdocs.md +++ b/editdocs.md @@ -12,7 +12,7 @@ $( document ).ready(function() { $("#generalInstructions").hide(); $("#continueEdit").show(); $("#continueEditButton").text("Edit " + forwarding); - $("#continueEditButton").attr("href", "https://github.com/kubernetes/kubernetes.github.io/edit/master/" + forwarding) + $("#continueEditButton").attr("href", "https://github.com/kubernetes/kubernetes.github.io/edit/{{ page.docsbranch }}/" + forwarding) $("#viewOnGithubButton").text("View " + forwarding + " on GitHub"); $("#viewOnGithubButton").attr("href", "https://git.k8s.io/kubernetes.github.io/" + forwarding) } else { From 8f887edaf19c0f9a8eeeba6144dacb3f80db8b16 Mon Sep 17 00:00:00 2001 From: Stewart-YU <30410021+stewart-yu@users.noreply.github.com> Date: Fri, 11 Aug 2017 07:58:08 +0800 Subject: [PATCH 15/26] Update run-single-instance-stateful-application.md (#4709) missing a space --- .../run-application/run-single-instance-stateful-application.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/run-application/run-single-instance-stateful-application.md b/docs/tasks/run-application/run-single-instance-stateful-application.md index b236fd06d9..47dacc184a 100644 --- a/docs/tasks/run-application/run-single-instance-stateful-application.md +++ b/docs/tasks/run-application/run-single-instance-stateful-application.md @@ -157,7 +157,7 @@ behind a Service and you don't intend to increase the number of Pods. Run a MySQL client to connect to the server: ``` -kubectl run -it --rm --image=mysql:5.6 mysql-client -- mysql -h -ppassword +kubectl run -it --rm --image=mysql:5.6 mysql-client -- mysql -h -p ``` This command creates a new Pod in the cluster running a mysql client From 551587e72714aa467c002be8166d8e3895585ccf Mon Sep 17 00:00:00 2001 From: XsWack Date: Fri, 11 Aug 2017 08:18:57 +0800 Subject: [PATCH 16/26] Update service-access-application-cluster.md Fix leading spaces in kubectl commands and unified format.As ahmetb says,This is causing bash/zsh shells to not to record the executed command in the history. See this link for details: https://unix.stackexchange.com/questions/115917/why-is-bash-not-storing-commands-that-start-with-spaces --- .../service-access-application-cluster.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/access-application-cluster/service-access-application-cluster.md b/docs/tasks/access-application-cluster/service-access-application-cluster.md index a229ec8e4c..ebbd195b5e 100644 --- a/docs/tasks/access-application-cluster/service-access-application-cluster.md +++ b/docs/tasks/access-application-cluster/service-access-application-cluster.md @@ -105,7 +105,7 @@ provides load balancing for an application that has two running instances. 1. Use the node address and node port to access the Hello World application: - curl http://: + curl http://: where `` is the public IP address of your node, and `` is the NodePort value for your service. From b6c5ecd438b30b6b4ec715224ec1a1f23ed14ed9 Mon Sep 17 00:00:00 2001 From: Slava Semushin Date: Thu, 10 Aug 2017 15:21:31 +0200 Subject: [PATCH 17/26] encrypt-data.md: make base64 command work on Linux. --- docs/tasks/administer-cluster/encrypt-data.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/administer-cluster/encrypt-data.md b/docs/tasks/administer-cluster/encrypt-data.md index 9a6e596e9b..f024f58066 100644 --- a/docs/tasks/administer-cluster/encrypt-data.md +++ b/docs/tasks/administer-cluster/encrypt-data.md @@ -104,7 +104,7 @@ To create a new secret perform the following steps: 1. Generate a 32 byte random key and base64 encode it. If you're on Linux or Mac OS X, run the following command: ``` - head -c 32 /dev/urandom | base64 -i - -o - + head -c 32 /dev/urandom | base64 ``` 2. Place that value in the secret field. From b2799fbe81dbc65ae76f784de8d205248cf161dc Mon Sep 17 00:00:00 2001 From: Kaitlyn Barnard Date: Thu, 10 Aug 2017 21:38:22 -0700 Subject: [PATCH 18/26] adding partners to partner pages (#4747) --- _includes/partner-script.js | 79 ++++++++++++++++++++++---- images/square-logos/ibm.png | Bin 8968 -> 11715 bytes images/square-logos/instana.png | Bin 0 -> 21452 bytes images/square-logos/kenzan.png | Bin 0 -> 4356 bytes images/square-logos/kublr.png | Bin 0 -> 5465 bytes images/square-logos/netsil.png | Bin 0 -> 5806 bytes images/square-logos/platform9.png | Bin 8286 -> 4085 bytes images/square-logos/rancher-labs.png | Bin 0 -> 6244 bytes images/square-logos/suse.png | Bin 0 -> 12179 bytes images/square-logos/treasure-data.png | Bin 0 -> 8302 bytes 10 files changed, 67 insertions(+), 12 deletions(-) create mode 100644 images/square-logos/instana.png create mode 100644 images/square-logos/kenzan.png create mode 100644 images/square-logos/kublr.png create mode 100644 images/square-logos/netsil.png create mode 100644 images/square-logos/rancher-labs.png create mode 100644 images/square-logos/suse.png create mode 100644 images/square-logos/treasure-data.png diff --git a/_includes/partner-script.js b/_includes/partner-script.js index 8a0f11ba51..cb991e19d1 100644 --- a/_includes/partner-script.js +++ b/_includes/partner-script.js @@ -72,10 +72,10 @@ }, { type: 0, - name: 'Rancher', - logo: 'rancher', + name: 'Rancher Labs', + logo: 'rancher-labs', link: 'http://rancher.com/kubernetes/', - blurb: 'Rancher is an open-source, production-ready container management platform that makes it easy to deploy and leverage Kubernetes in the enterprise.' + blurb: 'Rancher is an open-source, production-ready container management platform that makes it easy to deploy and manage Kubernetes.' }, { type: 0, @@ -280,13 +280,6 @@ link: 'https://harbur.io/', blurb: 'Based in Barcelona, Harbur is a consulting firm that helps companies deploy self-healing solutions empowered by Container technologies' }, - { - type: 1, - name: 'Endocode', - logo: 'endocode', - link: 'https://endocode.com/kubernetes/', - blurb: 'Endocode practices and teaches the open source way. Kernel to cluster - Dev to Ops. We offer Kubernetes trainings, services and support.' - }, { type: 0, name: 'Spotinst', @@ -424,7 +417,7 @@ type: 0, name: 'Cobe', logo: 'cobe', - link: 'https://cobe.io/blog/posts/problems-within-your-kubernetes-cluster/', + link: 'https://cobe.io/product-page/', blurb: 'Manage Kubernetes clusters with a live, searchable model that captures all relationships and performance data in full visualised context.' }, { @@ -510,8 +503,70 @@ logo: 'codedellemc', link: 'https://blog.codedellemc.com', blurb: 'Respected as a thought leader in storage persistence for containerized applications. Contributed significant work to K8 and Ecosystem' + }, + { + type: 0, + name: 'SUSE Llc.', + logo: 'suse', + link: 'https://www.suse.com/products/caas-platform/', + blurb: 'SUSE delivers Kubernetes as part of SUSE CaaS Platform and SUSE OpenStack Cloud, for enterprises that want truly open, open source solutions for cloud-native applications.' + }, + { + type: 0, + name: 'Instana', + logo: 'instana', + link: 'https://www.instana.com/supported-technologies/', + blurb: 'Instana monitors the infrastructure, containers and services deployed on a Kubernetes cluster.' + }, + { + type: 0, + name: 'Netsil', + logo: 'netsil', + link: 'https://netsil.com/kubernetes/', + blurb: 'Generate a real-time, auto-discovered application topology map! Monitor Kubernetes pods and namespaces without any code instrumentation.' + }, + { + type: 0, + name: 'Treasure Data', + logo: 'treasure-data', + link: 'https://fluentd.treasuredata.com/kubernetes-logging/', + blurb: 'Fluentd Enterprise brings smart, secure logging to Kubernetes, and brings integrations with backends such as Splunk, Kafka, or AWS S3.' + }, + { + type: 0, + name: 'IBM', + logo: 'IBM', + link: 'https://www.ibm.com/cloud-computing/bluemix/containers', + blurb: 'IBM Container Service is a managed k8s environment with built-in cluster security and isolation while leveraging services including Watson, IoT, Weather, etc.' + }, + { + type: 1, + name: 'IBM', + logo: 'IBM', + link: 'https://www.ibm.com/cloud-computing/bluemix/containers', + blurb: 'IBM Container Service is a managed k8s environment with built-in cluster security and isolation while leveraging services including Watson, IoT, Weather, etc.' + }, + { + type: 1, + name: 'Kenzan', + logo: 'Kenzan', + link: 'http://kenzan.com/?ref=kubernetes', + blurb: 'Kenzan is a software engineering and full-service consulting firm that provides customized, end-to-end solutions that drive change through digital transformation.' + }, + { + type: 0, + name: 'Kublr', + logo: 'kublr', + link: 'http://kublr.com', + blurb: 'Simplify your Kubernetes experience with a fully production-ready, enterprise-grade cluster management platform.' + }, + { + type: 0, + name: 'Endocode AG', + logo: 'endocode', + link: 'https://endocode.com/kubernetes/', + blurb: 'Endocode practices and teaches the open source way. Kernel to cluster - Dev to Ops. We offer Kubernetes trainings, services and support.' } - ] var isvContainer = document.getElementById('isvContainer') diff --git a/images/square-logos/ibm.png b/images/square-logos/ibm.png index 9684389f5f8b1b4af5e87dcd4cc2f3e06bde8831..ae4228e1c73f3e1a461e890e0a6e2f47d875a00c 100644 GIT binary patch literal 11715 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 literal 8968 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

    %@MjfZ0hDb>#~>o=vM{F%Cs%jkcP) zoy#cXwm%v#U2y#(3;)w_3jB@Qv5OAQ(5mTG_bUxj2Ck~tr%)$JPAh7J{d6~7Pjyf4 z=FGxX%aK3#t1Q8v+7Y!K><*%ARJbhYQE3oJe!wtrOIx+ht>P(zQ8Q?1tO2OlGRb5| zmo`%{#E~bD_hF06TkUOk#vkmy*0B##i3ID7B>pZ<3LnB?5+Kw=u9n7+g1bo$kG<7d z?>=cAoG2M1I|HUD*=9ngKCxVw_I3IWUHUTH6~$ywO0!{_=FaD6Ke5#Ji8K!h zPLgc$EGi|;WJp~7h39_1!vtw~W;5PKS$qra=-=J2`0+h)l_g(N#R}MMh`|~cOAqt) zC}GS=5)C#qdtdh7tRm{`QbpckeUbOt5#$*VKE^Vy*Qul4=+g2HyW%$sXC3D2vFM$D z-w?`=`?O$h8z6EMPrO7r-HN98{l4q`}EG)%j8Lv5#ziL6P3fE~dVi0B(f|Y_u@7 zrx=2plVK=_`*#F^7nX#}H1maj>-my@lPk!{!~1nJOD*tmUF#Xz4e88s%q?jR(7BfS zJsC{odIT7q0SGlY#F8Mlhr$BXCQznGN*8UdZ!qBx6ZwQ<$k0rwMXb49Yy)(4e5#hc zNJylP8nj%am0emfZPrhFtq2U!l2}6wiw=Di2$7i=l@%(a!p8|@J&JeFvjU8^qmu7$ zYfMQxJi;4e$$`Z1C6Q{sF_v#so)3cV^5v*}CcLI^KUh_txdJiYik{O0UjwjlkUEg{ zm$YlR$X-#fbUkbM2l+RBHcm`@aW2)wJFowGiEN{OAn-pZUQomjwbqEkkt#ifapk1q zVbu9InRh)$nz;20eL=_@Kfa(e3cT4csqe%JOXf?>^?qt+Pk^S0m(QXEEP&Q>H zA+Dk4@d~p#vA2)Ds1N(jW0Hn3}`Rm|_p2dViB+s}b zZ_Qhbv%phChM}Vj2MdA~#ORfprzg-^$jR9OGYa9Y4qN0Y-wz~&9#r61HwMsTmL9Lz zS2P{lojBee=C8>hxE*&36MvuT7;)3IIoT5a%bf~PMGrse7Ac8M1G-#v_Z-bs8^6zm zy;faZ2D1`>0bW7oCf3Be)?*M`0by~6dTPRzknyy;Mcy}gMG1;efEH>C>Wao=keJ)` zFlZJ3_qO3uD@`K=|Kav3P5kk+@`#w<(oWY!4ahlVs7JB>eco4LG2t|)pupgfTjl4M)$KWEjbkwWTp;{Ejb*2)h+pn4fQA_W5kF zs!GCWX&gCNVmNGQ&_`77*Xz6C_-qoiwrTHqcdS?aB$R~~DXZdCPs zpRrHZF3A8yOyL(_;z{G0{^K~EE(ZP1w@EB>E9f$hs-v&!8E6_TLoSw6vGVie^4Jx9Jq)p-~9{({_+2JSl_@K;T6&90}gT?#vcY%P%u|e<7 zlBlPzqhJ^hR|^|0mJS6Q>#32j8||O%aWmM|%;~t=)N*V?Xf1YNug*>K-&zW-U9K3P z%nkPwk1nDo<^yt(&Qhz)a<8*Gb7zmE@i1iU8TRv4K>vh7Xuqm3<$9h~Zbf){l+8k5 zr?l$^6A&^IB@M?sC}mbxj{!#Qv{{&;-vPIgCh1=j0(k`WtuSB=eIp#!#%5JTcC=Hp z_^ZrQ@TCEy{3FtT*h$GcEukIgkP45rR#CO9P@L{=p%q0nfhkZuOvdQ)hz069LLExPA2md@I4&#Lsg(<>i#uPJSfdK9H6 zE_{Yb7V}1)KW}MH{nq~_ZuoytLA(p3EvOD1`DXT7rSXtjR#LqFOjhmPovV2h|C{2T zbS-2Q$i`wjH*|KmY~^uHm~_3?FagcMUUNwjaXWVZl9^D}6Rv6y#L-x94dwGs&gau? zdyRI2eebob21}_es|&xkq_B6Mlt`2Rw?gCSUG1@NyD5nZ@sFV3KNSm%!e>>PS}D`e F{{mr0tM>o^ diff --git a/images/square-logos/instana.png b/images/square-logos/instana.png new file mode 100644 index 0000000000000000000000000000000000000000..339875e60420aea9cf2465d69631a31fa8b63bd5 GIT binary patch literal 21452 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 FV1f{^<#GT3 literal 0 HcmV?d00001 diff --git a/images/square-logos/kenzan.png b/images/square-logos/kenzan.png new file mode 100644 index 0000000000000000000000000000000000000000..410be938e08e9f95266139a87455a96636633472 GIT binary patch literal 4356 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 literal 0 HcmV?d00001 diff --git a/images/square-logos/kublr.png b/images/square-logos/kublr.png new file mode 100644 index 0000000000000000000000000000000000000000..eeab03b16218513049baf2acb4e6241f5981070c GIT binary patch literal 5465 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 literal 0 HcmV?d00001 diff --git a/images/square-logos/netsil.png b/images/square-logos/netsil.png new file mode 100644 index 0000000000000000000000000000000000000000..633b583b13044dde2fc9504b9c072dc10bdb2bb7 GIT binary patch literal 5806 zcmbVQ2{e@L+m{mAmk^3UgfPa8-4J7BH@2w8GR$BsGmNn(TTvu$*{QMA*t11;vP8zN zq(VaWExSm*(fjuQ{^xxE^PTT}bI#2DJlAtwziYql`WG&KO~0jg90PYe+S2=Mg4`KSg!MSkO|Qm>E6KoP)i7NR>; zfxyZDB^6naf{L;{L>eG32T}yesQ^I`899)uoQkR(2=LEG zgsP2zc2+gl(fvmk^$sfHN+f!z0)hVi{<8jHSvh6l95OzEI3g-Q z2InLC2SEqp<3zxE5wUn2;206*i1#HzMW~kk?SiM5vGKovaX$Y9iW)Lt0Llvpl9dB` zdLH}ro7;zIj`?ph{v)@KWuO-ZXpZs0`x2a}`EVBfBTS9m|E}nmk!p>qDFI7O3d%zV z@8s)=!4dU!pd!>KvS=(?RoT%A4R)eN46NX&ECWG-Au^6=6|{_kGTI5F;Ea-|lK0a1|v5U0oPlOIJ}*=Z~yD&WDJ?Ibr_j#!_|vBMbju zWmRDW42p;+SmN;>f2siCiYMZIT=8B280Ym^H3RkLU+sj!QG19$ZI(Ad zQnfTRoIUzFT9yHym!C2vS`62A9?e|@%YiE!&ffHlg*&?e5ra|#jQ7|OW@lUa8pYGp zY4WCql4A%n*MhIQhrA!^bhITi%!2gGECTPb>A=5Oe`T~Wy!o`euHEef#~Tw`aKe+2 z<`7QHjj)6?BWJ?wL8-5H)J3&R!AE`7yVbiYN6#39Upx9Gq@HXW^R_) zHvz6catkWH@^+gZmpf%G`=nre*V+}cWtiMD*_e@$D2my=m#DbLHeW9MBTkt4JcNts zQgvz*+@t9(Vjyqxrr;6>k-pC9c_okj_v-0^aIl#GDdx?q$XQmdn(!N54kw!CC7`G3 zoVfGh?`*V@_hyqoUG1Lx=;T)XlsHC$sWfYpX;|dt8cdR7^YXp>EM5BkJT4P-*BX69$Ff1Lp21PB z#rw2rnD_lh;itE)7-~aN`yV!?4^%%p&SX|QduZMwnJSz6CEeN)&q6cDDU9S1XBgqV z2M)XRh!KRFo5aodsH`_%_B>(>SXZ0sZ=eo3^UvK@i36wP#%opaLv%;76>l;6-($w0 zs`h>=^1Jlqd~?z8l-x{mEN+42P4YWXO# zZ+oCcSvDP9scU)Y*~57h%lThIgamM+Esb-p?AD?}OwMdcV#yez@y%1wYpC~Uk}^oy z(#3+!lP4{o$g?7@ksEXGj}CqdWmHnynw)i!V0uDhd|%{Sx~}byh^-zZGOq2B%)Yu% zY_@d%SvcTZ(}fsSuqW31>-kD^XB?Z|>vM96wtuD73tp1A#6cFy)9ESIZdYtwZ6=vH zNYsmfCuoY~qeu$mt(lF&uG1fX9(5_pCEm4uJ$$c%u@+J*OlNdgK8qf;yI)7d4y|5* z-T%0LCY2{sn?9};!IOb(dWo1mWP`2Q-UwmfZo^ow8k>fF)wcL1rhIskiS7B?9MQug z8>L&C7?KVveG#2EX&F_KdiLdxHu8+c^kI*U^X=OLt*d-zK}Uvm`y|>H<@R)Iw4-I<{3V_eL;^IITkP)6 z+eZl~3b8N3nKA1TKSC;X;{~ElqqZb7-GM<2xxSm ze(5QPWnJFjOM92FpZu<$c|JzkcjKAzOUd>ODJ%xd4idc_@-GJ3Mau$1W1~)Y>rcqW zv9ywEPj$yF7$!JgB=4(9IFd4}#}nuyA~FR41SLwel3e2KP<*+R<5&$~{s!$Z0p3B@ zmucd7^}4cQ<n zZ`U#oN1|6()t1)>o$9<#c=1m;ii%wsj-ot5SXvp0c-`XT1Ss)~0v(*&!Wvd~rxx27 zly`HYDL=Z%8b|01gOAxZ)t{K#|L2L=j$>HSN1E(`od8n;;&j}n^VgjC0KNg4m#(-+RpC` z<%un+yDBP*(`amU_a{a0B zejh9W51*4ZmQQr1+my6P^u~73oiW{>V;10@H%us5%93i({KK>Ktkze8dS|Si}vf%gN>+YVTpy95zEzyqzTC^!a(W_#|G~ zU2~p~n43i-**Da69qhC)E~W-kupx`u%yy;LEePuo1=^jkAO zlxN_9VVNbWl~BmPS}dTv(-C1yqL$Z?x|ko}i&wzxpAsg>`cXs64nc}pl|-Y@L*GDD zH+D^6GgOBKmEe>0L#63wxx6k`u&g4)td(I{qs-t!yxvj-onV&7XZ+qWAkcyaULY

    IeqBwa-GeFqe2m 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 D8QFwl literal 0 HcmV?d00001 diff --git a/images/square-logos/platform9.png b/images/square-logos/platform9.png index 8a3bc5a634e13a8431da301bb229e488a3ab6a5d..bb1893d14dae4526027f90e7ab828e19b66254c5 100644 GIT binary patch literal 4085 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 IjgE%@3u(*zmH+?% literal 8286 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 literal 0 HcmV?d00001 diff --git a/images/square-logos/suse.png b/images/square-logos/suse.png new file mode 100644 index 0000000000000000000000000000000000000000..453b8044e810172e4ab19091ab8f04e541385786 GIT binary patch literal 12179 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 literal 0 HcmV?d00001 From 7e018fd376e6fccfb4185116eeb14d6ceab1003c Mon Sep 17 00:00:00 2001 From: xuzhonghu Date: Fri, 11 Aug 2017 10:29:25 +0800 Subject: [PATCH 19/26] fix typo in authentication.md --- docs/admin/authentication.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/admin/authentication.md b/docs/admin/authentication.md index 72353b5d72..1fc47a57e4 100644 --- a/docs/admin/authentication.md +++ b/docs/admin/authentication.md @@ -43,7 +43,7 @@ with the request: * Username: a string which identifies the end user. Common values might be `kube-admin` or `jane@example.com`. * UID: a string which identifies the end user and attempts to be more consistent and unique than username. -* Groups: a set of strings which associate users with as set of commonly grouped users. +* Groups: a set of strings which associate users with a set of commonly grouped users. * Extra fields: a map of strings to list of strings which holds additional information authorizers may find useful. All values are opaque to the authentication system and only hold significance From 23e16bd150040f1db80ef86b56105c7a725b85c3 Mon Sep 17 00:00:00 2001 From: Lion-Wei Date: Fri, 11 Aug 2017 10:27:59 +0800 Subject: [PATCH 20/26] Modify some of the syntax errors in the Chinese document 'scale-intro' --- cn/docs/tutorials/kubernetes-basics/scale-intro.html | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/cn/docs/tutorials/kubernetes-basics/scale-intro.html b/cn/docs/tutorials/kubernetes-basics/scale-intro.html index d021b9586b..05d1e2b47d 100644 --- a/cn/docs/tutorials/kubernetes-basics/scale-intro.html +++ b/cn/docs/tutorials/kubernetes-basics/scale-intro.html @@ -26,8 +26,9 @@ title: 运行应用程序的多个实例

    应用程序伸缩

    -

    在之前的模块中,我们创建了一个 Deployment,然后通过 Service让应用程序外部可见。Deployment 仅为我们的应用程序创建了一个 Pod。 当流量增加时,我们将需要 - 应用程序以跟上用户需求。

    +

    在之前的模块中,我们创建了一个 Deployment,然后通过 Service让应用程序外部可见。 + Deployment 仅为我们的应用程序创建了一个 Pod。 + 当流量增加时,我们将需要扩展应用程序以跟上用户需求。

    Scaling 是通过更改 Deployment 中的副本数量实现的。

    @@ -86,7 +87,8 @@ title: 运行应用程序的多个实例
    -

    扩展 Deployment 将确保新创建的 Pods 会调度到可用资源的 Node 节点上,收缩会保证 Pods 数量减少至新的所需状态。 Kubernetes 还支持 Pods 的 自动缩放版 ,但不在本教程范围之内。收缩到零也是可以的,此时它将终止指定 Deployment 的所有 Pod。

    +

    扩展 Deployment 将确保创建新的 Pods 并将其调度到拥有可用资源的 Node 节点上,收缩会保证 Pods 数量减少至新的所需状态。 + Kubernetes 还支持 Pods 的 自动缩放 ,但不在本教程范围之内。收缩到零也是可以的,此时它将终止指定 Deployment 的所有 Pod。

    运行应用程序的多个实例需要一种将流量分发给所有实例的方法。服务有内置的负载均衡器,可将网络流量分配给 Deployment 暴露的所有 Pods。服务通过使用 endpoints 持续监控运行的 Pods,以确保流量仅发送到可用的 Pods。

    @@ -102,7 +104,7 @@ title: 运行应用程序的多个实例
    -

    一旦您有应用程序的多个实例,您将能够滚动更新,而不会停止服务————我们将在下一个模块中介绍这些。现在,我们去在线终端对我们的应用程序进行伸缩。

    +

    一旦您有应用程序的多个实例,您将能够滚动更新,而不会停止服务,我们将在下一个模块中介绍这些。现在,我们去在线终端对我们的应用程序进行伸缩。


    From 290e77988fc383f8a7a589c39ec5ba776c05cc54 Mon Sep 17 00:00:00 2001 From: Lion-Wei Date: Fri, 11 Aug 2017 11:39:48 +0800 Subject: [PATCH 21/26] Update federation-service-discovery.md add a space. --- docs/tasks/federation/federation-service-discovery.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/federation/federation-service-discovery.md b/docs/tasks/federation/federation-service-discovery.md index 9ffa98b632..3ead57bb01 100644 --- a/docs/tasks/federation/federation-service-discovery.md +++ b/docs/tasks/federation/federation-service-discovery.md @@ -356,7 +356,7 @@ how to bring up a cluster federation correctly (or have your cluster administrat Check that: 1. Your clusters are correctly registered in the Cluster Federation API (`kubectl describe clusters`) -2. Your clusters are all 'Active'. This means that the cluster Federation system was able to connect and authenticate against the clusters' endpoints. If not, consult the logs of the federation-controller-manager pod to ascertain what the failure might be. (`kubectl --namespace=federation logs $(kubectl get pods --namespace=federation -l module=federation-controller-manager -oname`) +2. Your clusters are all 'Active'. This means that the cluster Federation system was able to connect and authenticate against the clusters' endpoints. If not, consult the logs of the federation-controller-manager pod to ascertain what the failure might be. (`kubectl --namespace=federation logs $(kubectl get pods --namespace=federation -l module=federation-controller-manager -o name`) 3. That the login credentials provided to the Cluster Federation API for the clusters have the correct authorization and quota to create services in the relevant namespace in the clusters. Again you should see associated error messages providing more detail in the above log file if this is not the case. 4. Whether any other error is preventing the service creation operation from succeeding (look for `service-controller` errors in the output of `kubectl logs federation-controller-manager --namespace federation`). From 34693b50c92b326a7b5c331558258249054b09d6 Mon Sep 17 00:00:00 2001 From: William Martin Stewart Date: Fri, 11 Aug 2017 08:07:00 +0200 Subject: [PATCH 22/26] Add deprecated docs warning mechanism (#4731) * Deprecated docs warning * Unknown tag 'endcomment' * only add css when necessary * try lighter bgcolor * tweak copy * change development url to point at vnext-staging * try callout * rollback * change var names * update var used * fix var typo * turn off deprecation message --- _config.yml | 3 +++ _includes/deprecation-warning.html | 12 ++++++++++++ _includes/head.html | 1 + _layouts/docwithnav.html | 2 ++ css/deprecation-warning.css | 6 ++++++ index.html | 2 ++ 6 files changed, 26 insertions(+) create mode 100644 _includes/deprecation-warning.html create mode 100644 css/deprecation-warning.css diff --git a/_config.yml b/_config.yml index 86f961e2a5..5f123c183e 100644 --- a/_config.yml +++ b/_config.yml @@ -43,6 +43,9 @@ defaults: githubbranch: "v1.4.12" docsbranch: "release-1.4" url: https://v1-4.docs.kubernetes.io/docs/ + deprecated: false + currentUrl: https://kubernetes.io/docs/home/ + nextUrl: http://kubernetes-io-vnext-staging.netlify.com/ - scope: path: "docs" diff --git a/_includes/deprecation-warning.html b/_includes/deprecation-warning.html new file mode 100644 index 0000000000..39e9ff6289 --- /dev/null +++ b/_includes/deprecation-warning.html @@ -0,0 +1,12 @@ +{% if page.deprecated %} +
    +
    +
    +

    + Documentation for Kubernetes {{ page.version}} is no longer actively maintained. The version you are currently viewing is a static snapshot. + For up-to-date documentation, see the latest version. +

    +
    +
    +
    +{% endif %} diff --git a/_includes/head.html b/_includes/head.html index 0410510070..e20aad91d2 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -8,6 +8,7 @@ + {% if page.deprecated %}{% endif %} {% if page.class == "gridPage" %}{% endif %} {% if page.css %}{% else %}{% endif %} diff --git a/_layouts/docwithnav.html b/_layouts/docwithnav.html index b7da71eb57..b57af76f74 100755 --- a/_layouts/docwithnav.html +++ b/_layouts/docwithnav.html @@ -35,6 +35,8 @@
    +{% include deprecation-warning.html %} +
    diff --git a/css/deprecation-warning.css b/css/deprecation-warning.css new file mode 100644 index 0000000000..f7afeffe52 --- /dev/null +++ b/css/deprecation-warning.css @@ -0,0 +1,6 @@ +.deprecation-warning { + padding: 20px; + margin: 20px 0; + border-radius: 3px; + background-color: #eeeeee; +} diff --git a/index.html b/index.html index b8c0289fa8..12c614aec5 100644 --- a/index.html +++ b/index.html @@ -21,6 +21,8 @@ cid: home
    +{% include deprecation-warning.html %} +
    From cb6f20d7278f8cb22653e178ba2505341132bc23 Mon Sep 17 00:00:00 2001 From: netroby Date: Fri, 11 Aug 2017 13:13:48 +0800 Subject: [PATCH 23/26] To install latest weave net plugin Ref: https://www.weave.works/docs/net/latest/kubernetes/kube-addon/ --- docs/setup/independent/create-cluster-kubeadm.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/setup/independent/create-cluster-kubeadm.md b/docs/setup/independent/create-cluster-kubeadm.md index 2f00185983..b9b0b023fc 100644 --- a/docs/setup/independent/create-cluster-kubeadm.md +++ b/docs/setup/independent/create-cluster-kubeadm.md @@ -267,7 +267,8 @@ The official Weave Net set-up guide is [here](https://www.weave.works/docs/net/l **Note:** Weave Net works on `amd64`, `arm` and `arm64` without any extra action required. ```shell -kubectl apply -f https://git.io/weave-kube-1.6 +export kubever=$(kubectl version | base64 | tr -d '\n') +kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$kubever" ``` {% endcapture %} From 02430b4c7e69b12ff19d3b9450654b51e090c569 Mon Sep 17 00:00:00 2001 From: hanxiaoshuai <30897305+hanxiaoshuai@users.noreply.github.com> Date: Fri, 11 Aug 2017 14:31:32 +0800 Subject: [PATCH 24/26] Update pod-security-policy.md modify "their value is" to "their values are" --- docs/concepts/policy/pod-security-policy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/concepts/policy/pod-security-policy.md b/docs/concepts/policy/pod-security-policy.md index bd11aab825..74f603dff3 100644 --- a/docs/concepts/policy/pod-security-policy.md +++ b/docs/concepts/policy/pod-security-policy.md @@ -45,7 +45,7 @@ into three categories: - *Controlled by a boolean*: Fields of this type default to the most restrictive value. - *Controlled by an allowable set*: Fields of this type are checked -against the set to ensure their value is allowed. +against the set to ensure their values are allowed. - *Controlled by a strategy*: Items that have a strategy to provide a mechanism to generate the value and a mechanism to ensure that a specified value falls into the set of allowable values. From 0d671d8c06210f86203b20376c703d47f67d6557 Mon Sep 17 00:00:00 2001 From: TigerXu Date: Fri, 11 Aug 2017 15:39:10 +0800 Subject: [PATCH 25/26] Update pod-overview.md (#4762) * Update pod-overview.md fix typo * reword --- docs/concepts/workloads/pods/pod-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/concepts/workloads/pods/pod-overview.md b/docs/concepts/workloads/pods/pod-overview.md index a41ef59e42..57a3383587 100644 --- a/docs/concepts/workloads/pods/pod-overview.md +++ b/docs/concepts/workloads/pods/pod-overview.md @@ -19,7 +19,7 @@ A Pod encapsulates an application container (or, in some cases, multiple contain > [Docker](https://www.docker.com) is the most common container runtime used in a Kubernetes Pod, but Pods support other container runtimes as well. -Pods are employed in a number of ways in a Kubernetes cluster, including: +Pods in a Kubernetes cluster can be used in two main ways: * **Pods that run a single container**. The "one-container-per-Pod" model is the most common Kubernetes use case; in this case, you can think of a Pod as a wrapper around a single container, and Kubernetes manages the Pods rather than the containers directly. * **Pods that run multiple containers that need to work together**. A Pod might encapsulate an application composed of multiple co-located containers that are tightly coupled and need to share resources. These co-located containers might form a single cohesive unit of service--one container serving files from a shared volume to the public, while a separate "sidecar" container refreshes or updates those files. The Pod wraps these containers and storage resources together as a single manageable entity. From a26f5c5ce6feb54acc96aed915039388f3d92ea1 Mon Sep 17 00:00:00 2001 From: TigerXu Date: Fri, 11 Aug 2017 15:56:50 +0800 Subject: [PATCH 26/26] Add some links for pod-overview.md (#4763) * Add some links for pod-overview.md Add some links * use relative paths for URLs --- docs/concepts/workloads/pods/pod-overview.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/concepts/workloads/pods/pod-overview.md b/docs/concepts/workloads/pods/pod-overview.md index 57a3383587..3cfa73ef17 100644 --- a/docs/concepts/workloads/pods/pod-overview.md +++ b/docs/concepts/workloads/pods/pod-overview.md @@ -63,9 +63,9 @@ A Controller can create and manage multiple Pods for you, handling replication a Some examples of Controllers that contain one or more pods include: -* Deployment +* [Deployment](/docs/concepts/workloads/controllers/deployment/) * [StatefulSet](/docs/concepts/abstractions/controllers/statefulsets/) -* DaemonSet +* [DaemonSet](/docs/concepts/workloads/controllers/daemonset/) In general, Controllers use a Pod Template that you provide to create the Pods for which it is responsible. @@ -81,7 +81,7 @@ Rather than specifying the current desired state of all replicas, pod templates {% capture whatsnext %} * Learn more about Pod behavior: - * Pod Termination + * [Pod Termination](/docs/concepts/workloads/pods/pod/#termination-of-pods) * Other Pod Topics {% endcapture %}