From b3513842ba9ef418ddb64209a4cecde377a7077c Mon Sep 17 00:00:00 2001 From: Stewart-YU Date: Fri, 18 Aug 2017 02:40:08 +0800 Subject: [PATCH 001/129] Update kubectl-overview.md (#4894) * Update kubectl-overview.md Fix leading spaces in commands. * fix block shell --- docs/user-guide/kubectl-overview.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/user-guide/kubectl-overview.md b/docs/user-guide/kubectl-overview.md index ccfbd5662d..03aa085a6f 100644 --- a/docs/user-guide/kubectl-overview.md +++ b/docs/user-guide/kubectl-overview.md @@ -19,11 +19,10 @@ where `command`, `TYPE`, `NAME`, and `flags` are: * `command`: Specifies the operation that you want to perform on one or more resources, for example `create`, `get`, `describe`, `delete`. * `TYPE`: Specifies the [resource type](#resource-types). Resource types are case-sensitive and you can specify the singular, plural, or abbreviated forms. For example, the following commands produce the same output: - ```shell $ kubectl get pod pod1 $ kubectl get pods pod1 $ kubectl get po pod1 - ``` + * `NAME`: Specifies the name of the resource. Names are case-sensitive. If the name is omitted, details for all resources are displayed, for example `$ kubectl get pods`. When performing an operation on multiple resources, you can specify each resource by type and name or specify one or more files: From 5af8f6feae84fbdcfffe5693246d4378f82afe05 Mon Sep 17 00:00:00 2001 From: Anthony Date: Tue, 15 Aug 2017 14:50:47 +0800 Subject: [PATCH 002/129] Update index.md add "." for the sentence --- docs/tasks/job/fine-parallel-processing-work-queue/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/job/fine-parallel-processing-work-queue/index.md b/docs/tasks/job/fine-parallel-processing-work-queue/index.md index a3818c89f1..db4a8ebf8f 100644 --- a/docs/tasks/job/fine-parallel-processing-work-queue/index.md +++ b/docs/tasks/job/fine-parallel-processing-work-queue/index.md @@ -50,7 +50,7 @@ If you're not working from the source tree, you could also download [`redis-pod. Now let's fill the queue with some "tasks". In our example, our tasks are just strings to be printed. -Start a temporary interactive pod for running the Redis CLI +Start a temporary interactive pod for running the Redis CLI. ```shell $ kubectl run -i --tty temp --image redis --command "/bin/sh" From 21f09fd6ccac854aa0848fdc1de463627c02f4f3 Mon Sep 17 00:00:00 2001 From: Kenblair1226 Date: Fri, 18 Aug 2017 02:40:55 +0800 Subject: [PATCH 003/129] Modify the wrong hpa command. (#5009) --- .../run-application/horizontal-pod-autoscale-walkthrough.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough.md b/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough.md index b44baa485f..92c9c1e0f1 100644 --- a/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough.md +++ b/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough.md @@ -134,7 +134,7 @@ by making use of the `autoscaling/v2alpha1` API version. First, get the YAML of your HorizontalPodAutoscaler in the `autoscaling/v2alpha1` form: ```shell -$ kubectl get hpa.autoscaling.v2alpha1 -o yaml > /tmp/hpa-v2.yaml +$ kubectl get hpa.v2alpha1.autoscaling -o yaml > /tmp/hpa-v2.yaml ``` Open the `/tmp/hpa-v2.yaml` file in an editor, and you should see YAML which looks like this: From 1ad1fd5f16a1b6f129721b8ac39fec3904fc65ab Mon Sep 17 00:00:00 2001 From: Anthony Date: Fri, 18 Aug 2017 02:41:57 +0800 Subject: [PATCH 004/129] Update ip-masq-agent.md (#5008) delete "Kubernetes 1.7" --- docs/tasks/administer-cluster/ip-masq-agent.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/administer-cluster/ip-masq-agent.md b/docs/tasks/administer-cluster/ip-masq-agent.md index f5da4a3a76..9ed4987e48 100644 --- a/docs/tasks/administer-cluster/ip-masq-agent.md +++ b/docs/tasks/administer-cluster/ip-masq-agent.md @@ -7,7 +7,7 @@ This page shows how to configure and enable the ip-masq-agent. {% endcapture %} {% capture prerequisites %} -Kubernetes 1.7 + {% include task-tutorial-prereqs.md %} {% endcapture %} From 72c78a978865a1825b9fc0e6dd5218e64a3df186 Mon Sep 17 00:00:00 2001 From: Stewart-YU Date: Tue, 15 Aug 2017 14:56:06 +0800 Subject: [PATCH 005/129] Update install-kubectl.md Fix leading spaces in commands. --- docs/tasks/tools/install-kubectl.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/tasks/tools/install-kubectl.md b/docs/tasks/tools/install-kubectl.md index a2816c0aa5..567c485397 100644 --- a/docs/tasks/tools/install-kubectl.md +++ b/docs/tasks/tools/install-kubectl.md @@ -20,13 +20,13 @@ Here are a few methods to install kubectl. {% capture macos %} 1. Download the latest release with the command: - curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl + curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl To download a specific version, replace the `$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)` portion of the command with the specific version. For example, to download version {{page.fullversion}} on MacOS, type: - curl -LO https://storage.googleapis.com/kubernetes-release/release/{{page.fullversion}}/bin/darwin/amd64/kubectl + curl -LO https://storage.googleapis.com/kubernetes-release/release/{{page.fullversion}}/bin/darwin/amd64/kubectl 2. Make the kubectl binary executable. @@ -90,7 +90,7 @@ kubectl can be installed as part of the Google Cloud SDK. 1. Install the [Google Cloud SDK](https://cloud.google.com/sdk/). 2. Run the following command to install `kubectl`: - gcloud components install kubectl + gcloud components install kubectl 3. Run `kubectl version` to verify that the verison you've installed is sufficiently up-to-date. @@ -100,7 +100,7 @@ kubectl is available as a [snap](https://snapcraft.io/) application. 1. If you are on Ubuntu or one of other Linux distributions that support [snap](https://snapcraft.io/docs/core/install) package manager, you can install with: - sudo snap install kubectl --classic + sudo snap install kubectl --classic 2. Run `kubectl version` to verify that the verison you've installed is sufficiently up-to-date. @@ -108,7 +108,7 @@ kubectl is available as a [snap](https://snapcraft.io/) application. 1. If you are on macOS and using [Homebrew](https://brew.sh/) package manager, you can install with: - brew install kubectl + brew install kubectl 2. Run `kubectl version` to verify that the verison you've installed is sufficiently up-to-date. @@ -116,15 +116,15 @@ kubectl is available as a [snap](https://snapcraft.io/) application. 1. If you are on Windows and using [Chocolatey](https://chocolatey.org) package manager, you can install with: - choco install kubernetes-cli + choco install kubernetes-cli 2. Run `kubectl version` to verify that the verison you've installed is sufficiently up-to-date. 3. Configure kubectl to use a remote Kubernetes cluster: - cd C:\users\yourusername (Or wherever your %HOME% directory is) - mkdir .kube - cd .kube - touch config + cd C:\users\yourusername (Or wherever your %HOME% directory is) + mkdir .kube + cd .kube + touch config Edit the config file with a text editor of your choice, such as Notepad for example. From bc5951ca10c350e1751e0d63c4bc218420d64b3f Mon Sep 17 00:00:00 2001 From: Weibin Lin Date: Fri, 18 Aug 2017 02:43:08 +0800 Subject: [PATCH 006/129] fix some typos (#5007) * Update ingress.md fix typo * Update source-ip.md --- docs/tasks/administer-federation/ingress.md | 2 +- docs/tutorials/services/source-ip.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tasks/administer-federation/ingress.md b/docs/tasks/administer-federation/ingress.md index 4f0977f4ae..281d2c536f 100644 --- a/docs/tasks/administer-federation/ingress.md +++ b/docs/tasks/administer-federation/ingress.md @@ -293,7 +293,7 @@ Check that: [the GLBC docs](https://github.com/kubernetes/ingress/blob/7dcb4ae17d5def23d3e9c878f3146ac6df61b09d/controllers/gce/README.md) for further information. To remedy this, delete any ingresses created before the cluster joined the - federation (and had it's GLBC reconfigured), and recreate them if + federation (and had its GLBC reconfigured), and recreate them if necessary. {% endcapture %} diff --git a/docs/tutorials/services/source-ip.md b/docs/tutorials/services/source-ip.md index fb7ef48f99..bab393d37e 100644 --- a/docs/tutorials/services/source-ip.md +++ b/docs/tutorials/services/source-ip.md @@ -311,7 +311,7 @@ protocol between the loadbalancer and backend to communicate the true client IP such as the HTTP [X-FORWARDED-FOR](https://en.wikipedia.org/wiki/X-Forwarded-For) header, or the [proxy protocol](http://www.haproxy.org/download/1.5/doc/proxy-protocol.txt). Loadbalancers in the second category can leverage the feature described above -by simply creating a HTTP health check pointing at the port stored in +by simply creating an HTTP health check pointing at the port stored in the `service.spec.healthCheckNodePort` field on the Service. {% endcapture %} From 53177b5de00f3c55f453ce6380fbdd001f43b79c Mon Sep 17 00:00:00 2001 From: Ti Zhou Date: Fri, 18 Aug 2017 02:45:12 +0800 Subject: [PATCH 007/129] Fixed several typos in markdown files. (#5005) --- docs/admin/kubelet.md | 2 +- docs/api-reference/v1.7/README.md | 4 ++-- .../v1.7/node_modules/jquery.scrollto/CHANGELOG.md | 4 ++-- docs/api-reference/v1.7/node_modules/marked/README.md | 2 +- docs/concepts/workloads/controllers/garbage-collection.md | 2 +- docs/home/contribute/style-guide.md | 4 ++-- docs/resources-reference/v1.7/README.md | 4 ++-- .../v1.7/node_modules/jquery.scrollto/CHANGELOG.md | 4 ++-- .../v1.7/node_modules/marked/README.md | 2 +- docs/setup/independent/create-cluster-kubeadm.md | 2 +- docs/tasks/debug-application-cluster/audit.md | 2 +- .../tasks/federation/set-up-cluster-federation-kubefed.md | 2 +- .../horizontal-pod-autoscale-walkthrough.md | 2 +- docs/tasks/tools/install-kubectl.md | 8 ++++---- .../declarative-object-management-configuration.md | 2 +- docs/user-guide/kubectl/v1.5/README.md | 2 +- docs/user-guide/kubectl/v1.7/README.md | 4 ++-- .../v1.7/node_modules/jquery.scrollto/CHANGELOG.md | 4 ++-- .../user-guide/kubectl/v1.7/node_modules/marked/README.md | 2 +- 19 files changed, 29 insertions(+), 29 deletions(-) diff --git a/docs/admin/kubelet.md b/docs/admin/kubelet.md index d4cff05478..cc762ed62b 100644 --- a/docs/admin/kubelet.md +++ b/docs/admin/kubelet.md @@ -70,7 +70,7 @@ kubelet --enable-custom-metrics Support for gathering custom metrics. --enable-debugging-handlers Enables server endpoints for log collection and local running of containers and commands (default true) --enable-server Enable the Kubelet's server (default true) - --enforce-node-allocatable stringSlice A comma separated list of levels of node allocatable enforcement to be enforced by kubelet. Acceptible options are 'pods', 'system-reserved' & 'kube-reserved'. If the latter two options are specified, '--system-reserved-cgroup' & '--kube-reserved-cgroup' must also be set respectively. See https://git.k8s.io/community/contributors/design-proposals/node-allocatable.md for more details. (default [pods]) + --enforce-node-allocatable stringSlice A comma separated list of levels of node allocatable enforcement to be enforced by kubelet. Acceptable options are 'pods', 'system-reserved' & 'kube-reserved'. If the latter two options are specified, '--system-reserved-cgroup' & '--kube-reserved-cgroup' must also be set respectively. See https://git.k8s.io/community/contributors/design-proposals/node-allocatable.md for more details. (default [pods]) --event-burst int32 Maximum size of a bursty event records, temporarily allows event records to burst to this number, while still not exceeding event-qps. Only used if --event-qps > 0 (default 10) --event-qps int32 If > 0, limit event creations per second to this value. If 0, unlimited. (default 5) --eviction-hard string A set of eviction thresholds (e.g. memory.available<1Gi) that if met would trigger a pod eviction. (default "memory.available<100Mi,nodefs.available<10%,nodefs.inodesFree<5%") diff --git a/docs/api-reference/v1.7/README.md b/docs/api-reference/v1.7/README.md index f6799c18b9..e8c00fe78d 100644 --- a/docs/api-reference/v1.7/README.md +++ b/docs/api-reference/v1.7/README.md @@ -6,7 +6,7 @@ Static compilation of html from markdown including processing for grouping code \> bdocs-tab:kubectl Deployment Config to run 3 nginx instances (max rollback set to 10 revisions). -bdocs-tab:tab will be stripped during rendering and utilized to with CSS to show or hide the prefered tab. kubectl indicates the desired tab, since blockquotes have no specific syntax highlighting. +bdocs-tab:tab will be stripped during rendering and utilized to with CSS to show or hide the preferred tab. kubectl indicates the desired tab, since blockquotes have no specific syntax highlighting. \`\`\`bdocs-tab:kubectl_yaml apiVersion: extensions/v1beta1 @@ -66,4 +66,4 @@ Apache License Version 2.0 ## FAQ Q: Why is it named brodocs? -A: This project was born out of a collaboration with my brother to create a suitable docs app for his purposes. It was a fun name for the the two of us to use as actual brothers. \ No newline at end of file +A: This project was born out of a collaboration with my brother to create a suitable docs app for his purposes. It was a fun name for the the two of us to use as actual brothers. diff --git a/docs/api-reference/v1.7/node_modules/jquery.scrollto/CHANGELOG.md b/docs/api-reference/v1.7/node_modules/jquery.scrollto/CHANGELOG.md index 874087615c..cdec0977f3 100644 --- a/docs/api-reference/v1.7/node_modules/jquery.scrollto/CHANGELOG.md +++ b/docs/api-reference/v1.7/node_modules/jquery.scrollto/CHANGELOG.md @@ -111,7 +111,7 @@ - In addition to window/document, if html or body are received, the plugin will choose the right one. ### Fix - The plugin accepts floating numbers, Thanks Ramin -- Using jQuery.nodeName where neccessary so that this works on xml+xhtml +- Using jQuery.nodeName where necessary so that this works on xml+xhtml - The max() internal function wasn't completely accurrate, now it is 98% (except for IE on quirks mode and it's not too noticeable). ## 1.4 @@ -183,4 +183,4 @@ - Two axes can be scrolled together, this is set with the option 'axis'. - In case 2 axes are chosen, the scrolling can be queued: one scrolls, and then the other. - There's an intermediary event, 'onAfterFirst' called in case the axes are queued, after the first ends. -- If the option 'margin' is set to true, the plugin will take in account, the margin of the target(no use if target is a value). \ No newline at end of file +- If the option 'margin' is set to true, the plugin will take in account, the margin of the target(no use if target is a value). diff --git a/docs/api-reference/v1.7/node_modules/marked/README.md b/docs/api-reference/v1.7/node_modules/marked/README.md index efa71aaaab..bb4b3a9652 100644 --- a/docs/api-reference/v1.7/node_modules/marked/README.md +++ b/docs/api-reference/v1.7/node_modules/marked/README.md @@ -297,7 +297,7 @@ $ cat hello.html The point of marked was to create a markdown compiler where it was possible to frequently parse huge chunks of markdown without having to worry about -caching the compiled output somehow...or blocking for an unnecesarily long time. +caching the compiled output somehow...or blocking for an unnecessarily long time. marked is very concise and still implements all markdown features. It is also now fully compatible with the client-side. diff --git a/docs/concepts/workloads/controllers/garbage-collection.md b/docs/concepts/workloads/controllers/garbage-collection.md index 26908545c9..0927ebea67 100644 --- a/docs/concepts/workloads/controllers/garbage-collection.md +++ b/docs/concepts/workloads/controllers/garbage-collection.md @@ -147,7 +147,7 @@ Here's an example that orphans the dependents of a ReplicaSet: kubectl delete replicaset my-repset --cascade=false ``` -### Addtional note on Deployments +### Additional note on Deployments When using cascading deletes with Deployments you *must* use `propagationPolicy: Foreground` to delete not only the ReplicaSets created, but also their Pods. If this type of _propagationPolicy_ diff --git a/docs/home/contribute/style-guide.md b/docs/home/contribute/style-guide.md index 594b5eb5b5..38575713be 100644 --- a/docs/home/contribute/style-guide.md +++ b/docs/home/contribute/style-guide.md @@ -221,12 +221,12 @@ Typing multiple lines does **not** work. The callout style only applies to the l **Note:** This is my note. - I didn't read the stlye guide. + I didn't read the style guide. {: .note} **Note:** This is my note. -I didn't read the stlye guide. +I didn't read the style guide. {: .note} ### Ordered Lists diff --git a/docs/resources-reference/v1.7/README.md b/docs/resources-reference/v1.7/README.md index f6799c18b9..e8c00fe78d 100644 --- a/docs/resources-reference/v1.7/README.md +++ b/docs/resources-reference/v1.7/README.md @@ -6,7 +6,7 @@ Static compilation of html from markdown including processing for grouping code \> bdocs-tab:kubectl Deployment Config to run 3 nginx instances (max rollback set to 10 revisions). -bdocs-tab:tab will be stripped during rendering and utilized to with CSS to show or hide the prefered tab. kubectl indicates the desired tab, since blockquotes have no specific syntax highlighting. +bdocs-tab:tab will be stripped during rendering and utilized to with CSS to show or hide the preferred tab. kubectl indicates the desired tab, since blockquotes have no specific syntax highlighting. \`\`\`bdocs-tab:kubectl_yaml apiVersion: extensions/v1beta1 @@ -66,4 +66,4 @@ Apache License Version 2.0 ## FAQ Q: Why is it named brodocs? -A: This project was born out of a collaboration with my brother to create a suitable docs app for his purposes. It was a fun name for the the two of us to use as actual brothers. \ No newline at end of file +A: This project was born out of a collaboration with my brother to create a suitable docs app for his purposes. It was a fun name for the the two of us to use as actual brothers. diff --git a/docs/resources-reference/v1.7/node_modules/jquery.scrollto/CHANGELOG.md b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/CHANGELOG.md index 874087615c..cdec0977f3 100644 --- a/docs/resources-reference/v1.7/node_modules/jquery.scrollto/CHANGELOG.md +++ b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/CHANGELOG.md @@ -111,7 +111,7 @@ - In addition to window/document, if html or body are received, the plugin will choose the right one. ### Fix - The plugin accepts floating numbers, Thanks Ramin -- Using jQuery.nodeName where neccessary so that this works on xml+xhtml +- Using jQuery.nodeName where necessary so that this works on xml+xhtml - The max() internal function wasn't completely accurrate, now it is 98% (except for IE on quirks mode and it's not too noticeable). ## 1.4 @@ -183,4 +183,4 @@ - Two axes can be scrolled together, this is set with the option 'axis'. - In case 2 axes are chosen, the scrolling can be queued: one scrolls, and then the other. - There's an intermediary event, 'onAfterFirst' called in case the axes are queued, after the first ends. -- If the option 'margin' is set to true, the plugin will take in account, the margin of the target(no use if target is a value). \ No newline at end of file +- If the option 'margin' is set to true, the plugin will take in account, the margin of the target(no use if target is a value). diff --git a/docs/resources-reference/v1.7/node_modules/marked/README.md b/docs/resources-reference/v1.7/node_modules/marked/README.md index efa71aaaab..bb4b3a9652 100644 --- a/docs/resources-reference/v1.7/node_modules/marked/README.md +++ b/docs/resources-reference/v1.7/node_modules/marked/README.md @@ -297,7 +297,7 @@ $ cat hello.html The point of marked was to create a markdown compiler where it was possible to frequently parse huge chunks of markdown without having to worry about -caching the compiled output somehow...or blocking for an unnecesarily long time. +caching the compiled output somehow...or blocking for an unnecessarily long time. marked is very concise and still implements all markdown features. It is also now fully compatible with the client-side. diff --git a/docs/setup/independent/create-cluster-kubeadm.md b/docs/setup/independent/create-cluster-kubeadm.md index a4577baff6..e834f06def 100644 --- a/docs/setup/independent/create-cluster-kubeadm.md +++ b/docs/setup/independent/create-cluster-kubeadm.md @@ -241,7 +241,7 @@ kubectl apply -f https://raw.githubusercontent.com/projectcalico/canal/master/k8 **Note:** - For flannel to work correctly, `--pod-network-cidr=10.244.0.0/16` has to be passed to `kubeadm init`. - flannel works on `amd64`, `arm`, `arm64` and `ppc64le`, but for it to work on an other platform than -`amd64` you have to manually download the manifest and replace `amd64` occurances with your chosen platform. +`amd64` you have to manually download the manifest and replace `amd64` occurences with your chosen platform. ```shell kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml diff --git a/docs/tasks/debug-application-cluster/audit.md b/docs/tasks/debug-application-cluster/audit.md index 7e799669c4..dab1c2e970 100644 --- a/docs/tasks/debug-application-cluster/audit.md +++ b/docs/tasks/debug-application-cluster/audit.md @@ -86,7 +86,7 @@ The known stages are: - `RequestReceived` - The stage for events generated as soon as the audit handler receives the request. - `ResponseStarted` - Once the response headers are sent, but before the response body is sent. This stage is only generated for long-running requests (e.g. watch). - `ResponseComplete` - Once the response body has been completed. -- `Panic` - Events generated when a panic occured. +- `Panic` - Events generated when a panic occurred. ### Audit Policy diff --git a/docs/tasks/federation/set-up-cluster-federation-kubefed.md b/docs/tasks/federation/set-up-cluster-federation-kubefed.md index cf74b87eef..4a5feeca17 100644 --- a/docs/tasks/federation/set-up-cluster-federation-kubefed.md +++ b/docs/tasks/federation/set-up-cluster-federation-kubefed.md @@ -262,7 +262,7 @@ kubefed init fellowship \ [service](/docs/concepts/services-networking/service/) on the host cluster. By default, this service is exposed as a [load balanced service](/docs/user-guide/services/#type-loadbalancer). -Most on-premises and bare-metal enviroments, and some cloud +Most on-premises and bare-metal environments, and some cloud environments lack support for load balanced services. `kubefed init` allows exposing the federation API server as a [`NodePort` service](/docs/user-guide/services/#type-nodeport) on diff --git a/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough.md b/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough.md index 92c9c1e0f1..3775bef981 100644 --- a/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough.md +++ b/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough.md @@ -294,7 +294,7 @@ Conditions: ---- ------ ------ ------- AbleToScale True ReadyForNewScale the last scale time was sufficiently old as to warrant a new scale ScalingActive True ValidMetricFound the HPA was able to successfully calculate a replica count from pods metric http_requests - ScalingLimited False DesiredWithinRange the desired replica count is within the acceptible range + ScalingLimited False DesiredWithinRange the desired replica count is within the acceptable range Events: ``` diff --git a/docs/tasks/tools/install-kubectl.md b/docs/tasks/tools/install-kubectl.md index 567c485397..81987f629e 100644 --- a/docs/tasks/tools/install-kubectl.md +++ b/docs/tasks/tools/install-kubectl.md @@ -92,7 +92,7 @@ kubectl can be installed as part of the Google Cloud SDK. gcloud components install kubectl -3. Run `kubectl version` to verify that the verison you've installed is sufficiently up-to-date. +3. Run `kubectl version` to verify that the version you've installed is sufficiently up-to-date. ## Install with snap on Ubuntu @@ -102,7 +102,7 @@ kubectl is available as a [snap](https://snapcraft.io/) application. sudo snap install kubectl --classic -2. Run `kubectl version` to verify that the verison you've installed is sufficiently up-to-date. +2. Run `kubectl version` to verify that the version you've installed is sufficiently up-to-date. ## Install with Homebrew on macOS @@ -110,7 +110,7 @@ kubectl is available as a [snap](https://snapcraft.io/) application. brew install kubectl -2. Run `kubectl version` to verify that the verison you've installed is sufficiently up-to-date. +2. Run `kubectl version` to verify that the version you've installed is sufficiently up-to-date. ## Install with Chocolatey on Windows @@ -118,7 +118,7 @@ kubectl is available as a [snap](https://snapcraft.io/) application. choco install kubernetes-cli -2. Run `kubectl version` to verify that the verison you've installed is sufficiently up-to-date. +2. Run `kubectl version` to verify that the version you've installed is sufficiently up-to-date. 3. Configure kubectl to use a remote Kubernetes cluster: cd C:\users\yourusername (Or wherever your %HOME% directory is) diff --git a/docs/tutorials/object-management-kubectl/declarative-object-management-configuration.md b/docs/tutorials/object-management-kubectl/declarative-object-management-configuration.md index d486086a75..176af388f8 100644 --- a/docs/tutorials/object-management-kubectl/declarative-object-management-configuration.md +++ b/docs/tutorials/object-management-kubectl/declarative-object-management-configuration.md @@ -41,7 +41,7 @@ Following are definitions for terms used in this document: values of an object, as observed by the Kubernetes cluster. These are kept in the Kubernetes cluster storage, typically etcd. - *declarative configuration writer / declarative writer*: A person or software component - that makes updates to a live object. The live writers refered to in this topic make changes + that makes updates to a live object. The live writers referred to in this topic make changes to object configuration files and run `kubectl apply` to write the changes. ## How to create objects diff --git a/docs/user-guide/kubectl/v1.5/README.md b/docs/user-guide/kubectl/v1.5/README.md index f6799c18b9..d280e192a3 100644 --- a/docs/user-guide/kubectl/v1.5/README.md +++ b/docs/user-guide/kubectl/v1.5/README.md @@ -66,4 +66,4 @@ Apache License Version 2.0 ## FAQ Q: Why is it named brodocs? -A: This project was born out of a collaboration with my brother to create a suitable docs app for his purposes. It was a fun name for the the two of us to use as actual brothers. \ No newline at end of file +A: This project was born out of a collaboration with my brother to create a suitable docs app for his purposes. It was a fun name for the the two of us to use as actual brothers. diff --git a/docs/user-guide/kubectl/v1.7/README.md b/docs/user-guide/kubectl/v1.7/README.md index f6799c18b9..e8c00fe78d 100644 --- a/docs/user-guide/kubectl/v1.7/README.md +++ b/docs/user-guide/kubectl/v1.7/README.md @@ -6,7 +6,7 @@ Static compilation of html from markdown including processing for grouping code \> bdocs-tab:kubectl Deployment Config to run 3 nginx instances (max rollback set to 10 revisions). -bdocs-tab:tab will be stripped during rendering and utilized to with CSS to show or hide the prefered tab. kubectl indicates the desired tab, since blockquotes have no specific syntax highlighting. +bdocs-tab:tab will be stripped during rendering and utilized to with CSS to show or hide the preferred tab. kubectl indicates the desired tab, since blockquotes have no specific syntax highlighting. \`\`\`bdocs-tab:kubectl_yaml apiVersion: extensions/v1beta1 @@ -66,4 +66,4 @@ Apache License Version 2.0 ## FAQ Q: Why is it named brodocs? -A: This project was born out of a collaboration with my brother to create a suitable docs app for his purposes. It was a fun name for the the two of us to use as actual brothers. \ No newline at end of file +A: This project was born out of a collaboration with my brother to create a suitable docs app for his purposes. It was a fun name for the the two of us to use as actual brothers. diff --git a/docs/user-guide/kubectl/v1.7/node_modules/jquery.scrollto/CHANGELOG.md b/docs/user-guide/kubectl/v1.7/node_modules/jquery.scrollto/CHANGELOG.md index 874087615c..cdec0977f3 100644 --- a/docs/user-guide/kubectl/v1.7/node_modules/jquery.scrollto/CHANGELOG.md +++ b/docs/user-guide/kubectl/v1.7/node_modules/jquery.scrollto/CHANGELOG.md @@ -111,7 +111,7 @@ - In addition to window/document, if html or body are received, the plugin will choose the right one. ### Fix - The plugin accepts floating numbers, Thanks Ramin -- Using jQuery.nodeName where neccessary so that this works on xml+xhtml +- Using jQuery.nodeName where necessary so that this works on xml+xhtml - The max() internal function wasn't completely accurrate, now it is 98% (except for IE on quirks mode and it's not too noticeable). ## 1.4 @@ -183,4 +183,4 @@ - Two axes can be scrolled together, this is set with the option 'axis'. - In case 2 axes are chosen, the scrolling can be queued: one scrolls, and then the other. - There's an intermediary event, 'onAfterFirst' called in case the axes are queued, after the first ends. -- If the option 'margin' is set to true, the plugin will take in account, the margin of the target(no use if target is a value). \ No newline at end of file +- If the option 'margin' is set to true, the plugin will take in account, the margin of the target(no use if target is a value). diff --git a/docs/user-guide/kubectl/v1.7/node_modules/marked/README.md b/docs/user-guide/kubectl/v1.7/node_modules/marked/README.md index efa71aaaab..bb4b3a9652 100644 --- a/docs/user-guide/kubectl/v1.7/node_modules/marked/README.md +++ b/docs/user-guide/kubectl/v1.7/node_modules/marked/README.md @@ -297,7 +297,7 @@ $ cat hello.html The point of marked was to create a markdown compiler where it was possible to frequently parse huge chunks of markdown without having to worry about -caching the compiled output somehow...or blocking for an unnecesarily long time. +caching the compiled output somehow...or blocking for an unnecessarily long time. marked is very concise and still implements all markdown features. It is also now fully compatible with the client-side. From 98ce8444e0da64a544ce67d487f497b365e90826 Mon Sep 17 00:00:00 2001 From: lemon-tree Date: Fri, 18 Aug 2017 02:48:35 +0800 Subject: [PATCH 008/129] Update kubeadm.md (#5004) There is a lost "." should be added, and I modified "is use for" to "is used for". --- docs/admin/kubeadm.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/admin/kubeadm.md b/docs/admin/kubeadm.md index c4f0d5a5cd..7b617e60b9 100644 --- a/docs/admin/kubeadm.md +++ b/docs/admin/kubeadm.md @@ -54,7 +54,7 @@ steps: is used to authenticate. The control plane will sign this CSR requested automatically. -1. kubeadm configures the local kubelet to connect to the API server +1. kubeadm configures the local kubelet to connect to the API server. ## Usage @@ -211,7 +211,7 @@ set up the Kubernetes master to automatically approve these signing requests. This token is passed in with the `--tls-bootstrap-token abcdef.1234567890abcdef` flag. -Often times the same token is use for both parts. In this case, the `--token` flag +Often times the same token is used for both parts. In this case, the `--token` flag can be used instead of specifying the each token individually. Here's an example on how to use it: From bce28074555962f20c1149e16f4286609d34d1b9 Mon Sep 17 00:00:00 2001 From: Weibin Lin Date: Fri, 18 Aug 2017 02:49:42 +0800 Subject: [PATCH 009/129] Update dns-pod-service.md (#5002) fix typos --- docs/concepts/services-networking/dns-pod-service.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/concepts/services-networking/dns-pod-service.md b/docs/concepts/services-networking/dns-pod-service.md index 6a95bbf93a..77c3ad92df 100644 --- a/docs/concepts/services-networking/dns-pod-service.md +++ b/docs/concepts/services-networking/dns-pod-service.md @@ -139,7 +139,7 @@ spec: ``` If there exists a headless service in the same namespace as the pod and with the same name as the subdomain, the cluster's KubeDNS Server also returns an A record for the Pod's fully qualified hostname. -Given a Pod with the hostname set to "busybox-1" and the subdomain set to "default-subdomain", and a headless Service named "default-subdomain" in the same namespace, the pod will see it's own FQDN as "busybox-1.default-subdomain.my-namespace.svc.cluster.local". DNS serves an A record at that name, pointing to the Pod's IP. Both pods "busybox1" and "busybox2" can have their distinct A records. +Given a Pod with the hostname set to "busybox-1" and the subdomain set to "default-subdomain", and a headless Service named "default-subdomain" in the same namespace, the pod will see its own FQDN as "busybox-1.default-subdomain.my-namespace.svc.cluster.local". DNS serves an A record at that name, pointing to the Pod's IP. Both pods "busybox1" and "busybox2" can have their distinct A records. As of Kubernetes v1.2, the Endpoints object also has the annotation `endpoints.beta.kubernetes.io/hostnames-map`. Its value is the json representation of map[string(IP)][endpoints.HostRecord], for example: '{"10.245.1.6":{HostName: "my-webserver"}}'. If the Endpoints are for a headless service, an A record is created with the format ...svc. @@ -149,7 +149,7 @@ This endpoints annotation generally does not need to be specified by end-users, With v1.3, The Endpoints object can specify the `hostname` for any endpoint, along with its IP. The hostname field takes precedence over the hostname value that might have been specified via the `endpoints.beta.kubernetes.io/hostnames-map` annotation. -With v1.3, the following annotations are deprecated: `pod.beta.kubernetes.io/hostname`, `pod.beta.kubernetes.io/subdomain`, `endpoints.beta.kubernetes.io/hostnames-map` +With v1.3, the following annotations are deprecated: `pod.beta.kubernetes.io/hostname`, `pod.beta.kubernetes.io/subdomain`, `endpoints.beta.kubernetes.io/hostnames-map`. ## How do I test if it is working? @@ -370,7 +370,7 @@ kubelet passes DNS configured using the `--cluster-dns=10.0.0.10` flag to each container. DNS names also need domains. The local domain is configurable, in the kubelet using -the flag `--cluster-domain=` +the flag `--cluster-domain=`. The Kubernetes cluster DNS server (based off the [SkyDNS](https://github.com/skynetservices/skydns) library) supports forward lookups (A records), service lookups (SRV records) and reverse IP address lookups (PTR records). From 2cf0e8f0b49e1abdc9ba550bd13b1d9209291879 Mon Sep 17 00:00:00 2001 From: Anthony Date: Fri, 18 Aug 2017 02:50:33 +0800 Subject: [PATCH 010/129] Update share-configuration.md (#5000) modify "Bearer token/basic auth are" to " Bearer token/basic auth is" --- docs/tasks/administer-cluster/share-configuration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/administer-cluster/share-configuration.md b/docs/tasks/administer-cluster/share-configuration.md index c3068c3659..949ab53eed 100644 --- a/docs/tasks/administer-cluster/share-configuration.md +++ b/docs/tasks/administer-cluster/share-configuration.md @@ -94,7 +94,7 @@ $ export KUBECONFIG=/path/to/standalone/.kube/config * The ca_file, key_file, and cert_file referenced above are generated on the kube master at cluster turnup. They can be found on the master under -`/srv/kubernetes`. Bearer token/basic auth are also generated on the kube master. +`/srv/kubernetes`. Bearer token/basic auth is also generated on the kube master. For more details on `kubeconfig` see [Authenticating Across Clusters with kubeconfig](/docs/concepts/cluster-administration/authenticate-across-clusters-kubeconfig/), and/or run `kubectl config -h`. From 92800a4bb2bfa6b7f47def7cfba1dbe6c506770f Mon Sep 17 00:00:00 2001 From: XsWack Date: Tue, 15 Aug 2017 14:58:23 +0800 Subject: [PATCH 011/129] Update resource-quotas.md fix bad 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 c1037784a4..423b0aa40f 100644 --- a/docs/concepts/policy/resource-quotas.md +++ b/docs/concepts/policy/resource-quotas.md @@ -26,7 +26,7 @@ Resource quotas work like this: - If quota is enabled in a namespace for compute resources like `cpu` and `memory`, users must specify requests or limits for those values; otherwise, the quota system may reject pod creation. Hint: Use the LimitRange admission controller to force defaults for pods that make no compute resource requirements. - See the [walkthrough](/docs/tasks/configure-pod-container/apply-resource-quota-limit/) for an example to avoid this problem. + See the [walkthrough](/docs/tasks/administer-cluster/quota-memory-cpu-namespace/) for an example to avoid this problem. Examples of policies that could be created using namespaces and quotas are: From 1d7169e88b4d5705799cda45cc46f9286bfefcb8 Mon Sep 17 00:00:00 2001 From: XsWack Date: Tue, 15 Aug 2017 15:07:15 +0800 Subject: [PATCH 012/129] Update safely-drain-node.md There will be 404 status in the jump process and fix the url --- docs/tasks/administer-cluster/safely-drain-node.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/administer-cluster/safely-drain-node.md b/docs/tasks/administer-cluster/safely-drain-node.md index b45fa8ec59..026b3fc82b 100644 --- a/docs/tasks/administer-cluster/safely-drain-node.md +++ b/docs/tasks/administer-cluster/safely-drain-node.md @@ -34,7 +34,7 @@ You can use `kubectl drain` to safely evict all of your pods from a node before you perform maintenance on the node (e.g. kernel upgrade, hardware maintenance, etc.). Safe evictions allow the pod's containers to -[gracefully terminate](/docs/user-guide/production-pods.md#lifecycle-hooks-and-termination-notice) and +[gracefully terminate](/docs/tasks/#lifecycle-hooks-and-termination-notice) and will respect the `PodDisruptionBudgets` you have specified. **Note:** By default `kubectl drain` will ignore certain system pods on the node From 726e9ff26fdec0f8f07d67ce000972493a76d15b Mon Sep 17 00:00:00 2001 From: XsWack Date: Tue, 15 Aug 2017 15:14:16 +0800 Subject: [PATCH 013/129] Update memory-constraint-namespace.md we can not access the URL and update it to the right URL --- docs/tasks/administer-cluster/memory-constraint-namespace.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/administer-cluster/memory-constraint-namespace.md b/docs/tasks/administer-cluster/memory-constraint-namespace.md index db5ed8296b..139378fee6 100644 --- a/docs/tasks/administer-cluster/memory-constraint-namespace.md +++ b/docs/tasks/administer-cluster/memory-constraint-namespace.md @@ -195,7 +195,7 @@ resources: ``` Because your Container did not specify its own memory request and limit, it was given the -[default memory request and limit](/docs/tasks/administer-cluster/default-memory-request-limit/) +[default memory request and limit](/docs/tasks/administer-cluster/memory-default-namespace/) from the LimitRange. At this point, your Container might be running or it might not be running. Recall that a prerequisite From 7041867ee8fcbb6d5a3cfa9db5513c550ffcad86 Mon Sep 17 00:00:00 2001 From: lemon-tree Date: Tue, 15 Aug 2017 15:18:46 +0800 Subject: [PATCH 014/129] Update admission-controllers.md Modified "is run" to "runs". --- docs/admin/admission-controllers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/admin/admission-controllers.md b/docs/admin/admission-controllers.md index 0a1b0e289d..0597ca0777 100644 --- a/docs/admin/admission-controllers.md +++ b/docs/admin/admission-controllers.md @@ -19,7 +19,7 @@ API server prior to persistence of the object, but after the request is authenti and authorized. The plug-in code is in the API server process and must be compiled into the binary in order to be used at this time. -Each admission control plug-in is run in sequence before a request is accepted into the cluster. If +Each admission control plug-in runs in sequence before a request is accepted into the cluster. If any of the plug-ins in the sequence reject the request, the entire request is rejected immediately and an error is returned to the end-user. From 2590f59f2471a20b822271c0c11470b13a541bad Mon Sep 17 00:00:00 2001 From: Anthony Date: Tue, 15 Aug 2017 15:29:00 +0800 Subject: [PATCH 015/129] Update configure-pdb.md add "." and ":" to the sentence --- docs/tasks/run-application/configure-pdb.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/tasks/run-application/configure-pdb.md b/docs/tasks/run-application/configure-pdb.md index 0f0eb0769c..fc42343274 100644 --- a/docs/tasks/run-application/configure-pdb.md +++ b/docs/tasks/run-application/configure-pdb.md @@ -26,7 +26,7 @@ nodes. ## Protecting an Application with a PodDisruptionBudget 1. Identify what application you want to protect with a PodDisruptionBudget (PDB). -1. Think about how your application reacts to disruptions +1. Think about how your application reacts to disruptions. 1. Create a PDB definition as a YAML file. 1. Create the PDB object from the YAML file. @@ -57,22 +57,22 @@ described in [Arbitrary Controllers and Selectors](#arbitrary-controllers-and-se Decide how many instances can be down at the same time for a short period due to a voluntary disruption. -- Stateless frontends +- Stateless frontends: - Concern: don't reduce serving capacity by more than 10%. - Solution: use PDB with minAvailable 90% for example. -- Single-instance Stateful Application +- Single-instance Stateful Application: - Concern: do not terminate this application without talking to me. - Possible Solution 1: Do not use a PDB and tolerate occasional downtime. - Possible Solution 2: Set PDB with maxUnavailable=0. Have an understanding (outside of Kubernetes) that the cluster operator needs to consult you before termination. When the cluster operator contacts you, prepare for downtime, and then delete the PDB to indicate readiness for disruption. Recreate afterwards. -- Multiple-instance Stateful application such as Consul, ZooKeeper, or etcd +- Multiple-instance Stateful application such as Consul, ZooKeeper, or etcd: - Concern: Do not reduce number of instances below quorum, otherwise writes fail. - Possible Solution 1: set maxUnavailable to 1 (works with varying scale of application). - Possible Solution 2: set minAvailable to quorum-size (e.g. 3 when scale is 5). (Allows more disruptions at once). - Restartable Batch Job: - - Concern: Job needs to complete in case of voluntary disruption + - Concern: Job needs to complete in case of voluntary disruption. - Possible solution: Do not create a PDB. The Job controller will create a replacement pod. ## Specifying a PodDisruptionBudget From 1ab3f9ab2f4cf3a9ac667d5b865236a3457e774e Mon Sep 17 00:00:00 2001 From: Anthony Date: Tue, 15 Aug 2017 16:51:45 +0800 Subject: [PATCH 016/129] Update create-external-load-balancer.md modify the "." of the sentence --- .../access-application-cluster/create-external-load-balancer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/access-application-cluster/create-external-load-balancer.md b/docs/tasks/access-application-cluster/create-external-load-balancer.md index 9947939bc9..3dbf80f4bf 100644 --- a/docs/tasks/access-application-cluster/create-external-load-balancer.md +++ b/docs/tasks/access-application-cluster/create-external-load-balancer.md @@ -65,7 +65,7 @@ kubectl expose rc example --port=8765 --target-port=9376 \ This command creates a new service using the same selectors as the referenced resource (in the case of the example above, a replication controller named -`example`.) +`example`). For more information, including optional flags, refer to the [`kubectl expose` reference](/docs/user-guide/kubectl/v1.6/#expose). From c163bb17c859738c6ab6eae9e893e6223ecbc484 Mon Sep 17 00:00:00 2001 From: Dhilip Date: Tue, 15 Aug 2017 15:23:51 +0530 Subject: [PATCH 017/129] [minor] Grammar [minor] Grammar --- docs/concepts/overview/components.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/concepts/overview/components.md b/docs/concepts/overview/components.md index 09f9f1ce9d..8aa9691437 100644 --- a/docs/concepts/overview/components.md +++ b/docs/concepts/overview/components.md @@ -123,7 +123,7 @@ rkt is supported experimentally for running containers as an alternative to dock ### supervisord -supervisord is a lightweight process monitoring and control system that can be used to keep kubelet and docker +supervisord is a lightweight process monitor and control system that can be used to keep kubelet and docker running. ### fluentd From b34cfc4d2fcc7c1498f55f773a17d011afb9894b Mon Sep 17 00:00:00 2001 From: Dhilip Date: Tue, 15 Aug 2017 15:27:46 +0530 Subject: [PATCH 018/129] [minor] Grammar and typo [minor] Grammar and typo --- docs/user-guide/kubectl/v1.5/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/user-guide/kubectl/v1.5/README.md b/docs/user-guide/kubectl/v1.5/README.md index d280e192a3..18abdc4c8b 100644 --- a/docs/user-guide/kubectl/v1.5/README.md +++ b/docs/user-guide/kubectl/v1.5/README.md @@ -6,7 +6,7 @@ Static compilation of html from markdown including processing for grouping code \> bdocs-tab:kubectl Deployment Config to run 3 nginx instances (max rollback set to 10 revisions). -bdocs-tab:tab will be stripped during rendering and utilized to with CSS to show or hide the prefered tab. kubectl indicates the desired tab, since blockquotes have no specific syntax highlighting. +bdocs-tab:tab will be stripped during rendering and utilized to with CSS to show or hide the preferred tab. kubectl indicates the desired tab, since blockquotes have no specific syntax highlighting. \`\`\`bdocs-tab:kubectl_yaml apiVersion: extensions/v1beta1 @@ -38,7 +38,7 @@ With specific tokens on blockquotes and code blocks, the chunks can be placed ac Clone the repository, then add documents into documents directory. Modify the manifest.json to contain the document filenames in the order desired. The docs field is an array of objects with a filename key. -As a NodeJS program, a valid installation of node is required. Once node is installed, verify it can be run from command line. +As a NodeJS program, a valid installation of node is required. Once node is installed, verify if it can be run from command line. ``` node --version ``` From 511aaf4d5d3f3f0380c530f534100b8cedc99832 Mon Sep 17 00:00:00 2001 From: Anthony Date: Wed, 16 Aug 2017 15:10:25 +0800 Subject: [PATCH 019/129] Update encrypt-data.md add ":" to the sentence --- docs/tasks/administer-cluster/encrypt-data.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/tasks/administer-cluster/encrypt-data.md b/docs/tasks/administer-cluster/encrypt-data.md index f024f58066..d7644e0f77 100644 --- a/docs/tasks/administer-cluster/encrypt-data.md +++ b/docs/tasks/administer-cluster/encrypt-data.md @@ -83,7 +83,7 @@ is the first provider, the first key is used for encryption. ## Encrypting your data -Create a new encryption config file +Create a new encryption config file: ```yaml kind: EncryptionConfig @@ -107,9 +107,9 @@ To create a new secret perform the following steps: head -c 32 /dev/urandom | base64 ``` -2. Place that value in the secret field. -3. Set the `--experimental-encryption-provider-config` flag on the `kube-apiserver` to point to the location of the config file -4. Restart your API server. +2. Place that value in the secret field. +3. Set the `--experimental-encryption-provider-config` flag on the `kube-apiserver` to point to the location of the config file. +4. Restart your API server. **IMPORTANT:** Your config file contains keys that can decrypt content in etcd, so you must properly restrict permissions on your masters so only the user who runs the kube-apiserver can read it. @@ -168,7 +168,7 @@ the presence of a highly available deployment where multiple `kube-apiserver` pr 5. Run `kubectl get secrets -o json | kubectl replace -f -` to encrypt all existing secrets with the new key 6. Remove the old decryption key from the config after you back up etcd with the new key in use and update all secrets -With a single `kube-apiserver`, step 2 may be skipped +With a single `kube-apiserver`, step 2 may be skipped. ## Decrypting all data From 815df94989bcb675e817a379f8feb674a641715c Mon Sep 17 00:00:00 2001 From: Andrew Chen Date: Thu, 17 Aug 2017 13:21:55 -0700 Subject: [PATCH 020/129] fix link in object-management-kubectl.md --- .../declarative-object-management-configuration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorials/object-management-kubectl/declarative-object-management-configuration.md b/docs/tutorials/object-management-kubectl/declarative-object-management-configuration.md index 176af388f8..74189782fd 100644 --- a/docs/tutorials/object-management-kubectl/declarative-object-management-configuration.md +++ b/docs/tutorials/object-management-kubectl/declarative-object-management-configuration.md @@ -30,7 +30,7 @@ the Kubernetes object definitions and configuration. Read and complete the following documents if you have not already: - [Managing Kubernetes Objects Using Imperative Commands](/docs/tutorials/object-management-kubectl/imperative-object-management-command/) -- [Imperative Management of Kubernetes Objects Using Configuration Files](docs/tutorials/object-management-kubectl/imperative-object-management-configuration/) +- [Imperative Management of Kubernetes Objects Using Configuration Files](/docs/tutorials/object-management-kubectl/imperative-object-management-configuration/) Following are definitions for terms used in this document: From cf8b1bc6f7e0533975e2c07ca9a24a7d33cd0cbb Mon Sep 17 00:00:00 2001 From: Weibin Lin Date: Fri, 18 Aug 2017 04:40:00 +0800 Subject: [PATCH 021/129] Update index.md (#4999) fix typos --- docs/admin/high-availability/index.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/admin/high-availability/index.md b/docs/admin/high-availability/index.md index 5bff42541a..841f52b7d7 100644 --- a/docs/admin/high-availability/index.md +++ b/docs/admin/high-availability/index.md @@ -114,8 +114,8 @@ on a different node. ### Even more reliable storage -Of course, if you are interested in increased data reliability, there are further options which makes the place where etcd -installs it's data even more reliable than regular disks (belts *and* suspenders, ftw!). +Of course, if you are interested in increased data reliability, there are further options which make the place where etcd +installs its data even more reliable than regular disks (belts *and* suspenders, ftw!). If you use a cloud provider, then they usually provide this for you, for example [Persistent Disk](https://cloud.google.com/compute/docs/disks/persistent-disks) on the Google Cloud Platform. These @@ -126,7 +126,7 @@ Alternatively, you can run a clustered file system like Gluster or Ceph. Finall Regardless of how you choose to implement it, if you chose to use one of these options, you should make sure that your storage is mounted to each machine. If your storage is shared between the three masters in your cluster, you should create a different directory on the storage -for each node. Throughout these instructions, we assume that this storage is mounted to your machine in `/var/etcd/data` +for each node. Throughout these instructions, we assume that this storage is mounted to your machine in `/var/etcd/data`. ## Replicated API Servers @@ -164,7 +164,7 @@ in the file. At this point, you should have 3 apiservers all working correctly. If you set up a network load balancer, you should be able to access your cluster via that load balancer, and see traffic balancing between the apiserver instances. Setting up a load balancer will depend on the specifics of your platform, for example instructions for the Google Cloud -Platform can be found [here](https://cloud.google.com/compute/docs/load-balancing/) +Platform can be found [here](https://cloud.google.com/compute/docs/load-balancing/). Note, if you are using authentication, you may need to regenerate your certificate to include the IP address of the balancer, in addition to the IP addresses of the individual nodes. From fd1704e2c95a3ee74f41560cec66773eec43d411 Mon Sep 17 00:00:00 2001 From: Vladimir Rutsky Date: Thu, 17 Aug 2017 22:42:13 +0200 Subject: [PATCH 022/129] trying to fix line breaks in raw blocks in list (#4997) Lets see on deploy preview if adding block type helps. --- docs/tutorials/clusters/apparmor.md | 64 ++++++++++++++--------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/docs/tutorials/clusters/apparmor.md b/docs/tutorials/clusters/apparmor.md index 24602f3af3..4d068ec436 100644 --- a/docs/tutorials/clusters/apparmor.md +++ b/docs/tutorials/clusters/apparmor.md @@ -44,59 +44,59 @@ Make sure: will **silently ignore** any AppArmor settings that are provided. To ensure that your Pods are receiving the expected protections, it is important to verify the Kubelet version of your nodes: - ``` - $ kubectl get nodes -o=jsonpath=$'{range .items[*]}{@.metadata.name}: {@.status.nodeInfo.kubeletVersion}\n{end}' - gke-test-default-pool-239f5d02-gyn2: v1.4.0 - gke-test-default-pool-239f5d02-x1kf: v1.4.0 - gke-test-default-pool-239f5d02-xwux: v1.4.0 - ``` + ```shell + $ kubectl get nodes -o=jsonpath=$'{range .items[*]}{@.metadata.name}: {@.status.nodeInfo.kubeletVersion}\n{end}' + gke-test-default-pool-239f5d02-gyn2: v1.4.0 + gke-test-default-pool-239f5d02-x1kf: v1.4.0 + gke-test-default-pool-239f5d02-xwux: v1.4.0 + ``` 2. AppArmor kernel module is enabled -- For the Linux kernel to enforce an AppArmor profile, the AppArmor kernel module must be installed and enabled. Several distributions enable the module by default, such as Ubuntu and SUSE, and many others provide optional support. To check whether the module is enabled, check the `/sys/module/apparmor/parameters/enabled` file: - ``` - $ cat /sys/module/apparmor/parameters/enabled - Y - ``` + ```shell + $ cat /sys/module/apparmor/parameters/enabled + Y + ``` - If the Kubelet contains AppArmor support (>= v1.4), it will refuse to run a Pod with AppArmor - options if the kernel module is not enabled. + If the Kubelet contains AppArmor support (>= v1.4), it will refuse to run a Pod with AppArmor + options if the kernel module is not enabled. - **Note:** Ubuntu carries many AppArmor patches that have not been merged into the upstream Linux - kernel, including patches that add additional hooks and features. Kubernetes has only been - tested with the upstream version, and does not promise support for other features. + **Note:** Ubuntu carries many AppArmor patches that have not been merged into the upstream Linux + kernel, including patches that add additional hooks and features. Kubernetes has only been + tested with the upstream version, and does not promise support for other features. 3. Container runtime is Docker -- Currently the only Kubernetes-supported container runtime that also supports AppArmor is Docker. As more runtimes add AppArmor support, the options will be expanded. You can verify that your nodes are running docker with: - ``` - $ kubectl get nodes -o=jsonpath=$'{range .items[*]}{@.metadata.name}: {@.status.nodeInfo.containerRuntimeVersion}\n{end}' - gke-test-default-pool-239f5d02-gyn2: docker://1.11.2 - gke-test-default-pool-239f5d02-x1kf: docker://1.11.2 - gke-test-default-pool-239f5d02-xwux: docker://1.11.2 - ``` + ```shell + $ kubectl get nodes -o=jsonpath=$'{range .items[*]}{@.metadata.name}: {@.status.nodeInfo.containerRuntimeVersion}\n{end}' + gke-test-default-pool-239f5d02-gyn2: docker://1.11.2 + gke-test-default-pool-239f5d02-x1kf: docker://1.11.2 + gke-test-default-pool-239f5d02-xwux: docker://1.11.2 + ``` - If the Kubelet contains AppArmor support (>= v1.4), it will refuse to run a Pod with AppArmor - options if the runtime is not Docker. + If the Kubelet contains AppArmor support (>= v1.4), it will refuse to run a Pod with AppArmor + options if the runtime is not Docker. 4. Profile is loaded -- AppArmor is applied to a Pod by specifying an AppArmor profile that each container should be run with. If any of the specified profiles is not already loaded in the kernel, the Kubelet (>= v1.4) will reject the Pod. You can view which profiles are loaded on a node by checking the `/sys/kernel/security/apparmor/profiles` file. For example: - ``` - $ ssh gke-test-default-pool-239f5d02-gyn2 "sudo cat /sys/kernel/security/apparmor/profiles | sort" - apparmor-test-deny-write (enforce) - apparmor-test-audit-write (enforce) - docker-default (enforce) - k8s-nginx (enforce) - ``` + ```shell + $ ssh gke-test-default-pool-239f5d02-gyn2 "sudo cat /sys/kernel/security/apparmor/profiles | sort" + apparmor-test-deny-write (enforce) + apparmor-test-audit-write (enforce) + docker-default (enforce) + k8s-nginx (enforce) + ``` - For more details on loading profiles on nodes, see - [Setting up nodes with profiles](#setting-up-nodes-with-profiles). + For more details on loading profiles on nodes, see + [Setting up nodes with profiles](#setting-up-nodes-with-profiles). As long as the Kubelet version includes AppArmor support (>= v1.4), the Kubelet will reject a Pod with AppArmor options if any of the prerequisites are not met. You can also verify AppArmor support From 8d28bc2d7382e825176419d1e9a178f9f7a0abc0 Mon Sep 17 00:00:00 2001 From: Stewart-YU Date: Fri, 18 Aug 2017 04:43:18 +0800 Subject: [PATCH 023/129] Update assign-pod-node.md (#4996) The code highlight is unnecessary here. --- docs/concepts/configuration/assign-pod-node.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/concepts/configuration/assign-pod-node.md b/docs/concepts/configuration/assign-pod-node.md index d03d5ef811..12331bacfe 100644 --- a/docs/concepts/configuration/assign-pod-node.md +++ b/docs/concepts/configuration/assign-pod-node.md @@ -338,7 +338,7 @@ tolerations: effect: "NoSchedule" ``` -A toleration "matches" a taint if the `key`s are the same and the `effect`s are the same, and: +A toleration "matches" a taint if the keys are the same and the effects are the same, and: * the `operator` is `Exists` (in which case no `value` should be specified), or * the `operator` is `Equal` and the `value`s are equal From 437318b26f5253ed40b480f92c9a51d956d8dfc8 Mon Sep 17 00:00:00 2001 From: lemon-tree Date: Fri, 18 Aug 2017 04:44:38 +0800 Subject: [PATCH 024/129] Update deprecation-policy.md (#4994) Modified "API version" to "API versions". --- docs/reference/deprecation-policy.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/reference/deprecation-policy.md b/docs/reference/deprecation-policy.md index 62e2bc0d6c..fecd3484da 100644 --- a/docs/reference/deprecation-policy.md +++ b/docs/reference/deprecation-policy.md @@ -68,9 +68,9 @@ might have to add an equivalent field or represent it as an annotation. API version at least as stable is released.** GA API versions can replace GA API versions as well as beta and alpha API -version. Beta API versions *may not* replace GA API versions. +versions. Beta API versions *may not* replace GA API versions. -**Rule #4: Other than the most recent API version in each track, older API +**Rule #4: Other than the most recent API versions in each track, older API versions must be supported after their announced deprecation for a duration of no less than:** From ad79020aa50779eb523f9afe118a6bf438a42e7a Mon Sep 17 00:00:00 2001 From: Anthony Date: Fri, 18 Aug 2017 04:47:56 +0800 Subject: [PATCH 025/129] Update out-of-resource.md (#4992) add "." to the sentence --- docs/tasks/administer-cluster/out-of-resource.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/administer-cluster/out-of-resource.md b/docs/tasks/administer-cluster/out-of-resource.md index d693463bc3..2a4945ad18 100644 --- a/docs/tasks/administer-cluster/out-of-resource.md +++ b/docs/tasks/administer-cluster/out-of-resource.md @@ -205,7 +205,7 @@ it will begin evicting pods. The `kubelet` ranks pods for eviction as follows: -* by their quality of service +* by their quality of service. * by the consumption of the starved compute resource relative to the pods scheduling request. As a result, pod eviction occurs in the following order: From 5e39dacbceaaeccd7b8536d79d712de154711336 Mon Sep 17 00:00:00 2001 From: lemon-tree Date: Fri, 18 Aug 2017 04:49:44 +0800 Subject: [PATCH 026/129] Update kubectl-overview.md (#4990) * Update kubectl-overview.md The first letter of "where" should be capital, and some lost "." should be added. * Update kubectl-overview.md * Update kubectl-overview.md --- docs/user-guide/kubectl-overview.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/user-guide/kubectl-overview.md b/docs/user-guide/kubectl-overview.md index 03aa085a6f..10fd5131f7 100644 --- a/docs/user-guide/kubectl-overview.md +++ b/docs/user-guide/kubectl-overview.md @@ -27,9 +27,9 @@ where `command`, `TYPE`, `NAME`, and `flags` are: When performing an operation on multiple resources, you can specify each resource by type and name or specify one or more files: * To specify resources by type and name: - * To group resources if they are all the same type: `TYPE1 name1 name2 name<#>`
+ * To group resources if they are all the same type: `TYPE1 name1 name2 name<#>`
. Example: `$ kubectl get pod example-pod1 example-pod2` - * To specify multiple resource types individually: `TYPE1/name1 TYPE1/name2 TYPE2/name3 TYPE<#>/name<#>`
+ * To specify multiple resource types individually: `TYPE1/name1 TYPE1/name2 TYPE2/name3 TYPE<#>/name<#>`
. Example: `$ kubectl get pod/example-pod1 replicationcontroller/example-rc1` * To specify resources with one or more files: `-f file1 -f file2 -f file<#>` [Use YAML rather than JSON](/docs/concepts/configuration/overview/#general-config-tips) since YAML tends to be more user-friendly, especially for configuration files.
From 5b4c1a4ace4574afdea39a5f87ed70493577fa06 Mon Sep 17 00:00:00 2001 From: XsWack Date: Fri, 18 Aug 2017 04:50:15 +0800 Subject: [PATCH 027/129] Update clc.md (#4989) format the command line --- docs/getting-started-guides/clc.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/getting-started-guides/clc.md b/docs/getting-started-guides/clc.md index dc787dc8cb..1a9beb0090 100644 --- a/docs/getting-started-guides/clc.md +++ b/docs/getting-started-guides/clc.md @@ -165,7 +165,6 @@ order to access the CenturyLinkCloud API -h (--help) display this help and exit -c= (--clc_cluster_name=) set the name of the cluster, as used in CLC group names -m= (--minion_count=) number of kubernetes minion nodes to add - ``` ## Cluster Deletion @@ -176,7 +175,6 @@ There are two ways to delete an existing cluster: ```shell python delete_cluster.py --cluster=clc_cluster_name --datacenter=DC1 - ``` 2) Use the CenturyLink Cloud UI. To delete a cluster, log into the CenturyLink From 82d421f82a816263043bc5029bbadbc510511451 Mon Sep 17 00:00:00 2001 From: XsWack Date: Fri, 18 Aug 2017 04:51:02 +0800 Subject: [PATCH 028/129] Update index.md (#4988) format the command line --- docs/admin/high-availability/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/admin/high-availability/index.md b/docs/admin/high-availability/index.md index 841f52b7d7..d06068d58f 100644 --- a/docs/admin/high-availability/index.md +++ b/docs/admin/high-availability/index.md @@ -99,6 +99,7 @@ for `${NODE_IP}` on each machine. #### Validating your cluster Once you copy this into all three nodes, you should have a clustered etcd set up. You can validate on master with + ```shell kubectl exec < pod_name > etcdctl member list ``` From b3664e80dfaca4e46bb19570f8f0276d66ccc97f Mon Sep 17 00:00:00 2001 From: lemon-tree Date: Fri, 18 Aug 2017 04:51:45 +0800 Subject: [PATCH 029/129] Update labels-annotations-taints.md (#4987) Added the lost ".", and modified the "." in the brackets . --- docs/reference/labels-annotations-taints.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/reference/labels-annotations-taints.md b/docs/reference/labels-annotations-taints.md index e159fbf818..6ca88a83d2 100644 --- a/docs/reference/labels-annotations-taints.md +++ b/docs/reference/labels-annotations-taints.md @@ -63,7 +63,7 @@ of requiring a `g2.2xlarge`) ## failure-domain.beta.kubernetes.io/region -See [failure-domain.beta.kubernetes.io/zone](#failure-domainbetakubernetesiozone) +See [failure-domain.beta.kubernetes.io/zone](#failure-domainbetakubernetesiozone). ## failure-domain.beta.kubernetes.io/zone @@ -82,8 +82,8 @@ On the PersistentVolume: The `PersistentVolumeLabel` admission controller will a on GCE and AWS. Kubernetes will automatically spread the pods in a replication controller or service across nodes in a single-zone -cluster (to reduce the impact of failures.) With multiple-zone clusters, this spreading behaviour is extended -across zones (to reduce the impact of zone failures.) This is achieved via SelectorSpreadPriority. +cluster (to reduce the impact of failures). With multiple-zone clusters, this spreading behaviour is extended +across zones (to reduce the impact of zone failures). This is achieved via SelectorSpreadPriority. This is a best-effort placement, and so if the zones in your cluster are heterogeneous (e.g. different numbers of nodes, different types of nodes, or different pod resource requirements), this might prevent equal spreading of From cd69302ea81eae4648cb6a522b4b4b96dd3edc41 Mon Sep 17 00:00:00 2001 From: Nikhita Raghunath Date: Fri, 18 Aug 2017 02:22:23 +0530 Subject: [PATCH 030/129] JSONPath: rename title (#4986) From 446d95ac38979903668f2336aa60d48af3163985 Mon Sep 17 00:00:00 2001 From: Stewart-YU Date: Fri, 18 Aug 2017 04:52:51 +0800 Subject: [PATCH 031/129] Update http-proxy-access-api.md (#4982) Fix leading spaces in commands. --- docs/tasks/access-kubernetes-api/http-proxy-access-api.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/access-kubernetes-api/http-proxy-access-api.md b/docs/tasks/access-kubernetes-api/http-proxy-access-api.md index ce3cc1efa8..e1dc1f94e3 100644 --- a/docs/tasks/access-kubernetes-api/http-proxy-access-api.md +++ b/docs/tasks/access-kubernetes-api/http-proxy-access-api.md @@ -13,7 +13,7 @@ This page shows how to use an HTTP proxy to access the Kubernetes API. * If you do not already have an application running in your cluster, start a Hello world application by entering this command: - kubectl run node-hello --image=gcr.io/google-samples/node-hello:1.0 --port=8080 + kubectl run node-hello --image=gcr.io/google-samples/node-hello:1.0 --port=8080 {% endcapture %} From b3fe14a5ca4989a1a6ad176b014908aec650a9c0 Mon Sep 17 00:00:00 2001 From: Anthony Date: Fri, 18 Aug 2017 04:57:21 +0800 Subject: [PATCH 032/129] Update namespaces.md (#4981) modify "the value of cluster and user are" to "the values of cluster and user are" --- docs/tasks/administer-cluster/namespaces.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/administer-cluster/namespaces.md b/docs/tasks/administer-cluster/namespaces.md index bfdb32bc15..eee6e75e46 100644 --- a/docs/tasks/administer-cluster/namespaces.md +++ b/docs/tasks/administer-cluster/namespaces.md @@ -205,7 +205,7 @@ $ kubectl config current-context lithe-cocoa-92103_kubernetes ``` -The next step is to define a context for the kubectl client to work in each namespace. The value of "cluster" and "user" fields are copied from the current context. +The next step is to define a context for the kubectl client to work in each namespace. The values of "cluster" and "user" fields are copied from the current context. ```shell $ kubectl config set-context dev --namespace=development --cluster=lithe-cocoa-92103_kubernetes --user=lithe-cocoa-92103_kubernetes From ebb38a98e7813887822f630507dce8f77e3414a1 Mon Sep 17 00:00:00 2001 From: Anthony Date: Fri, 18 Aug 2017 05:02:43 +0800 Subject: [PATCH 033/129] Update configure-upgrade-etcd.md (#4978) add "." to the sentence --- docs/tasks/administer-cluster/configure-upgrade-etcd.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/administer-cluster/configure-upgrade-etcd.md b/docs/tasks/administer-cluster/configure-upgrade-etcd.md index 4249470678..b672375a9e 100644 --- a/docs/tasks/administer-cluster/configure-upgrade-etcd.md +++ b/docs/tasks/administer-cluster/configure-upgrade-etcd.md @@ -194,7 +194,7 @@ If the majority of etcd members have permanently failed, the etcd cluster is con The upgrade procedure described in this document assumes that either: -1. The etcd cluster has only a single node +1. The etcd cluster has only a single node. 2. The etcd cluster has multiple nodes. In this case, the upgrade procedure requires shutting down the From 025ce4194526151656b1a70fbeab4bbbe903868b Mon Sep 17 00:00:00 2001 From: Anthony Date: Fri, 18 Aug 2017 05:03:49 +0800 Subject: [PATCH 034/129] Update securing-a-cluster.md (#4975) modify "their namespace" to "their namespaces" --- docs/tasks/administer-cluster/securing-a-cluster.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/administer-cluster/securing-a-cluster.md b/docs/tasks/administer-cluster/securing-a-cluster.md index 43a1308d26..a0f84ad4d3 100644 --- a/docs/tasks/administer-cluster/securing-a-cluster.md +++ b/docs/tasks/administer-cluster/securing-a-cluster.md @@ -107,7 +107,7 @@ policy. The [network policies](/docs/tasks/administer-cluster/declare-network-policy/) for a namespace allows application authors to restrict which pods in other namespaces may access pods and ports -within their namespace. Many of the supported [Kubernetes networking providers](/docs/concepts/cluster-administration/networking/) +within their namespaces. Many of the supported [Kubernetes networking providers](/docs/concepts/cluster-administration/networking/) now respect network policy. Quota and limit ranges can also be used to control whether users may request node ports or From 3c99a5c58420b92d012d05577a6f37ee013e819b Mon Sep 17 00:00:00 2001 From: XsWack Date: Fri, 18 Aug 2017 05:04:21 +0800 Subject: [PATCH 035/129] Update manual.md (#4974) format command line --- docs/getting-started-guides/ubuntu/manual.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-started-guides/ubuntu/manual.md b/docs/getting-started-guides/ubuntu/manual.md index cf9ee4c675..e45fc69a33 100644 --- a/docs/getting-started-guides/ubuntu/manual.md +++ b/docs/getting-started-guides/ubuntu/manual.md @@ -130,7 +130,7 @@ for the recommended settings for various releases. If your machines are located in a private network that need proxy setting to connect the Internet, you can set the config `PROXY_SETTING` in cluster/ubuntu/config-default.sh such as: - PROXY_SETTING="http_proxy=http://server:port https_proxy=https://server:port" + PROXY_SETTING="http_proxy=http://server:port https_proxy=https://server:port" After all the above variables being set correctly, we can use following command in `cluster/` directory to bring up the whole cluster. From 732aef88207c437ea2bd026332cc6e3f7632a5e0 Mon Sep 17 00:00:00 2001 From: lemon-tree Date: Fri, 18 Aug 2017 05:04:45 +0800 Subject: [PATCH 036/129] Update rbac.md (#4973) Added the lost "." .And the "NOTE" should be in a new line. --- docs/admin/authorization/rbac.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/admin/authorization/rbac.md b/docs/admin/authorization/rbac.md index d091c6e65e..1bf36a4b15 100644 --- a/docs/admin/authorization/rbac.md +++ b/docs/admin/authorization/rbac.md @@ -647,7 +647,7 @@ Grants a `ClusterRole` across the entire cluster, including all namespaces. Exam `kubectl create clusterrolebinding myapp-view-binding --clusterrole=view --serviceaccount=acme:myapp` -See the CLI help for detailed usage +See the CLI help for detailed usage. ## Service Account Permissions @@ -691,6 +691,7 @@ In order from most secure to least secure, the approaches are: Many [add-ons](/docs/concepts/cluster-administration/addons/) currently run as the "default" service account in the "kube-system" namespace. To allow those add-ons to run with super-user access, grant cluster-admin permissions to the "default" service account in the "kube-system" namespace. + NOTE: Enabling this means the "kube-system" namespace contains secrets that grant super-user access to the API. ```shell From b8a0fbbdd0f2263f01516bcbea5b8fe4e11ac357 Mon Sep 17 00:00:00 2001 From: Zachary Corleissen Date: Thu, 17 Aug 2017 14:42:29 -0700 Subject: [PATCH 037/129] Fixes nav errors introduced in #4694 (#4888) * Fixing tutorial dropdown nav * Changed indentation levels * Syntax fix * Trying to get Udacity to work * Removed a redundant section heading --- _data/tutorials.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/_data/tutorials.yml b/_data/tutorials.yml index 479135958e..60462663a6 100644 --- a/_data/tutorials.yml +++ b/_data/tutorials.yml @@ -30,10 +30,11 @@ toc: - docs/tutorials/kubernetes-basics/update-intro.html - docs/tutorials/kubernetes-basics/update-interactive.html - title: Online Training Courses - section: Scalable Microservices with Kubernetes (Udacity) - path: https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615 - section: Introduction to Kubernetes (edX) - path: https://www.edx.org/course/introduction-kubernetes-linuxfoundationx-lfs158x# + section: + - title: Scalable Microservices with Kubernetes (Udacity) + path: https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615 + - title: Introduction to Kubernetes (edX) + path: https://www.edx.org/course/introduction-kubernetes-linuxfoundationx-lfs158x# - docs/tutorials/stateless-application/hello-minikube.md - title: Configuration section: From d39c22e69bb9c712616c9a324fb50843c42e7614 Mon Sep 17 00:00:00 2001 From: Anthony Date: Tue, 15 Aug 2017 15:53:37 +0800 Subject: [PATCH 038/129] Update authenticate-across-clusters-kubeconfig.md modify the first letter of sentence to be in uppercase --- .../authenticate-across-clusters-kubeconfig.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/tasks/access-application-cluster/authenticate-across-clusters-kubeconfig.md b/docs/tasks/access-application-cluster/authenticate-across-clusters-kubeconfig.md index facc84a0e7..217c62ce5f 100644 --- a/docs/tasks/access-application-cluster/authenticate-across-clusters-kubeconfig.md +++ b/docs/tasks/access-application-cluster/authenticate-across-clusters-kubeconfig.md @@ -202,15 +202,15 @@ The rules for loading and merging the kubeconfig files are straightforward, but Otherwise, use HomeDirectoryLocation (`~/.kube/config`) with no merging. 1. Determine the context to use based on the first hit in this chain - 1. command line argument - the value of the `context` command line option + 1. Command line argument - the value of the `context` command line option 1. `current-context` from the merged kubeconfig file 1. Empty is allowed at this stage 1. Determine the cluster info and user to use. At this point, we may or may not have a context. They are built based on the first hit in this chain. (run it twice, once for user, once for cluster) - 1. command line argument - `user` for user name and `cluster` for cluster name + 1. Command line argument - `user` for user name and `cluster` for cluster name 1. If context is present, then use the context's value 1. Empty is allowed 1. Determine the actual cluster info to use. At this point, we may or may not have a cluster info. Build each piece of the cluster info based on the chain (first hit wins): - 1. command line arguments - `server`, `api-version`, `certificate-authority`, and `insecure-skip-tls-verify` + 1. Command line arguments - `server`, `api-version`, `certificate-authority`, and `insecure-skip-tls-verify` 1. If cluster info is present and a value for the attribute is present, use it. 1. If you don't have a server location, error. 1. Determine the actual user info to use. User is built using the same rules as cluster info, EXCEPT that you can only have one authentication technique per user. From e2f2487c39361fbfd549e74e9518bb2f4fc9a2ea Mon Sep 17 00:00:00 2001 From: Dhilip Date: Tue, 15 Aug 2017 15:29:29 +0530 Subject: [PATCH 039/129] [minor] Grammar and typo [minor] Grammar and typo --- docs/user-guide/kubectl/v1.6/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/user-guide/kubectl/v1.6/README.md b/docs/user-guide/kubectl/v1.6/README.md index f6799c18b9..18abdc4c8b 100644 --- a/docs/user-guide/kubectl/v1.6/README.md +++ b/docs/user-guide/kubectl/v1.6/README.md @@ -6,7 +6,7 @@ Static compilation of html from markdown including processing for grouping code \> bdocs-tab:kubectl Deployment Config to run 3 nginx instances (max rollback set to 10 revisions). -bdocs-tab:tab will be stripped during rendering and utilized to with CSS to show or hide the prefered tab. kubectl indicates the desired tab, since blockquotes have no specific syntax highlighting. +bdocs-tab:tab will be stripped during rendering and utilized to with CSS to show or hide the preferred tab. kubectl indicates the desired tab, since blockquotes have no specific syntax highlighting. \`\`\`bdocs-tab:kubectl_yaml apiVersion: extensions/v1beta1 @@ -38,7 +38,7 @@ With specific tokens on blockquotes and code blocks, the chunks can be placed ac Clone the repository, then add documents into documents directory. Modify the manifest.json to contain the document filenames in the order desired. The docs field is an array of objects with a filename key. -As a NodeJS program, a valid installation of node is required. Once node is installed, verify it can be run from command line. +As a NodeJS program, a valid installation of node is required. Once node is installed, verify if it can be run from command line. ``` node --version ``` @@ -66,4 +66,4 @@ Apache License Version 2.0 ## FAQ Q: Why is it named brodocs? -A: This project was born out of a collaboration with my brother to create a suitable docs app for his purposes. It was a fun name for the the two of us to use as actual brothers. \ No newline at end of file +A: This project was born out of a collaboration with my brother to create a suitable docs app for his purposes. It was a fun name for the the two of us to use as actual brothers. From c8d68579ca2c4e32930701d046fb5d89b5d6110d Mon Sep 17 00:00:00 2001 From: Dhilip Date: Tue, 15 Aug 2017 15:30:54 +0530 Subject: [PATCH 040/129] [minor] Grammar and typo [minor] Grammar and typo --- docs/user-guide/kubectl/v1.7/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/user-guide/kubectl/v1.7/README.md b/docs/user-guide/kubectl/v1.7/README.md index e8c00fe78d..18abdc4c8b 100644 --- a/docs/user-guide/kubectl/v1.7/README.md +++ b/docs/user-guide/kubectl/v1.7/README.md @@ -38,7 +38,7 @@ With specific tokens on blockquotes and code blocks, the chunks can be placed ac Clone the repository, then add documents into documents directory. Modify the manifest.json to contain the document filenames in the order desired. The docs field is an array of objects with a filename key. -As a NodeJS program, a valid installation of node is required. Once node is installed, verify it can be run from command line. +As a NodeJS program, a valid installation of node is required. Once node is installed, verify if it can be run from command line. ``` node --version ``` From a0fd2054bf67aee0214ac885396461d7e6d97013 Mon Sep 17 00:00:00 2001 From: Dhilip Date: Tue, 15 Aug 2017 15:32:55 +0530 Subject: [PATCH 041/129] [minor] Grammar [minor] Grammar --- docs/user-guide/jsonpath.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/user-guide/jsonpath.md b/docs/user-guide/jsonpath.md index 0ca17dc318..0efc779a78 100644 --- a/docs/user-guide/jsonpath.md +++ b/docs/user-guide/jsonpath.md @@ -5,7 +5,7 @@ title: JSONPath Support JSONPath template is composed of JSONPath expressions enclosed by {}. And we add three functions in addition to the original JSONPath syntax: -1. The `$` operator is optional since the expression always start from the root object by default. +1. The `$` operator is optional since the expression always starts from the root object by default. 2. We can use `""` to quote text inside JSONPath expressions. 3. We can use `range` operator to iterate lists. From 4a7d977170cd3bef2bbc6db3ca2b50f39d9827ec Mon Sep 17 00:00:00 2001 From: Weibin Lin Date: Tue, 15 Aug 2017 10:16:22 +0800 Subject: [PATCH 042/129] Update apparmor.md fix typos --- docs/tutorials/clusters/apparmor.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/tutorials/clusters/apparmor.md b/docs/tutorials/clusters/apparmor.md index 4d068ec436..71c793eb20 100644 --- a/docs/tutorials/clusters/apparmor.md +++ b/docs/tutorials/clusters/apparmor.md @@ -131,7 +131,7 @@ Where `` is the name of the container to apply the profile to, a specifies the profile to apply. The `profile_ref` can be one of: * `runtime/default` to apply the runtime's default profile. -* `localhost/` to apply the profile loaded on the host with the name `` +* `localhost/` to apply the profile loaded on the host with the name ``. See the [API Reference](#api-reference) for the full details on the annotation and profile name formats. @@ -370,7 +370,7 @@ explicitly reject the annotations for at least 2 releases after that. Getting AppArmor profiles specified correctly can be a tricky business. Fortunately there are some tools to help with that: -* `aa-genprof` and `aa-logprof` generate profile rules by monitoring an application's activity and +* `aa-genprof` and `aa-logprof` generate profile rules by monitoring an application's activities and logs, and admitting the actions it takes. Further instructions are provided by the [AppArmor documentation](http://wiki.apparmor.net/index.php/Profiling_with_tools). * [bane](https://github.com/jfrazelle/bane) is an AppArmor profile generator for Docker that uses a @@ -407,7 +407,7 @@ Specifying the profile a container will run with: containers, and unconfined (no profile) for privileged containers. - `localhost/`: Refers to a profile loaded on the node (localhost) by name. - The possible profile names are detailed in the - [core policy reference](http://wiki.apparmor.net/index.php/AppArmor_Core_Policy_Reference#Profile_names_and_attachment_specifications) + [core policy reference](http://wiki.apparmor.net/index.php/AppArmor_Core_Policy_Reference#Profile_names_and_attachment_specifications). Any other profile reference format is invalid. @@ -423,7 +423,7 @@ Specifying the list of profiles Pod containers is allowed to specify: * **key**: `apparmor.security.beta.kubernetes.io/allowedProfileNames` * **value**: a comma-separated list of profile references (described above) - Although an escaped comma is a legal character in a profile name, it cannot be explicitly - allowed here + allowed here. {% endcapture %} From 5b95a1894751c828efab431784852482838505f8 Mon Sep 17 00:00:00 2001 From: Weibin Lin Date: Tue, 15 Aug 2017 16:08:32 +0800 Subject: [PATCH 043/129] Update apparmor.md --- docs/tutorials/clusters/apparmor.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/tutorials/clusters/apparmor.md b/docs/tutorials/clusters/apparmor.md index 71c793eb20..4e1cec4a1f 100644 --- a/docs/tutorials/clusters/apparmor.md +++ b/docs/tutorials/clusters/apparmor.md @@ -130,8 +130,8 @@ container.apparmor.security.beta.kubernetes.io/: Where `` is the name of the container to apply the profile to, and `` specifies the profile to apply. The `profile_ref` can be one of: -* `runtime/default` to apply the runtime's default profile. -* `localhost/` to apply the profile loaded on the host with the name ``. +* `runtime/default` to apply the runtime's default profile +* `localhost/` to apply the profile loaded on the host with the name `` See the [API Reference](#api-reference) for the full details on the annotation and profile name formats. @@ -370,7 +370,7 @@ explicitly reject the annotations for at least 2 releases after that. Getting AppArmor profiles specified correctly can be a tricky business. Fortunately there are some tools to help with that: -* `aa-genprof` and `aa-logprof` generate profile rules by monitoring an application's activities and +* `aa-genprof` and `aa-logprof` generate profile rules by monitoring an application's activity and logs, and admitting the actions it takes. Further instructions are provided by the [AppArmor documentation](http://wiki.apparmor.net/index.php/Profiling_with_tools). * [bane](https://github.com/jfrazelle/bane) is an AppArmor profile generator for Docker that uses a From d8ef089c1872c808a01fbb47b31c2a4afbf30b14 Mon Sep 17 00:00:00 2001 From: Anthony Date: Tue, 15 Aug 2017 17:00:01 +0800 Subject: [PATCH 044/129] Update configure-cloud-provider-firewall.md modify "ips" to "IPs" --- .../configure-cloud-provider-firewall.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/access-application-cluster/configure-cloud-provider-firewall.md b/docs/tasks/access-application-cluster/configure-cloud-provider-firewall.md index 0b7f5603ba..58eb4d65d2 100644 --- a/docs/tasks/access-application-cluster/configure-cloud-provider-firewall.md +++ b/docs/tasks/access-application-cluster/configure-cloud-provider-firewall.md @@ -16,7 +16,7 @@ well as any provider specific details that may be necessary. by using `spec.loadBalancerSourceRanges`. This field takes a list of IP CIDR ranges, which Kubernetes will use to configure firewall exceptions. This feature is currently supported on Google Compute Engine, Google Container Engine and AWS. This field will be ignored if the cloud provider does not support the feature. - Assuming 10.0.0.0/8 is the internal subnet. In the following example, a load balancer will be created that is only accessible to cluster internal ips. + Assuming 10.0.0.0/8 is the internal subnet. In the following example, a load balancer will be created that is only accessible to cluster internal IPs. This will not allow clients from outside of your Kubernetes cluster to access the load balancer. ```yaml From 40864059c2163ee1abac9449af0a8e0b5b7a4777 Mon Sep 17 00:00:00 2001 From: Dhilip Date: Tue, 15 Aug 2017 15:41:21 +0530 Subject: [PATCH 045/129] [minor] Removed repetition [minor] Removed repetition --- docs/getting-started-guides/fedora/fedora_manual_config.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-started-guides/fedora/fedora_manual_config.md b/docs/getting-started-guides/fedora/fedora_manual_config.md index ccdb8081a9..dd6a301fd9 100644 --- a/docs/getting-started-guides/fedora/fedora_manual_config.md +++ b/docs/getting-started-guides/fedora/fedora_manual_config.md @@ -33,7 +33,7 @@ fed-node = 192.168.121.65 **Prepare the hosts:** * Install Kubernetes on all hosts - fed-{master,node}. This will also pull in docker. Also install etcd on fed-master. This guide has been tested with Kubernetes-0.18 and beyond. -* Running on AWS EC2 with RHEL 7.2, you need to enable "extras" repository for yum by editing `/etc/yum.repos.d/redhat-rhui.repo` and changing the changing the `enable=0` to `enable=1` for extras. +* Running on AWS EC2 with RHEL 7.2, you need to enable "extras" repository for yum by editing `/etc/yum.repos.d/redhat-rhui.repo` and changing the `enable=0` to `enable=1` for extras. ```shell dnf -y install kubernetes From f10a59109d0bb3ab2244a8041ff56a72c869261a Mon Sep 17 00:00:00 2001 From: Anthony Date: Tue, 15 Aug 2017 19:33:19 +0800 Subject: [PATCH 046/129] Update resource-usage-monitoring.md modify "cadvisor" to "cAdvisor" --- .../debug-application-cluster/resource-usage-monitoring.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/debug-application-cluster/resource-usage-monitoring.md b/docs/tasks/debug-application-cluster/resource-usage-monitoring.md index 159426e29e..0d9698e6ed 100644 --- a/docs/tasks/debug-application-cluster/resource-usage-monitoring.md +++ b/docs/tasks/debug-application-cluster/resource-usage-monitoring.md @@ -16,7 +16,7 @@ Let's look at some of the other components in more detail. ### cAdvisor -cAdvisor is an open source container resource usage and performance analysis agent. It is purpose-built for containers and supports Docker containers natively. In Kubernetes, cadvisor is integrated into the Kubelet binary. cAdvisor auto-discovers all containers in the machine and collects CPU, memory, filesystem, and network usage statistics. cAdvisor also provides the overall machine usage by analyzing the 'root'? container on the machine. +cAdvisor is an open source container resource usage and performance analysis agent. It is purpose-built for containers and supports Docker containers natively. In Kubernetes, cAdvisor is integrated into the Kubelet binary. cAdvisor auto-discovers all containers in the machine and collects CPU, memory, filesystem, and network usage statistics. cAdvisor also provides the overall machine usage by analyzing the 'root'? container on the machine. On most Kubernetes clusters, cAdvisor exposes a simple UI for on-machine containers on port 4194. Here is a snapshot of part of cAdvisor's UI that shows the overall machine usage: From 37b639e508ef53a370fc1095d5ead3b2295fd026 Mon Sep 17 00:00:00 2001 From: Dhilip Date: Tue, 15 Aug 2017 15:35:06 +0530 Subject: [PATCH 047/129] [minor] Grammar [minor] Grammar --- docs/user-guide/kubectl-cheatsheet.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/user-guide/kubectl-cheatsheet.md b/docs/user-guide/kubectl-cheatsheet.md index 7aca9473ef..111f3d942e 100644 --- a/docs/user-guide/kubectl-cheatsheet.md +++ b/docs/user-guide/kubectl-cheatsheet.md @@ -18,7 +18,7 @@ $ source <(kubectl completion zsh) # setup autocomplete in zsh ## Kubectl Context and Configuration -Set which Kubernetes cluster `kubectl` communicates with and modify configuration +Set which Kubernetes cluster `kubectl` communicates with and modifies configuration information. See [Authenticating Across Clusters with kubeconfig](/docs/concepts/cluster-administration/authenticate-across-clusters-kubeconfig/) documentation for detailed config file information. From 83b731720d324d182f2bbe7cd97d79a95f624296 Mon Sep 17 00:00:00 2001 From: Dhilip Date: Tue, 15 Aug 2017 15:44:11 +0530 Subject: [PATCH 048/129] [minor] Grammar [minor] Grammar --- .../getting-started-guides/fedora/flannel_multi_node_cluster.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-started-guides/fedora/flannel_multi_node_cluster.md b/docs/getting-started-guides/fedora/flannel_multi_node_cluster.md index d7c3d30e6f..51d3aa0db3 100644 --- a/docs/getting-started-guides/fedora/flannel_multi_node_cluster.md +++ b/docs/getting-started-guides/fedora/flannel_multi_node_cluster.md @@ -40,7 +40,7 @@ Add the configuration to the etcd server on fed-master. etcdctl set /coreos.com/network/config < flannel-config.json ``` -* Verify the key exists in the etcd server on fed-master. +* Verify that the key exists in the etcd server on fed-master. ```shell etcdctl get /coreos.com/network/config From c9d01fe52809161370bc656664afabc0f55e7b43 Mon Sep 17 00:00:00 2001 From: Stewart-YU Date: Tue, 15 Aug 2017 20:06:06 +0800 Subject: [PATCH 049/129] Update scratch.md The first letter needs to be capitalized. --- docs/getting-started-guides/scratch.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/getting-started-guides/scratch.md b/docs/getting-started-guides/scratch.md index aff74f962e..8e450bbaf6 100644 --- a/docs/getting-started-guides/scratch.md +++ b/docs/getting-started-guides/scratch.md @@ -508,9 +508,9 @@ While the basic node services (kubelet, kube-proxy, docker) are typically starte traditional system administration/automation approaches, the remaining *master* components of Kubernetes are all configured and managed *by Kubernetes*: - - their options are specified in a Pod spec (yaml or json) rather than an /etc/init.d file or + - Their options are specified in a Pod spec (yaml or json) rather than an /etc/init.d file or systemd unit. - - they are kept running by Kubernetes rather than by init. + - They are kept running by Kubernetes rather than by init. ### etcd @@ -839,7 +839,7 @@ of their purpose is in the admin guide](/docs/admin/cluster-components/#addons). Notes for setting up each cluster service are given below: * Cluster DNS: - * required for many Kubernetes examples + * Required for many Kubernetes examples * [Setup instructions](http://releases.k8s.io/{{page.githubbranch}}/cluster/addons/dns/) * [Admin Guide](/docs/concepts/services-networking/dns-pod-service/) * Cluster-level Logging From 583a582a180d87125ea389975a6ecb38e5eca3e2 Mon Sep 17 00:00:00 2001 From: Anthony Date: Fri, 18 Aug 2017 06:40:17 +0800 Subject: [PATCH 050/129] Update access-cluster-services.md (#4972) modify "url" to "URL" --- docs/tasks/administer-cluster/access-cluster-services.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tasks/administer-cluster/access-cluster-services.md b/docs/tasks/administer-cluster/access-cluster-services.md index 0630274bc3..5c55fa3aca 100644 --- a/docs/tasks/administer-cluster/access-cluster-services.md +++ b/docs/tasks/administer-cluster/access-cluster-services.md @@ -100,11 +100,11 @@ If you haven't specified a name for your port, you don't have to specify *port_n #### Using web browsers to access services running on the cluster -You may be able to put an apiserver proxy url into the address bar of a browser. However: +You may be able to put an apiserver proxy URL into the address bar of a browser. However: - Web browsers cannot usually pass tokens, so you may need to use basic (password) auth. Apiserver can be configured to accept basic auth, but your cluster may not be configured to accept basic auth. - - Some web apps may not work, particularly those with client side javascript that construct urls in a + - Some web apps may not work, particularly those with client side javascript that construct URLs in a way that is unaware of the proxy path prefix. {% endcapture %} From f0a914ca66068c46cda375d65fcfa638a45e979c Mon Sep 17 00:00:00 2001 From: Dhilip Date: Tue, 15 Aug 2017 15:46:18 +0530 Subject: [PATCH 051/129] [minor] Grammar [minor] Grammar --- docs/getting-started-guides/mesos-docker.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-started-guides/mesos-docker.md b/docs/getting-started-guides/mesos-docker.md index 59d0351114..a6540bebdb 100644 --- a/docs/getting-started-guides/mesos-docker.md +++ b/docs/getting-started-guides/mesos-docker.md @@ -265,7 +265,7 @@ make test_e2e ## Kubernetes CLI -When compiling from source, it's simplest to use the `./cluster/kubectl.sh` script, which detects your platform & +When compiling from source, it's simpler to use the `./cluster/kubectl.sh` script, which detects your platform & architecture and proxies commands to the appropriate `kubectl` binary. ex: `./cluster/kubectl.sh get pods` From 0166cb7fce63a166f50a7862e4b2f17b3613608f Mon Sep 17 00:00:00 2001 From: Dhilip Date: Tue, 15 Aug 2017 15:38:19 +0530 Subject: [PATCH 052/129] [minor] Grammar [minor] Grammar --- docs/getting-started-guides/fedora/fedora_ansible_config.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-started-guides/fedora/fedora_ansible_config.md b/docs/getting-started-guides/fedora/fedora_ansible_config.md index 0bbbd75106..f3ce1de8c9 100644 --- a/docs/getting-started-guides/fedora/fedora_ansible_config.md +++ b/docs/getting-started-guides/fedora/fedora_ansible_config.md @@ -111,7 +111,7 @@ source_type: packageManager **Configure the IP addresses used for services** -Each Kubernetes service gets its own IP address. These are not real IPs. You need only select a range of IPs which are not in use elsewhere in your environment. +Each Kubernetes service gets its own IP address. These are not real IPs. You need to only select a range of IPs which are not in use elsewhere in your environment. ```yaml kube_service_addresses: 10.254.0.0/16 From adc08d543e0dd54be83c3210394ca4f173824a29 Mon Sep 17 00:00:00 2001 From: Irfan Ur Rehman Date: Tue, 15 Aug 2017 16:30:01 +0530 Subject: [PATCH 053/129] Add links to kubefed commands in federation set up doc --- .../set-up-cluster-federation-kubefed.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/docs/tasks/federation/set-up-cluster-federation-kubefed.md b/docs/tasks/federation/set-up-cluster-federation-kubefed.md index 4a5feeca17..0eee8195bc 100644 --- a/docs/tasks/federation/set-up-cluster-federation-kubefed.md +++ b/docs/tasks/federation/set-up-cluster-federation-kubefed.md @@ -8,10 +8,10 @@ title: Set up Cluster Federation with Kubefed {:toc} Kubernetes version 1.5 and above includes a new command line tool called -`kubefed` to help you administrate your federated clusters. -`kubefed` helps you to deploy a new Kubernetes cluster federation -control plane, and to add clusters to or remove clusters from an -existing federation control plane. +[`kubefed`](/docs/admin/kubefed/) to help you administrate your federated +clusters. `kubefed` helps you to deploy a new Kubernetes cluster federation +control plane, and to add clusters to or remove clusters from an existing +federation control plane. This guide explains how to administer a Kubernetes Cluster Federation using `kubefed`. @@ -69,7 +69,7 @@ kubefed is available as a [snap](https://snapcraft.io/) application. sudo snap install kubefed --classic -2. Run `kubefed version` to verify that the version you've installed is sufficiently up-to-date. +2. Run [`kubefed version`](/docs/admin/kubefed_version/) to verify that the version you've installed is sufficiently up-to-date. ## Choosing a host cluster. @@ -101,8 +101,8 @@ control plane. ## Deploying a federation control plane To deploy a federation control plane on your host cluster, run -`kubefed init` command. When you use `kubefed init`, you must provide -the following: +[`kubefed init`](/docs/admin/kubefed_init/) command. When you use +`kubefed init`, you must provide the following: * Federation name * `--host-cluster-context`, the `kubeconfig` context for the host cluster @@ -373,7 +373,8 @@ For more information see Once you've deployed a federation control plane, you'll need to make that control plane aware of the clusters it should manage. You can add -a cluster to your federation by using the `kubefed join` command. +a cluster to your federation by using the [`kubefed join`](/docs/admin/kubefed_join) +command. To use `kubefed join`, you'll need to provide the name of the cluster you want to add to the federation, and the `--host-cluster-context` @@ -467,7 +468,7 @@ as described in the ## Removing a cluster from a federation -To remove a cluster from a federation, run the `kubefed unjoin` +To remove a cluster from a federation, run the [`kubefed unjoin`](/docs/admin/kubefed_unjoin) command with the cluster name and the federation's `--host-cluster-context`: From dae117d2c96143cbf23cbda79a829943afa6b05e Mon Sep 17 00:00:00 2001 From: Weibin Lin Date: Fri, 18 Aug 2017 06:47:19 +0800 Subject: [PATCH 054/129] Update logging-stackdriver.md (#4966) fix typos --- docs/tasks/debug-application-cluster/logging-stackdriver.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/tasks/debug-application-cluster/logging-stackdriver.md b/docs/tasks/debug-application-cluster/logging-stackdriver.md index 60bc77cb4c..fb29b010cf 100644 --- a/docs/tasks/debug-application-cluster/logging-stackdriver.md +++ b/docs/tasks/debug-application-cluster/logging-stackdriver.md @@ -193,7 +193,7 @@ will have log names `container_1` and `container_2` respectively. System components have resource type `compute`, which is named `GCE VM Instance` in the interface. Log names for system components are fixed. -For a GKE node, every log entry from a system component has one the following +For a GKE node, every log entry from a system component has one of the following log names: * docker @@ -234,9 +234,9 @@ the Stackdriver [Exporting Logs page](https://cloud.google.com/logging/docs/expo ## Configuring Stackdriver Logging Agents -Sometimes the default installation of Stackdriver Logging may not suite your needs, for example: +Sometimes the default installation of Stackdriver Logging may not suit your needs, for example: -* You may want to add more resources because default performance doesn't suite your needs. +* You may want to add more resources because default performance doesn't suit your needs. * You may want to introduce additional parsing to extract more metadata from your log messages, like severity or source code reference. * You may want to send logs not only to Stackdriver or send it to Stackdriver only partially. From f24434c75a4a4542b42039cf86736e8a8dac8e5f Mon Sep 17 00:00:00 2001 From: Lion-Wei Date: Fri, 18 Aug 2017 06:47:47 +0800 Subject: [PATCH 055/129] Update declarative-object-management-configuration.md (#4965) From b568610c0861580d2f43eede520a2374e4219087 Mon Sep 17 00:00:00 2001 From: lichuqiang Date: Fri, 18 Aug 2017 06:48:30 +0800 Subject: [PATCH 056/129] fix typo (#4964) --- docs/admin/high-availability/index.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/admin/high-availability/index.md b/docs/admin/high-availability/index.md index d06068d58f..298598d851 100644 --- a/docs/admin/high-availability/index.md +++ b/docs/admin/high-availability/index.md @@ -195,8 +195,7 @@ touch /var/log/kube-scheduler.log touch /var/log/kube-controller-manager.log ``` -Next, set up the descriptions of the scheduler and controller manager pods on each node. -by copying [kube-scheduler.yaml](/docs/admin/high-availability/kube-scheduler.yaml) and [kube-controller-manager.yaml](/docs/admin/high-availability/kube-controller-manager.yaml) into the `/etc/kubernetes/manifests/` directory. +Next, set up the descriptions of the scheduler and controller manager pods on each node by copying [kube-scheduler.yaml](/docs/admin/high-availability/kube-scheduler.yaml) and [kube-controller-manager.yaml](/docs/admin/high-availability/kube-controller-manager.yaml) into the `/etc/kubernetes/manifests/` directory. ## Conclusion From 621959eeb2d01b4b7ac6fb79e95e44da407f2b68 Mon Sep 17 00:00:00 2001 From: Stewart-YU Date: Tue, 15 Aug 2017 19:58:24 +0800 Subject: [PATCH 057/129] Update authentication.md Fix leading spaces in commands. --- docs/admin/authentication.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/admin/authentication.md b/docs/admin/authentication.md index 1fc47a57e4..2a3e573c9f 100644 --- a/docs/admin/authentication.md +++ b/docs/admin/authentication.md @@ -722,23 +722,23 @@ Finally, add the following parameters into API server start parameters: 1. Download, unpack, and initialize the patched version of easyrsa3. - curl -L -O https://storage.googleapis.com/kubernetes-release/easy-rsa/easy-rsa.tar.gz - tar xzf easy-rsa.tar.gz - cd easy-rsa-master/easyrsa3 - ./easyrsa init-pki + curl -L -O https://storage.googleapis.com/kubernetes-release/easy-rsa/easy-rsa.tar.gz + tar xzf easy-rsa.tar.gz + cd easy-rsa-master/easyrsa3 + ./easyrsa init-pki 1. Generate a CA. (`--batch` set automatic mode. `--req-cn` default CN to use.) - ./easyrsa --batch "--req-cn=${MASTER_IP}@`date +%s`" build-ca nopass + ./easyrsa --batch "--req-cn=${MASTER_IP}@`date +%s`" build-ca nopass 1. Generate server certificate and key. (build-server-full [filename]: Generate a keypair and sign locally for a client or server) - ./easyrsa --subject-alt-name="IP:${MASTER_IP}" build-server-full server nopass + ./easyrsa --subject-alt-name="IP:${MASTER_IP}" build-server-full server nopass 1. Copy `pki/ca.crt`, `pki/issued/server.crt`, and `pki/private/server.key` to your directory. 1. Fill in and add the following parameters into the API server start parameters: - --client-ca-file=/yourdirectory/ca.crt - --tls-cert-file=/yourdirectory/server.crt - --tls-private-key-file=/yourdirectory/server.key + --client-ca-file=/yourdirectory/ca.crt + --tls-cert-file=/yourdirectory/server.crt + --tls-private-key-file=/yourdirectory/server.key #### openssl @@ -746,22 +746,22 @@ Finally, add the following parameters into API server start parameters: 1. Generate a ca.key with 2048bit: - openssl genrsa -out ca.key 2048 + openssl genrsa -out ca.key 2048 1. According to the ca.key generate a ca.crt (use -days to set the certificate effective time): - openssl req -x509 -new -nodes -key ca.key -subj "/CN=${MASTER_IP}" -days 10000 -out ca.crt + openssl req -x509 -new -nodes -key ca.key -subj "/CN=${MASTER_IP}" -days 10000 -out ca.crt 1. Generate a server.key with 2048bit - openssl genrsa -out server.key 2048 + openssl genrsa -out server.key 2048 1. According to the server.key generate a server.csr: - openssl req -new -key server.key -subj "/CN=${MASTER_IP}" -out server.csr + openssl req -new -key server.key -subj "/CN=${MASTER_IP}" -out server.csr 1. According to the ca.key, ca.crt and server.csr generate the server.crt: - openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 10000 + openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 10000 1. View the certificate. - openssl x509 -noout -text -in ./server.crt + openssl x509 -noout -text -in ./server.crt Finally, do not forget to fill out and add the same parameters into the API server start parameters. From 0267ae702089d3790d8824f33b1d553ad9cf27fd Mon Sep 17 00:00:00 2001 From: Lion-Wei Date: Fri, 18 Aug 2017 06:49:38 +0800 Subject: [PATCH 058/129] modify link of 'resource-qos.md' (#4960) --- docs/api-reference/v1.7/index.html | 2 +- docs/resources-reference/v1.7/index.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/api-reference/v1.7/index.html b/docs/api-reference/v1.7/index.html index 0b82fe44fe..9f8b0c2bbd 100644 --- a/docs/api-reference/v1.7/index.html +++ b/docs/api-reference/v1.7/index.html @@ -8018,7 +8018,7 @@ Appears In: qosClass
string -The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://github.com/kubernetes/kubernetes/blob/master/docs/design/resource-qos.md +The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://github.com/kubernetes/community/blob/master/contributors/design-proposals/resource-qos.md reason
string diff --git a/docs/resources-reference/v1.7/index.html b/docs/resources-reference/v1.7/index.html index a38a3798bc..12aaa81e70 100644 --- a/docs/resources-reference/v1.7/index.html +++ b/docs/resources-reference/v1.7/index.html @@ -1315,7 +1315,7 @@ Appears In: qosClass
string -The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://github.com/kubernetes/kubernetes/blob/master/docs/design/resource-qos.md +The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://github.com/kubernetes/community/blob/master/contributors/design-proposals/resource-qos.md reason
string From 41a710b58f22961c5a9d721ffe661c6784baede4 Mon Sep 17 00:00:00 2001 From: Lion-Wei Date: Fri, 18 Aug 2017 06:50:24 +0800 Subject: [PATCH 059/129] Update create-cluster-kubeadm.md (#4948) --- docs/setup/independent/create-cluster-kubeadm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/setup/independent/create-cluster-kubeadm.md b/docs/setup/independent/create-cluster-kubeadm.md index e834f06def..44f04c38bc 100644 --- a/docs/setup/independent/create-cluster-kubeadm.md +++ b/docs/setup/independent/create-cluster-kubeadm.md @@ -481,7 +481,7 @@ v1.7. kubeadm deb/rpm packages and binaries are built for amd64, arm (32-bit), arm64, ppc64le, and s390x following the [multi-platform -proposal](https://github.com/kubernetes/kubernetes/blob/master/docs/proposals/multi-platform.md). +proposal](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/multi-platform.md). Only some of the network providers offer solutions for all platforms. Please consult the list of network providers above or the documentation from each provider to figure out whether the provider From 408d8d610ef6c3238a0ab2078fd1b39b23639710 Mon Sep 17 00:00:00 2001 From: Anthony Date: Tue, 15 Aug 2017 20:10:47 +0800 Subject: [PATCH 060/129] Update debug-application.md add "." to the sentence --- docs/tasks/debug-application-cluster/debug-application.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/debug-application-cluster/debug-application.md b/docs/tasks/debug-application-cluster/debug-application.md index 8b37fe7aa2..5a129be1d1 100644 --- a/docs/tasks/debug-application-cluster/debug-application.md +++ b/docs/tasks/debug-application-cluster/debug-application.md @@ -57,7 +57,7 @@ scheduled. In most cases, `hostPort` is unnecessary, try using a Service object If a Pod is stuck in the `Waiting` state, then it has been scheduled to a worker node, but it can't run on that machine. Again, the information from `kubectl describe ...` should be informative. The most common cause of `Waiting` pods is a failure to pull the image. There are three things to check: -* Make sure that you have the name of the image correct +* Make sure that you have the name of the image correct. * Have you pushed the image to the repository? * Run a manual `docker pull ` on your machine to see if the image can be pulled. From ee090c8621f089e164d8b664603ccc2e571cee26 Mon Sep 17 00:00:00 2001 From: Anthony Date: Tue, 15 Aug 2017 20:41:21 +0800 Subject: [PATCH 061/129] Update debug-application-introspection.md add "." to sentence. --- .../debug-application-introspection.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/debug-application-cluster/debug-application-introspection.md b/docs/tasks/debug-application-cluster/debug-application-introspection.md index 8607b267b7..bacbd66163 100644 --- a/docs/tasks/debug-application-cluster/debug-application-introspection.md +++ b/docs/tasks/debug-application-cluster/debug-application-introspection.md @@ -102,7 +102,7 @@ Events: 53s 53s 1 {kubelet kubernetes-node-wul5} spec.containers{nginx} Normal Started Started container with docker id 90315cc9f513 ``` -Here you can see configuration information about the container(s) and Pod (labels, resource requirements, etc.), as well as status information about the container(s) and Pod (state, readiness, restart count, events, etc.) +Here you can see configuration information about the container(s) and Pod (labels, resource requirements, etc.), as well as status information about the container(s) and Pod (state, readiness, restart count, events, etc.). The container state is one of Waiting, Running, or Terminated. Depending on the state, additional information will be provided -- here you can see that for a container in Running state, the system tells you when the container started. From a22c45265d1f5e0ef5a5dd05ac42a7c32456b354 Mon Sep 17 00:00:00 2001 From: Stewart-YU Date: Fri, 18 Aug 2017 06:56:47 +0800 Subject: [PATCH 062/129] Update deployment.md (#4946) The first letter needs to be capitalized. --- docs/concepts/workloads/controllers/deployment.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/concepts/workloads/controllers/deployment.md b/docs/concepts/workloads/controllers/deployment.md index 2be6f86a01..d80149c01b 100644 --- a/docs/concepts/workloads/controllers/deployment.md +++ b/docs/concepts/workloads/controllers/deployment.md @@ -441,7 +441,7 @@ Events: You can scale a Deployment by using the following command: ```shell -$ kubectl scale deployment nginx-deployment --replicas 10 +$ kubectl scale deployment nginx-deployment --replicas=10 deployment "nginx-deployment" scaled ``` From 83569cd7ebdd4ebf332ef980e4c3ea1d1a1f658d Mon Sep 17 00:00:00 2001 From: Lion-Wei Date: Tue, 15 Aug 2017 22:08:57 +0800 Subject: [PATCH 063/129] Update kubernetes-api.md --- docs/concepts/overview/kubernetes-api.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/concepts/overview/kubernetes-api.md b/docs/concepts/overview/kubernetes-api.md index a3218d8db7..3f1c372883 100644 --- a/docs/concepts/overview/kubernetes-api.md +++ b/docs/concepts/overview/kubernetes-api.md @@ -28,7 +28,7 @@ Complete API details are documented using [Swagger v1.2](http://swagger.io/) and Starting with kubernetes 1.4, OpenAPI spec is also available at [`/swagger.json`](https://git.k8s.io/kubernetes/api/openapi-spec/swagger.json). While we are transitioning from Swagger v1.2 to OpenAPI (aka Swagger v2.0), some of the tools such as kubectl and swagger-ui are still using v1.2 spec. OpenAPI spec is in Beta as of Kubernetes 1.5. -Kubernetes implements an alternative Protobuf based serialization format for the API that is primarily intended for intra-cluster communication, documented in the [design proposal](https://github.com/kubernetes/kubernetes/blob/{{ page.githubbranch }}/docs/proposals/protobuf.md) and the IDL files for each schema are located in the Go packages that define the API objects. +Kubernetes implements an alternative Protobuf based serialization format for the API that is primarily intended for intra-cluster communication, documented in the [design proposal](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/protobuf.md) and the IDL files for each schema are located in the Go packages that define the API objects. ## API versioning From eb6ad678051e813f9a2c5b248409857af4cb85be Mon Sep 17 00:00:00 2001 From: XsWack Date: Fri, 18 Aug 2017 07:07:20 +0800 Subject: [PATCH 064/129] Update quota-api-object.md (#4944) fix bad url --- docs/tasks/administer-cluster/quota-api-object.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/administer-cluster/quota-api-object.md b/docs/tasks/administer-cluster/quota-api-object.md index 0518f97f1d..c40566f050 100644 --- a/docs/tasks/administer-cluster/quota-api-object.md +++ b/docs/tasks/administer-cluster/quota-api-object.md @@ -147,7 +147,7 @@ kubectl delete namespace quota-object-example * [Configure Default Memory Requests and Limits for a Namespace](/docs/tasks/administer-cluster/memory-default-namespace/) -* [Configure Default CPU Requests and Limits for a Namespace](/docs/tasks/administer-cluster/default-cpu-request-limit/) +* [Configure Default CPU Requests and Limits for a Namespace](/docs/tasks/administer-cluster/cpu-default-namespace/) * [Configure Minimum and Maximum Memory Constraints for a Namespace](/docs/tasks/administer-cluster/memory-constraint-namespace/) From 51cfd800d9d620c3c37169b4a5c56ab5774050bc Mon Sep 17 00:00:00 2001 From: XsWack Date: Tue, 15 Aug 2017 20:16:34 +0800 Subject: [PATCH 065/129] Update quality-service-pod.md fix bad url --- docs/tasks/configure-pod-container/quality-service-pod.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/configure-pod-container/quality-service-pod.md b/docs/tasks/configure-pod-container/quality-service-pod.md index 60e1d3fb42..685d528ff7 100644 --- a/docs/tasks/configure-pod-container/quality-service-pod.md +++ b/docs/tasks/configure-pod-container/quality-service-pod.md @@ -246,7 +246,7 @@ kubectl delete namespace qos-example * [Configure Default Memory Requests and Limits for a Namespace](/docs/tasks/administer-cluster/memory-default-namespace/) -* [Configure Default CPU Requests and Limits for a Namespace](/docs/tasks/administer-cluster/default-cpu-request-limit/) +* [Configure Default CPU Requests and Limits for a Namespace](/docs/tasks/administer-cluster/cpu-default-namespace/) * [Configure Minimum and Maximum Memory Constraints for a Namespace](/docs/tasks/administer-cluster/memory-constraint-namespace/) From 092ab3d50987d94eb622d89f8f4168251d7d6a22 Mon Sep 17 00:00:00 2001 From: linweibin Date: Tue, 15 Aug 2017 18:53:22 +0800 Subject: [PATCH 066/129] Fix some typos and syntax errors Fix some typos and syntax errors involving cluster.md, ingress.md and replicaset.md --- docs/tasks/administer-federation/cluster.md | 2 +- docs/tasks/administer-federation/ingress.md | 10 +++++----- docs/tasks/administer-federation/replicaset.md | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/tasks/administer-federation/cluster.md b/docs/tasks/administer-federation/cluster.md index 7d5a718b12..09d4076ea2 100644 --- a/docs/tasks/administer-federation/cluster.md +++ b/docs/tasks/administer-federation/cluster.md @@ -102,7 +102,7 @@ Currently, only integers are supported with `Gt` or `Lt`. ## Clusters API reference -The full clusters API reference is currently in `federation/v1beta1` and more details can be found in details in the +The full clusters API reference is currently in `federation/v1beta1` and more details can be found in the [Federation API reference page](/docs/reference/federation/). {% endcapture %} diff --git a/docs/tasks/administer-federation/ingress.md b/docs/tasks/administer-federation/ingress.md index 281d2c536f..3de0493810 100644 --- a/docs/tasks/administer-federation/ingress.md +++ b/docs/tasks/administer-federation/ingress.md @@ -78,7 +78,7 @@ You can create a federated ingress in any of the usual ways, for example, using ``` shell kubectl --context=federation-cluster create -f myingress.yaml ``` -For example ingress YAML configurations, see the [Ingress User Guide](/docs/concepts/services-networking/ingress/) +For example ingress YAML configurations, see the [Ingress User Guide](/docs/concepts/services-networking/ingress/). The '--context=federation-cluster' flag tells kubectl to submit the request to the Federation API endpoint, with the appropriate credentials. If you have not yet configured such a context, see the @@ -183,7 +183,7 @@ services need to be identical. If you're using a federated service this is easy to do. Simply pick a node port that is not already being used in any of your clusters, and add that to the spec of your federated service. If you do not specify a node port for your -federated service, each cluster will choose it's own node port for +federated service, each cluster will choose its own node port for its cluster-local shard of the service, and these will probably end up being different, which is not what you want. @@ -253,7 +253,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`) +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 -o name`) @@ -276,7 +276,7 @@ Check that: 2. The load balancer controllers in each of your clusters are of the correct type ("GLBC") and have been correctly reconfigured by the federation control plane to share a global GCE load balancer (this - should happen automatically). If they of the correct type, and + should happen automatically). If they are of the correct type, and have been correctly reconfigured, the UID data item in the GLBC configmap in each cluster will be identical across all clusters. See @@ -291,7 +291,7 @@ Check that: your GLBC will interfere with the behavior of your federated ingresses created after the reconfiguration (see [the GLBC docs](https://github.com/kubernetes/ingress/blob/7dcb4ae17d5def23d3e9c878f3146ac6df61b09d/controllers/gce/README.md) - for further information. To remedy this, + for further information). To remedy this, delete any ingresses created before the cluster joined the federation (and had its GLBC reconfigured), and recreate them if necessary. diff --git a/docs/tasks/administer-federation/replicaset.md b/docs/tasks/administer-federation/replicaset.md index ea20022148..896442b35b 100644 --- a/docs/tasks/administer-federation/replicaset.md +++ b/docs/tasks/administer-federation/replicaset.md @@ -56,7 +56,7 @@ federation ReplicaSet. ### Spreading Replicas in Underlying Clusters -By default, replicas are spread equally in all the underlying clusters. For ex: +By default, replicas are spread equally in all the underlying clusters. For example: if you have 3 registered clusters and you create a federated ReplicaSet with `spec.replicas = 9`, then each ReplicaSet in the 3 clusters will have `spec.replicas=3`. From 34b927c417036fadd506e9e88f17b584adb2d277 Mon Sep 17 00:00:00 2001 From: Anthony Date: Fri, 18 Aug 2017 07:10:58 +0800 Subject: [PATCH 067/129] Update web-ui-dashboard.md (#4900) modify the first letter of sentence to be in uppercase --- docs/tasks/access-application-cluster/web-ui-dashboard.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/access-application-cluster/web-ui-dashboard.md b/docs/tasks/access-application-cluster/web-ui-dashboard.md index aa3a9ddf1d..d650f69545 100644 --- a/docs/tasks/access-application-cluster/web-ui-dashboard.md +++ b/docs/tasks/access-application-cluster/web-ui-dashboard.md @@ -34,7 +34,7 @@ You can access Dashboard using the kubectl command-line tool by running the foll $ kubectl proxy ``` -kubectl will handle authentication with apiserver and make Dashboard available at http://localhost:8001/ui +Kubectl will handle authentication with apiserver and make Dashboard available at http://localhost:8001/ui. The UI can _only_ be accessed from the machine where the command is executed. See `kubectl proxy --help` for more options. From 8900fba06ca503f3af6f577892ece0e3709c242e Mon Sep 17 00:00:00 2001 From: Dhilip Date: Fri, 18 Aug 2017 04:41:56 +0530 Subject: [PATCH 068/129] [minor] grammar (#4781) [minor] grammar --- docs/concepts/cluster-administration/federation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/concepts/cluster-administration/federation.md b/docs/concepts/cluster-administration/federation.md index 8d6ddaf61d..97569451d6 100644 --- a/docs/concepts/cluster-administration/federation.md +++ b/docs/concepts/cluster-administration/federation.md @@ -133,7 +133,7 @@ It is okay to have multiple clusters per availability zone, though on balance we 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). + - reduced operational overhead (though the advantage is diminished as ops tooling and processes mature). - 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 37f92b2843167f87622d8283d203bbac8bf77bc9 Mon Sep 17 00:00:00 2001 From: Deirdre Storck Date: Thu, 17 Aug 2017 16:12:19 -0700 Subject: [PATCH 069/129] spelling fix (#4780) From 5013a3ce9403ba95887c07cc10c620169e59a919 Mon Sep 17 00:00:00 2001 From: Dhilip Date: Fri, 18 Aug 2017 04:43:36 +0530 Subject: [PATCH 070/129] [minor] grammar (#4779) * [minor] grammar [minor] grammar * [minor] grammar [minor] grammar --- .../cluster-administration/cluster-administration-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/concepts/cluster-administration/cluster-administration-overview.md b/docs/concepts/cluster-administration/cluster-administration-overview.md index 968aeb52f5..9f6a9018c0 100644 --- a/docs/concepts/cluster-administration/cluster-administration-overview.md +++ b/docs/concepts/cluster-administration/cluster-administration-overview.md @@ -28,7 +28,7 @@ Before choosing a guide, here are some considerations: offer a greater variety of choices. - Familiarize yourself with the [components](/docs/admin/cluster-components) needed to run a cluster. -Note: Not all distros are actively maintained. Choose distros which have been tested a recent version of Kubernetes. +Note: Not all distros are actively maintained. Choose distros which have been tested with a recent version of Kubernetes. If you are using a guide involving Salt, see [Configuring Kubernetes with Salt](/docs/admin/salt). From d761d6bc9627f32d43ddc5a6b252ef4b25449576 Mon Sep 17 00:00:00 2001 From: Dhilip Date: Fri, 18 Aug 2017 04:45:19 +0530 Subject: [PATCH 071/129] Small grammar change (#4777) * Small grammar change small grammar change * bulletize apiserver -> kubelet bulletize apiserver -> kubelet for better clarity. --- .../architecture/master-node-communication.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/concepts/architecture/master-node-communication.md b/docs/concepts/architecture/master-node-communication.md index 1d78c5f920..23348771a3 100644 --- a/docs/concepts/architecture/master-node-communication.md +++ b/docs/concepts/architecture/master-node-communication.md @@ -64,12 +64,13 @@ or service through the apiserver's proxy functionality. ### apiserver -> kubelet -The connections from the apiserver to the kubelet are used for fetching logs -for pods, attaching (through kubectl) to running pods, and using the kubelet's -port-forwarding functionality. These connections terminate at the kubelet's -HTTPS endpoint. +The connections from the apiserver to the kubelet are used for: + * fetching logs for pods. + * attaching (through kubectl) to running pods. + * the kubelet's port-forwarding functionality. -By default, the apiserver does not verify the kubelet's serving certificate, +These connections terminate at the kubelet's HTTPS endpoint. By default, +the apiserver does not verify the kubelet's serving certificate, which makes the connection subject to man-in-the-middle attacks, and **unsafe** to run over untrusted and/or public networks. From c5ad73c2d8d757d70d97bf82d631454293506c69 Mon Sep 17 00:00:00 2001 From: Cody Clark Date: Thu, 17 Aug 2017 16:17:32 -0700 Subject: [PATCH 072/129] Adding Callouts to Tasks > Inject Data Into Applications (#5023) * Adding callout * Adding callout * Adding callouts * Update distribute-credentials-secure.md --- .../define-command-argument-container.md | 3 ++- .../distribute-credentials-secure.md | 1 + .../downward-api-volume-expose-pod-information.md | 6 ++++-- .../environment-variable-expose-pod-information.md | 3 ++- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/docs/tasks/inject-data-application/define-command-argument-container.md b/docs/tasks/inject-data-application/define-command-argument-container.md index 9ea391a804..808b7b521f 100644 --- a/docs/tasks/inject-data-application/define-command-argument-container.md +++ b/docs/tasks/inject-data-application/define-command-argument-container.md @@ -77,8 +77,9 @@ the techniques available for defining environment variables, including and [Secrets](/docs/concepts/configuration/secret/). -NOTE: The environment variable appears in parentheses, `"$(VAR)"`. This is +**Note:** The environment variable appears in parentheses, `"$(VAR)"`. This is required for the variable to be expanded in the `command` or `args` field. +{: .note} ## Run a command in a shell diff --git a/docs/tasks/inject-data-application/distribute-credentials-secure.md b/docs/tasks/inject-data-application/distribute-credentials-secure.md index 946fe40761..c85ea16a29 100644 --- a/docs/tasks/inject-data-application/distribute-credentials-secure.md +++ b/docs/tasks/inject-data-application/distribute-credentials-secure.md @@ -41,6 +41,7 @@ username and password: **Note:** If you want to skip the Base64 encoding step, you can create a Secret by using the `kubectl create secret` command: + {: .note} kubectl create secret generic test-secret --from-literal=username='my-app' --from-literal=password='39528$vdg7Jb' diff --git a/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information.md b/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information.md index 606fb99c7d..a497f6f2bd 100644 --- a/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information.md +++ b/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information.md @@ -46,8 +46,9 @@ The first element specifies that the value of the Pod's The second element specifies that the value of the Pod's `annotations` field should be stored in a file named `annotations`. -**Note**: The fields in this example are Pod fields. They are not +**Note:** The fields in this example are Pod fields. They are not fields of the Container in the Pod. +{: .note} Create the Pod: @@ -204,8 +205,9 @@ DownwardAPIVolumeFiles. * The Pod's labels * The Pod's annotations -**Note**: If CPU and memory limits are not specified for a Container, the +**Note:** If CPU and memory limits are not specified for a Container, the Downward API defaults to the node allocatable value for CPU and memory. +{: .note} ## Project keys to specific paths and file permissions diff --git a/docs/tasks/inject-data-application/environment-variable-expose-pod-information.md b/docs/tasks/inject-data-application/environment-variable-expose-pod-information.md index 4934aebb17..391b58ee54 100644 --- a/docs/tasks/inject-data-application/environment-variable-expose-pod-information.md +++ b/docs/tasks/inject-data-application/environment-variable-expose-pod-information.md @@ -51,8 +51,9 @@ The first element in the array specifies that the `MY_NODE_NAME` environment variable gets its value from the Pod's `spec.nodeName` field. Similarly, the other environment variables get their names from Pod fields. -**Note**: The fields in this example are Pod fields. They are not fields of the +**Note:** The fields in this example are Pod fields. They are not fields of the Container in the Pod. +{: .note} Create the Pod: From 7c4e01887b0b64008d82298ff70d3b1b56e06aff Mon Sep 17 00:00:00 2001 From: Cody Clark Date: Thu, 17 Aug 2017 16:19:24 -0700 Subject: [PATCH 073/129] Callouts and other small formatting (#5022) * Removing Extra Spaces Issue 4602 | Configure Pods and Containers * Update security-context.md Adding callouts * Update security-context.md * Adding callout and fixing code block * Removing extra space * Adding callout * Addling callouts * Update assign-cpu-resource.md * Adding callout * Update configure-persistent-volume-storage.md * Update configure-service-account.md * Update quality-service-pod.md * Update security-context.md --- .../configure-pod-container/assign-cpu-resource.md | 3 ++- docs/tasks/configure-pod-container/configmap.md | 3 ++- .../configure-persistent-volume-storage.md | 1 + .../configure-pod-configmap.md | 8 ++++++-- .../configure-pod-initialization.md | 2 +- .../configure-projected-volume-storage.md | 4 ++-- .../configure-service-account.md | 9 ++++++--- .../configure-pod-container/quality-service-pod.md | 3 ++- .../configure-pod-container/security-context.md | 14 ++++++-------- 9 files changed, 28 insertions(+), 19 deletions(-) diff --git a/docs/tasks/configure-pod-container/assign-cpu-resource.md b/docs/tasks/configure-pod-container/assign-cpu-resource.md index 6988d5d529..3273567528 100644 --- a/docs/tasks/configure-pod-container/assign-cpu-resource.md +++ b/docs/tasks/configure-pod-container/assign-cpu-resource.md @@ -119,10 +119,11 @@ Recall that by setting `-cpu "2"`, you configured the Container to attempt to us But the Container is only being allowed to use about 1 cpu. The Container's CPU use is being throttled, because the Container is attempting to use more CPU resources than its limit. -Note: There's another possible explanation for the CPU throttling. The Node might not have +**Note:** There's another possible explanation for the CPU throttling. The Node might not have enough CPU resources available. Recall that the prerequisites for this exercise require that each of your Nodes has at least 1 cpu. If your Container is running on a Node that has only 1 cpu, the Container cannot use more than 1 cpu regardless of the CPU limit specified for the Container. +{: .note} ## CPU units diff --git a/docs/tasks/configure-pod-container/configmap.md b/docs/tasks/configure-pod-container/configmap.md index 508f32e2e3..352ea85c11 100644 --- a/docs/tasks/configure-pod-container/configmap.md +++ b/docs/tasks/configure-pod-container/configmap.md @@ -223,7 +223,8 @@ metadata: ConfigMaps allow you to decouple configuration artifacts from image content to keep containerized applications portable. The ConfigMap API resource stores configuration data as key-value pairs. The data can be consumed in pods or provide the configurations for system components such as controllers. ConfigMap is similar to [Secrets](/docs/concepts/configuration/secret/), but provides a means of working with strings that don't contain sensitive information. Users and system components alike can store configuration data in ConfigMap. -Note: ConfigMaps should reference properties files, not replace them. Think of the ConfigMap as representing something similar to the Linux `/etc` directory and its contents. For example, if you create a [Kubernetes Volume](/docs/concepts/storage/volumes/) from a ConfigMap, each data item in the ConfigMap is represented by an individual file in the volume. +**Note:** ConfigMaps should reference properties files, not replace them. Think of the ConfigMap as representing something similar to the Linux `/etc` directory and its contents. For example, if you create a [Kubernetes Volume](/docs/concepts/storage/volumes/) from a ConfigMap, each data item in the ConfigMap is represented by an individual file in the volume. +{: .note} The ConfigMap's `data` field contains the configuration data. As shown in the example below, this can be simple -- like individual properties defined using `--from-literal` -- or complex -- like configuration files or JSON blobs defined using `--from-file`. diff --git a/docs/tasks/configure-pod-container/configure-persistent-volume-storage.md b/docs/tasks/configure-pod-container/configure-persistent-volume-storage.md index f4170b7a41..a396c65c90 100644 --- a/docs/tasks/configure-pod-container/configure-persistent-volume-storage.md +++ b/docs/tasks/configure-pod-container/configure-persistent-volume-storage.md @@ -188,6 +188,7 @@ each Container. **Note**: When a Pod consumes a PersistentVolume, the GIDs associated with the PersistentVolume are not present on the Pod resource itself. +{: .note} {% endcapture %} diff --git a/docs/tasks/configure-pod-container/configure-pod-configmap.md b/docs/tasks/configure-pod-container/configure-pod-configmap.md index b8d711d8cb..b0c26d8231 100644 --- a/docs/tasks/configure-pod-container/configure-pod-configmap.md +++ b/docs/tasks/configure-pod-container/configure-pod-configmap.md @@ -108,7 +108,8 @@ This page provides a series of usage examples demonstrating how to configure Pod ## Configure all key-value pairs in a ConfigMap as Pod environment variables -Note: This functionality is available to users running Kubernetes v1.6 and later. + **Note:** This functionality is available to users running Kubernetes v1.6 and later. + {: .note} 1. Create a ConfigMap containing multiple key-value pairs. @@ -299,7 +300,10 @@ When a ConfigMap already being consumed in a volume is updated, projected keys a 1. Kubelet doesn't support the use of ConfigMaps for pods not found on the API server. This includes every pod created using kubectl or indirectly via a replication controller. - It does not include pods created via the Kubelet's `--manifest-url` flag, `--config` flag, or the Kubelet REST API. (Note: these are not commonly-used ways to create pods.) + It does not include pods created via the Kubelet's `--manifest-url` flag, `--config` flag, or the Kubelet REST API. + + **Note:** These are not commonly-used ways to create pods. + {: .note} {% endcapture %} diff --git a/docs/tasks/configure-pod-container/configure-pod-initialization.md b/docs/tasks/configure-pod-container/configure-pod-initialization.md index f159344b24..be18f82e4d 100644 --- a/docs/tasks/configure-pod-container/configure-pod-initialization.md +++ b/docs/tasks/configure-pod-container/configure-pod-initialization.md @@ -34,7 +34,7 @@ shared Volume at `/work-dir`, and the application container mounts the shared Volume at `/usr/share/nginx/html`. The init container runs the following command and then terminates: - wget -O /work-dir/index.html http://kubernetes.io + wget -O /work-dir/index.html http://kubernetes.io Notice that the init container writes the `index.html` file in the root directory of the nginx server. diff --git a/docs/tasks/configure-pod-container/configure-projected-volume-storage.md b/docs/tasks/configure-pod-container/configure-projected-volume-storage.md index 5cb3153121..77ad75a55a 100644 --- a/docs/tasks/configure-pod-container/configure-projected-volume-storage.md +++ b/docs/tasks/configure-pod-container/configure-projected-volume-storage.md @@ -43,8 +43,8 @@ the Pod: The output looks like this: - NAME READY STATUS RESTARTS AGE - test-projected-volume 1/1 Running 0 14s + NAME READY STATUS RESTARTS AGE + test-projected-volume 1/1 Running 0 14s 1. In another terminal, get a shell to the running Container: diff --git a/docs/tasks/configure-pod-container/configure-service-account.md b/docs/tasks/configure-pod-container/configure-service-account.md index 51c1460540..0d76e8fa11 100644 --- a/docs/tasks/configure-pod-container/configure-service-account.md +++ b/docs/tasks/configure-pod-container/configure-service-account.md @@ -11,10 +11,11 @@ A service account provides an identity for processes that run in a Pod. *This is a user introduction to Service Accounts. See also the [Cluster Admin Guide to Service Accounts](/docs/admin/service-accounts-admin).* -*Note: This document describes how service accounts behave in a cluster set up +**Note:** This document describes how service accounts behave in a cluster set up as recommended by the Kubernetes project. Your cluster administrator may have customized the behavior in your cluster, in which case this documentation may -not apply.* +not apply. +{: .note} When you (a human) access the cluster (e.g. using `kubectl`), you are authenticated by the apiserver as a particular User Account (currently this is @@ -159,7 +160,8 @@ token: ... namespace: 7 bytes ``` -> Note that the content of `token` is elided here. +**Note:** The content of `token` is elided here. +{: .note} ## Add ImagePullSecrets to a service account @@ -180,6 +182,7 @@ kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "myregis ``` Interactive version requiring manual edit: + ```shell $ kubectl get serviceaccounts default -o yaml > ./sa.yaml $ cat sa.yaml diff --git a/docs/tasks/configure-pod-container/quality-service-pod.md b/docs/tasks/configure-pod-container/quality-service-pod.md index 685d528ff7..e549effb67 100644 --- a/docs/tasks/configure-pod-container/quality-service-pod.md +++ b/docs/tasks/configure-pod-container/quality-service-pod.md @@ -81,10 +81,11 @@ spec: qosClass: Guaranteed ``` -**Note**: If a Container specifies its own memory limit, but does not specify a memory request, Kubernetes +**Note:** If a Container specifies its own memory limit, but does not specify a memory request, Kubernetes automatically assigns a memory request that matches the limit. Similarly, if a Container specifies its own cpu limit, but does not specify a cpu request, Kubernetes automatically assigns a cpu request that matches the limit. +{: .note} Delete your Pod: diff --git a/docs/tasks/configure-pod-container/security-context.md b/docs/tasks/configure-pod-container/security-context.md index 51cd879c58..586a570595 100644 --- a/docs/tasks/configure-pod-container/security-context.md +++ b/docs/tasks/configure-pod-container/security-context.md @@ -294,9 +294,8 @@ bits 12 and 25 are set. Bit 12 is `CAP_NET_ADMIN`, and bit 25 is `CAP_SYS_TIME`. See [capability.h](https://github.com/torvalds/linux/blob/master/include/uapi/linux/capability.h) for definitions of the capability constants. -**Note**: Linux capability constants have the form `CAP_XXX`. But when you list capabilities -in your Container manifest, you must omit the `CAP_` portion of the constant. For example, -to add `CAP_SYS_TIME`, include `SYS_TIME` in your list of capabilities. +**Note:** Linux capability constants have the form `CAP_XXX`. But when you list capabilities in your Container manifest, you must omit the `CAP_` portion of the constant. For example, to add `CAP_SYS_TIME`, include `SYS_TIME` in your list of capabilities. +{: .note} ## Assign SELinux labels to a Container @@ -313,8 +312,8 @@ securityContext: level: "s0:c123,c456" ``` -**Note**: To assign SELinux labels, the SELinux security module must be loaded -on the host operating system. +**Note:** To assign SELinux labels, the SELinux security module must be loaded on the host operating system. +{: .note} ## Discussion @@ -333,9 +332,8 @@ need to set the `level` section. This sets the [Multi-Category Security (MCS)](https://selinuxproject.org/page/NB_MLS) label given to all Containers in the Pod as well as the Volumes. -**Warning**: After you specify an MCS label for a Pod, all Pods with the same -label will able to access the Volume. So if you need inter-Pod -protection, you must ensure each Pod is assigned a unique MCS label. +**Warning:** After you specify an MCS label for a Pod, all Pods with the same label will able to access the Volume. So if you need inter-Pod protection, you must ensure each Pod is assigned a unique MCS label. +{: .warning} {% endcapture %} From c029a9ddb4a1c371bbdd4bd5ca4dc03c66fb090d Mon Sep 17 00:00:00 2001 From: IrinaAndronachi Date: Fri, 18 Aug 2017 02:24:33 +0300 Subject: [PATCH 074/129] The output of removal of taint should be untainted (#4720) --- docs/setup/independent/create-cluster-kubeadm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/setup/independent/create-cluster-kubeadm.md b/docs/setup/independent/create-cluster-kubeadm.md index 44f04c38bc..a699d24f73 100644 --- a/docs/setup/independent/create-cluster-kubeadm.md +++ b/docs/setup/independent/create-cluster-kubeadm.md @@ -297,7 +297,7 @@ kubectl taint nodes --all node-role.kubernetes.io/master- With output looking something like: ``` -node "test-01" tainted +node "test-01" untainted taint key="dedicated" and effect="" not found. taint key="dedicated" and effect="" not found. ``` From 97e07f9d3e703a66f6ceec62644f7035a48c2f34 Mon Sep 17 00:00:00 2001 From: Cody Clark Date: Thu, 17 Aug 2017 16:25:11 -0700 Subject: [PATCH 075/129] Removing extra spaces per Issue #4602 (#5021) --- docs/tasks/tools/install-kubectl.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/tasks/tools/install-kubectl.md b/docs/tasks/tools/install-kubectl.md index 81987f629e..e7f80b235d 100644 --- a/docs/tasks/tools/install-kubectl.md +++ b/docs/tasks/tools/install-kubectl.md @@ -44,13 +44,13 @@ Here are a few methods to install kubectl. {% capture linux %} 1. Download the latest release with the command: - curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl + curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl To download a specific version, replace the `$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)` portion of the command with the specific version. For example, to download version {{page.fullversion}} on Linux, type: - curl -LO https://storage.googleapis.com/kubernetes-release/release/{{page.fullversion}}/bin/linux/amd64/kubectl + curl -LO https://storage.googleapis.com/kubernetes-release/release/{{page.fullversion}}/bin/linux/amd64/kubectl 2. Make the kubectl binary executable. @@ -70,7 +70,7 @@ Here are a few methods to install kubectl. Or if you have `curl` installed, use this command: - curl -LO https://storage.googleapis.com/kubernetes-release/release/{{page.fullversion}}/bin/windows/amd64/kubectl.exe + curl -LO https://storage.googleapis.com/kubernetes-release/release/{{page.fullversion}}/bin/windows/amd64/kubectl.exe To find out the latest stable version (for example, for scripting), take a look at https://storage.googleapis.com/kubernetes-release/release/stable.txt @@ -137,7 +137,7 @@ By default, kubectl configuration is located at `~/.kube/config`. Check that kubectl is properly configured by getting the cluster state: ```shell -$ kubectl cluster-info +kubectl cluster-info ``` If you see a URL response, kubectl is correctly configured to access your cluster. From 1400af048ba1461843f84502cfa4a216c7e541ff Mon Sep 17 00:00:00 2001 From: Anthony Date: Wed, 16 Aug 2017 21:09:07 +0800 Subject: [PATCH 076/129] Update declare-network-policy.md modify the double "using" of sentence --- docs/tasks/administer-cluster/declare-network-policy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/administer-cluster/declare-network-policy.md b/docs/tasks/administer-cluster/declare-network-policy.md index 638993a19e..c71fa5db40 100644 --- a/docs/tasks/administer-cluster/declare-network-policy.md +++ b/docs/tasks/administer-cluster/declare-network-policy.md @@ -5,7 +5,7 @@ approvers: title: Declare Network Policy --- {% capture overview %} -This document helps you get started using using the Kubernetes [NetworkPolicy API](/docs/concepts/services-networking/network-policies/) to declare network policies that govern how pods communicate with each other. +This document helps you get started using the Kubernetes [NetworkPolicy API](/docs/concepts/services-networking/network-policies/) to declare network policies that govern how pods communicate with each other. {% endcapture %} {% capture prerequisites %} From 4e7764a890f442685f0a462e8343cb6a157c10c8 Mon Sep 17 00:00:00 2001 From: Lion-Wei Date: Wed, 16 Aug 2017 09:18:48 +0800 Subject: [PATCH 077/129] modify link of 'Configure Default CPU Requests and Limits for a Namespace' --- docs/tasks/administer-cluster/cpu-constraint-namespace.md | 2 +- docs/tasks/administer-cluster/memory-constraint-namespace.md | 2 +- docs/tasks/administer-cluster/memory-default-namespace.md | 2 +- docs/tasks/administer-cluster/quota-memory-cpu-namespace.md | 2 +- docs/tasks/administer-cluster/quota-pod-namespace.md | 2 +- docs/tasks/configure-pod-container/assign-cpu-resource.md | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/tasks/administer-cluster/cpu-constraint-namespace.md b/docs/tasks/administer-cluster/cpu-constraint-namespace.md index 7fc4f68417..fa23322276 100644 --- a/docs/tasks/administer-cluster/cpu-constraint-namespace.md +++ b/docs/tasks/administer-cluster/cpu-constraint-namespace.md @@ -243,7 +243,7 @@ kubectl delete namespace constraints-cpu-example * [Configure Default Memory Requests and Limits for a Namespace](/docs/tasks/administer-cluster/memory-default-namespace/) -* [Configure Default CPU Requests and Limits for a Namespace](/docs/tasks/administer-cluster/default-cpu-request-limit/) +* [Configure Default CPU Requests and Limits for a Namespace](/docs/tasks/administer-cluster/cpu-default-namespace/) * [Configure Minimum and Maximum Memory Constraints for a Namespace](/docs/tasks/administer-cluster/memory-constraint-namespace/) diff --git a/docs/tasks/administer-cluster/memory-constraint-namespace.md b/docs/tasks/administer-cluster/memory-constraint-namespace.md index 139378fee6..e28d66911d 100644 --- a/docs/tasks/administer-cluster/memory-constraint-namespace.md +++ b/docs/tasks/administer-cluster/memory-constraint-namespace.md @@ -245,7 +245,7 @@ kubectl delete namespace constraints-mem-example * [Configure Default Memory Requests and Limits for a Namespace](/docs/tasks/administer-cluster/memory-default-namespace/) -* [Configure Default CPU Requests and Limits for a Namespace](/docs/tasks/administer-cluster/default-cpu-request-limit/) +* [Configure Default CPU Requests and Limits for a Namespace](/docs/tasks/administer-cluster/cpu-default-namespace/) * [Configure Minimum and Maximum CPU Constraints for a Namespace](/docs/tasks/administer-cluster/cpu-constraint-namespace/) diff --git a/docs/tasks/administer-cluster/memory-default-namespace.md b/docs/tasks/administer-cluster/memory-default-namespace.md index 5fb40e209b..951f015380 100644 --- a/docs/tasks/administer-cluster/memory-default-namespace.md +++ b/docs/tasks/administer-cluster/memory-default-namespace.md @@ -166,7 +166,7 @@ it can be allowed to run in a namespace that is restricted by a quota. ### For cluster administrators -* [Configure Default CPU Requests and Limits for a Namespace](/docs/tasks/administer-cluster/default-cpu-request-limit/) +* [Configure Default CPU Requests and Limits for a Namespace](/docs/tasks/administer-cluster/cpu-default-namespace/) * [Configure Minimum and Maximum Memory Constraints for a Namespace](/docs/tasks/administer-cluster/memory-constraint-namespace/) diff --git a/docs/tasks/administer-cluster/quota-memory-cpu-namespace.md b/docs/tasks/administer-cluster/quota-memory-cpu-namespace.md index afe659d3c7..75d71d4f07 100644 --- a/docs/tasks/administer-cluster/quota-memory-cpu-namespace.md +++ b/docs/tasks/administer-cluster/quota-memory-cpu-namespace.md @@ -152,7 +152,7 @@ kubectl delete namespace quota-mem-cpu-example * [Configure Default Memory Requests and Limits for a Namespace](/docs/tasks/administer-cluster/memory-default-namespace/) -* [Configure Default CPU Requests and Limits for a Namespace](/docs/tasks/administer-cluster/default-cpu-request-limit/) +* [Configure Default CPU Requests and Limits for a Namespace](/docs/tasks/administer-cluster/cpu-default-namespace/) * [Configure Minimum and Maximum Memory Constraints for a Namespace](/docs/tasks/administer-cluster/memory-constraint-namespace/) diff --git a/docs/tasks/administer-cluster/quota-pod-namespace.md b/docs/tasks/administer-cluster/quota-pod-namespace.md index 119c8f0516..dc11c232b9 100644 --- a/docs/tasks/administer-cluster/quota-pod-namespace.md +++ b/docs/tasks/administer-cluster/quota-pod-namespace.md @@ -113,7 +113,7 @@ kubectl delete namespace quota-pod-example * [Configure Default Memory Requests and Limits for a Namespace](/docs/tasks/administer-cluster/memory-default-namespace/) -* [Configure Default CPU Requests and Limits for a Namespace](/docs/tasks/administer-cluster/default-cpu-request-limit/) +* [Configure Default CPU Requests and Limits for a Namespace](/docs/tasks/administer-cluster/cpu-default-namespace/) * [Configure Minimum and Maximum Memory Constraints for a Namespace](/docs/tasks/administer-cluster/memory-constraint-namespace/) diff --git a/docs/tasks/configure-pod-container/assign-cpu-resource.md b/docs/tasks/configure-pod-container/assign-cpu-resource.md index 3273567528..84706fd6f1 100644 --- a/docs/tasks/configure-pod-container/assign-cpu-resource.md +++ b/docs/tasks/configure-pod-container/assign-cpu-resource.md @@ -256,7 +256,7 @@ kubectl delete namespace cpu-example * [Configure Default Memory Requests and Limits for a Namespace](/docs/tasks/administer-cluster/memory-default-namespace/) -* [Configure Default CPU Requests and Limits for a Namespace](/docs/tasks/administer-cluster/default-cpu-request-limit/) +* [Configure Default CPU Requests and Limits for a Namespace](/docs/tasks/administer-cluster/cpu-default-namespace/) * [Configure Minimum and Maximum Memory Constraints for a Namespace](/docs/tasks/administer-cluster/memory-constraint-namespace/) From 58fa6bf42c591d3b950b79f0d9c405bfd8b8d826 Mon Sep 17 00:00:00 2001 From: dengyi1996 Date: Fri, 18 Aug 2017 08:00:10 +0800 Subject: [PATCH 078/129] Update scheduling-gpus.md (#4850) * Update scheduling-gpus.md It sounds like that kubelet will not automatically load the nvidia uvm driver,I have recurrent it when my cluster reboot nvml driver and nvidia-uvm driver not loaded. To fix it simply,make the docker-plugin autostart. I think it's important to tell other developers to prevent this situation * Update scheduling-gpus.md --- docs/tasks/manage-gpus/scheduling-gpus.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/manage-gpus/scheduling-gpus.md b/docs/tasks/manage-gpus/scheduling-gpus.md index 7ee29102ed..20b5d9aec4 100644 --- a/docs/tasks/manage-gpus/scheduling-gpus.md +++ b/docs/tasks/manage-gpus/scheduling-gpus.md @@ -13,7 +13,7 @@ This page describes how users can consume GPUs and the current limitations. {% capture prerequisites %} -1. Kubernetes nodes have to be pre-installed with Nvidia drivers. Kubelet will not detect Nvidia GPUs otherwise. Try to re-install nvidia drivers if kubelet fails to expose Nvidia GPUs as part of Node Capacity. +1. Kubernetes nodes have to be pre-installed with Nvidia drivers. Kubelet will not detect Nvidia GPUs otherwise. Try to re-install nvidia drivers if kubelet fails to expose Nvidia GPUs as part of Node Capacity. After installing the driver, run `nvidia-docker-plugin` to confirm that all drivers have been loaded. 2. A special **alpha** feature gate `Accelerators` has to be set to true across the system: `--feature-gates="Accelerators=true"`. 3. Nodes must be using `docker engine` as the container runtime. From 63b7be887e398a78e3fbc6914b396585475cfed9 Mon Sep 17 00:00:00 2001 From: Weibin Lin Date: Fri, 18 Aug 2017 08:43:15 +0800 Subject: [PATCH 079/129] Update resource-usage-monitoring.md --- .../debug-application-cluster/resource-usage-monitoring.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/debug-application-cluster/resource-usage-monitoring.md b/docs/tasks/debug-application-cluster/resource-usage-monitoring.md index 0d9698e6ed..9ca48d9bd0 100644 --- a/docs/tasks/debug-application-cluster/resource-usage-monitoring.md +++ b/docs/tasks/debug-application-cluster/resource-usage-monitoring.md @@ -16,7 +16,7 @@ Let's look at some of the other components in more detail. ### cAdvisor -cAdvisor is an open source container resource usage and performance analysis agent. It is purpose-built for containers and supports Docker containers natively. In Kubernetes, cAdvisor is integrated into the Kubelet binary. cAdvisor auto-discovers all containers in the machine and collects CPU, memory, filesystem, and network usage statistics. cAdvisor also provides the overall machine usage by analyzing the 'root'? container on the machine. +cAdvisor is an open source container resource usage and performance analysis agent. It is purpose-built for containers and supports Docker containers natively. In Kubernetes, cAdvisor is integrated into the Kubelet binary. cAdvisor auto-discovers all containers in the machine and collects CPU, memory, filesystem, and network usage statistics. cAdvisor also provides the overall machine usage by analyzing the 'root' container on the machine. On most Kubernetes clusters, cAdvisor exposes a simple UI for on-machine containers on port 4194. Here is a snapshot of part of cAdvisor's UI that shows the overall machine usage: From 895ffc0ba9096ef2f59279c869c130b5ce83663d Mon Sep 17 00:00:00 2001 From: Weibin Lin Date: Fri, 18 Aug 2017 08:38:42 +0800 Subject: [PATCH 080/129] Update debug-application.md --- docs/tasks/debug-application-cluster/debug-application.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/tasks/debug-application-cluster/debug-application.md b/docs/tasks/debug-application-cluster/debug-application.md index 5a129be1d1..4a8004e850 100644 --- a/docs/tasks/debug-application-cluster/debug-application.md +++ b/docs/tasks/debug-application-cluster/debug-application.md @@ -7,14 +7,14 @@ title: Troubleshoot Applications This guide is to help users debug applications that are deployed into Kubernetes and not behaving correctly. This is *not* a guide for people who want to debug their cluster. For that you should check out -[this guide](/docs/admin/cluster-troubleshooting) +[this guide](/docs/admin/cluster-troubleshooting). * TOC {:toc} ## FAQ -Users are highly encouraged to check out our [FAQ](https://github.com/kubernetes/kubernetes/wiki/User-FAQ) +Users are highly encouraged to check out our [FAQ](https://github.com/kubernetes/kubernetes/wiki/User-FAQ). ## Diagnosing the problem @@ -184,8 +184,8 @@ in the endpoints list, it's likely that the proxy can't contact your pods. There are three things to check: - * Are your pods working correctly? Look for restart count, and [debug pods](#debugging-pods) - * Can you connect to your pods directly? Get the IP address for the Pod, and try to connect directly to that IP + * Are your pods working correctly? Look for restart count, and [debug pods](#debugging-pods). + * Can you connect to your pods directly? Get the IP address for the Pod, and try to connect directly to that IP. * Is your application serving on the port that you configured? Kubernetes doesn't do port remapping, so if your application serves on 8080, the `containerPort` field needs to be 8080. #### More information From 58a2077b7a20d84c1526dd230d3b5a41883e9c03 Mon Sep 17 00:00:00 2001 From: XsWack Date: Fri, 18 Aug 2017 08:47:09 +0800 Subject: [PATCH 081/129] Update expose-external-ip-address.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 --- .../stateless-application/expose-external-ip-address.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorials/stateless-application/expose-external-ip-address.md b/docs/tutorials/stateless-application/expose-external-ip-address.md index ea7e1e7a36..39b7bfaa0c 100644 --- a/docs/tutorials/stateless-application/expose-external-ip-address.md +++ b/docs/tutorials/stateless-application/expose-external-ip-address.md @@ -117,7 +117,7 @@ external IP address. 1. Use the external IP address to access the Hello World application: - curl http://: + curl http://: where `` is the external IP address of your Service, and `` is the value of `Port` in your Service description. From 75c8b3c0f07f97bd0373602213ef803a53434224 Mon Sep 17 00:00:00 2001 From: Anthony Date: Fri, 18 Aug 2017 11:05:58 +0800 Subject: [PATCH 082/129] Update dns-custom-nameservers.md add "." to the sentence --- docs/tasks/administer-cluster/dns-custom-nameservers.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tasks/administer-cluster/dns-custom-nameservers.md b/docs/tasks/administer-cluster/dns-custom-nameservers.md index 1e760be394..b2917f96bb 100644 --- a/docs/tasks/administer-cluster/dns-custom-nameservers.md +++ b/docs/tasks/administer-cluster/dns-custom-nameservers.md @@ -93,7 +93,7 @@ routed according to the following flow: ## ConfigMap options -Options for the kube-dns `kube-system:kube-dns` ConfigMap +Options for the kube-dns `kube-system:kube-dns` ConfigMap: | Field | Format | Description | | ----- | ------ | ----------- | @@ -107,7 +107,7 @@ Options for the kube-dns `kube-system:kube-dns` ConfigMap In this example, the user has a Consul DNS service discovery system that they wish to integrate with kube-dns. The consul domain server is located at 10.150.0.1, and all consul names have the suffix “.consul.local”. To configure Kubernetes, the -cluster administrator simply creates a ConfigMap object as shown below. +cluster administrator simply creates a ConfigMap object as shown below. ```yaml apiVersion: v1 From 5a721e9ceb8acfe67b4bc0b58d21c52667afafef Mon Sep 17 00:00:00 2001 From: XsWack Date: Fri, 18 Aug 2017 14:29:16 +0800 Subject: [PATCH 083/129] Update configure-pdb.md There will be 404 status in the jump process and fix the url --- docs/tasks/run-application/configure-pdb.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tasks/run-application/configure-pdb.md b/docs/tasks/run-application/configure-pdb.md index fc42343274..9a0c3365aa 100644 --- a/docs/tasks/run-application/configure-pdb.md +++ b/docs/tasks/run-application/configure-pdb.md @@ -14,8 +14,8 @@ nodes. {% capture prerequisites %} * You are the owner of an application running on a Kubernetes cluster that requires high availability. -* You should know how to deploy [Replicated Stateless Applications](/docs/tasks/run-application/run-stateless-application-deployment.md) - and/or [Replicated Stateful Applications](/docs/tasks/run-application/run-replicated-stateful-application.md). +* You should know how to deploy [Replicated Stateless Applications](/docs/tasks/run-application/run-stateless-application-deployment/) + and/or [Replicated Stateful Applications](/docs/tasks/run-application/run-replicated-stateful-application/). * You should have read about [Pod Disruptions](/docs/concepts/workloads/pods/disruptions/). * You should confirm with your cluster owner or service provider that they respect Pod Disruption Budgets. From f02ff5ba7ed288d493506b62480d9393e948130b Mon Sep 17 00:00:00 2001 From: XsWack Date: Fri, 18 Aug 2017 14:38:27 +0800 Subject: [PATCH 084/129] Update configure-service-account.md Remove the extra blank lines and unified command line format --- docs/tasks/configure-pod-container/configure-service-account.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/tasks/configure-pod-container/configure-service-account.md b/docs/tasks/configure-pod-container/configure-service-account.md index 0d76e8fa11..55e115bd10 100644 --- a/docs/tasks/configure-pod-container/configure-service-account.md +++ b/docs/tasks/configure-pod-container/configure-service-account.md @@ -178,7 +178,6 @@ Next, modify the default service account for the namespace to use this secret as ```shell kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "myregistrykey"}]}' - ``` Interactive version requiring manual edit: From 08083aeb20eee6f2fbdcddd5f146877cd24a925f Mon Sep 17 00:00:00 2001 From: Stewart-YU Date: Fri, 18 Aug 2017 08:08:21 +0800 Subject: [PATCH 085/129] Update kubectl-overview.md Fix the format of web page. --- docs/user-guide/kubectl-overview.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/user-guide/kubectl-overview.md b/docs/user-guide/kubectl-overview.md index 10fd5131f7..ba735d7fee 100644 --- a/docs/user-guide/kubectl-overview.md +++ b/docs/user-guide/kubectl-overview.md @@ -26,12 +26,16 @@ where `command`, `TYPE`, `NAME`, and `flags` are: * `NAME`: Specifies the name of the resource. Names are case-sensitive. If the name is omitted, details for all resources are displayed, for example `$ kubectl get pods`. When performing an operation on multiple resources, you can specify each resource by type and name or specify one or more files: + * To specify resources by type and name: - * To group resources if they are all the same type: `TYPE1 name1 name2 name<#>`
. + + * To group resources if they are all the same type: `TYPE1 name1 name2 name<#>`.
Example: `$ kubectl get pod example-pod1 example-pod2` - * To specify multiple resource types individually: `TYPE1/name1 TYPE1/name2 TYPE2/name3 TYPE<#>/name<#>`
. + + * To specify multiple resource types individually: `TYPE1/name1 TYPE1/name2 TYPE2/name3 TYPE<#>/name<#>`.
Example: `$ kubectl get pod/example-pod1 replicationcontroller/example-rc1` - * To specify resources with one or more files: `-f file1 -f file2 -f file<#>` + + * To specify resources with one or more files: `-f file1 -f file2 -f file<#>` [Use YAML rather than JSON](/docs/concepts/configuration/overview/#general-config-tips) since YAML tends to be more user-friendly, especially for configuration files.
Example: `$ kubectl get pod -f ./pod.yaml` * `flags`: Specifies optional flags. For example, you can use the `-s` or `--server` flags to specify the address and port of the Kubernetes API server.
From b22ca98b83f24d77308195813457e915ae93d33e Mon Sep 17 00:00:00 2001 From: lemon-tree Date: Fri, 18 Aug 2017 09:32:28 +0800 Subject: [PATCH 086/129] Update kubectl-cheatsheet.md I think ":" is better than ".", so I changed the "." to ":". --- docs/user-guide/kubectl-cheatsheet.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/user-guide/kubectl-cheatsheet.md b/docs/user-guide/kubectl-cheatsheet.md index 111f3d942e..ddba577c75 100644 --- a/docs/user-guide/kubectl-cheatsheet.md +++ b/docs/user-guide/kubectl-cheatsheet.md @@ -231,7 +231,7 @@ $ kubectl taint nodes foo dedicated=special-user:NoSchedule ## Resource types -The following table includes a list of all the supported resource types and their abbreviated aliases. +The following table includes a list of all the supported resource types and their abbreviated aliases: Resource type | Abbreviated alias -------------------- | -------------------- From d629ec4a1cd47b7fc38ac5f33253995ea54f9028 Mon Sep 17 00:00:00 2001 From: Anthony Date: Fri, 18 Aug 2017 14:49:39 +0800 Subject: [PATCH 087/129] Update cluster.md modify "Configmap" to "ConfigMap" --- docs/tasks/administer-federation/cluster.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/administer-federation/cluster.md b/docs/tasks/administer-federation/cluster.md index 09d4076ea2..8392d625f2 100644 --- a/docs/tasks/administer-federation/cluster.md +++ b/docs/tasks/administer-federation/cluster.md @@ -78,7 +78,7 @@ kubectl --context=rivendell label cluster gondor key1=value1 key2=value2 Starting in Kubernetes 1.7, there is alpha support for directing objects across the federated clusters with the annotation `federation.alpha.kubernetes.io/cluster-selector`. The *ClusterSelector* is conceptually similar to `nodeSelector`, but instead of selecting against labels on nodes, it selects against labels on federated clusters. -The annotation value must be json formatted and must be parsable into the [ClusterSelector API type](/docs/reference/federation/v1beta1/definitions/#_v1beta1_clusterselector). For example: `[{"key": "load", "operator": "Lt", "values": ["10"]}]`. Content that doesn't parse correctly will throw an error and prevent distribution of the object to any federated clusters. Objects of type Configmap, Secret, Daemonset, Service and Ingress are included in the alpha implementation. +The annotation value must be JSON formatted and must be parsable into the [ClusterSelector API type](/docs/reference/federation/v1beta1/definitions/#_v1beta1_clusterselector). For example: `[{"key": "load", "operator": "Lt", "values": ["10"]}]`. Content that doesn't parse correctly will throw an error and prevent distribution of the object to any federated clusters. Objects of type ConfigMap, Secret, Daemonset, Service and Ingress are included in the alpha implementation. Here is an example ClusterSelector annotation, which will only select clusters WITH the label `pci=true` and WITHOUT the label `environment=test`: From 8ec5b4469673ff82c1376c8c30044a87cb6b86cc Mon Sep 17 00:00:00 2001 From: Stewart-YU Date: Fri, 18 Aug 2017 17:12:16 +0800 Subject: [PATCH 088/129] Update audit.md Missing a symbol. --- docs/tasks/debug-application-cluster/audit.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/debug-application-cluster/audit.md b/docs/tasks/debug-application-cluster/audit.md index dab1c2e970..67a7197415 100644 --- a/docs/tasks/debug-application-cluster/audit.md +++ b/docs/tasks/debug-application-cluster/audit.md @@ -107,7 +107,7 @@ The policy file holds rules that determine the level of an event. Known audit le - `Request` - log event metadata and request body but not response body. - `RequestResponse` - log event metadata, request and response bodies. -When an event is processed it's compared against the list of rules in order. +When an event is processed, it's compared against the list of rules in order. The first matching rule sets the audit level of the event. The audit policy is defined by the [`audit.k8s.io` API group][audit-api]. From 49b911e7d1fc59ec282ee0b9e5048ed957ce9387 Mon Sep 17 00:00:00 2001 From: Anthony Date: Fri, 18 Aug 2017 08:44:50 +0800 Subject: [PATCH 089/129] Update running-cloud-controller.md --- docs/tasks/administer-cluster/running-cloud-controller.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tasks/administer-cluster/running-cloud-controller.md b/docs/tasks/administer-cluster/running-cloud-controller.md index 9902b0ae40..ba76170525 100644 --- a/docs/tasks/administer-cluster/running-cloud-controller.md +++ b/docs/tasks/administer-cluster/running-cloud-controller.md @@ -16,8 +16,8 @@ In future Kubernetes releases, cloud vendors should link code that satisfies the To build cloud-controller-manager for your cloud, follow these steps: -* Write a cloudprovider that satisfies the [cloudprovider.Interface](https://git.k8s.io/kubernetes/pkg/cloudprovider/cloud.go). -* Link the cloudprovider to cloud-controller-manager. +1. Write a cloudprovider that satisfies the [cloudprovider.Interface](https://git.k8s.io/kubernetes/pkg/cloudprovider/cloud.go). +1. Link the cloudprovider to cloud-controller-manager. The methods in [cloudprovider.Interface](https://git.k8s.io/kubernetes/pkg/cloudprovider/cloud.go) are self-explanatory. All of the [existing providers](https://git.k8s.io/kubernetes/pkg/cloudprovider/providers) satisfy this interface. If your cloud is already a part From 573442c182e0b393e447be29b71b4ad63657b254 Mon Sep 17 00:00:00 2001 From: Anthony Date: Thu, 17 Aug 2017 12:20:54 +0800 Subject: [PATCH 090/129] Update running-cloud-controller.md add "." to the sentence --- docs/tasks/administer-cluster/running-cloud-controller.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/administer-cluster/running-cloud-controller.md b/docs/tasks/administer-cluster/running-cloud-controller.md index c56df35f05..9902b0ae40 100644 --- a/docs/tasks/administer-cluster/running-cloud-controller.md +++ b/docs/tasks/administer-cluster/running-cloud-controller.md @@ -17,7 +17,7 @@ In future Kubernetes releases, cloud vendors should link code that satisfies the To build cloud-controller-manager for your cloud, follow these steps: * Write a cloudprovider that satisfies the [cloudprovider.Interface](https://git.k8s.io/kubernetes/pkg/cloudprovider/cloud.go). -* Link the cloudprovider to cloud-controller-manager +* Link the cloudprovider to cloud-controller-manager. The methods in [cloudprovider.Interface](https://git.k8s.io/kubernetes/pkg/cloudprovider/cloud.go) are self-explanatory. All of the [existing providers](https://git.k8s.io/kubernetes/pkg/cloudprovider/providers) satisfy this interface. If your cloud is already a part From 08a5d4d7289c5257f630d65b12c5ce8b87b95427 Mon Sep 17 00:00:00 2001 From: Anthony Date: Fri, 18 Aug 2017 08:57:24 +0800 Subject: [PATCH 091/129] Update running-cloud-controller.md --- docs/tasks/administer-cluster/running-cloud-controller.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/administer-cluster/running-cloud-controller.md b/docs/tasks/administer-cluster/running-cloud-controller.md index ba76170525..0c45ade1c4 100644 --- a/docs/tasks/administer-cluster/running-cloud-controller.md +++ b/docs/tasks/administer-cluster/running-cloud-controller.md @@ -17,7 +17,7 @@ In future Kubernetes releases, cloud vendors should link code that satisfies the To build cloud-controller-manager for your cloud, follow these steps: 1. Write a cloudprovider that satisfies the [cloudprovider.Interface](https://git.k8s.io/kubernetes/pkg/cloudprovider/cloud.go). -1. Link the cloudprovider to cloud-controller-manager. +2. Link the cloudprovider to cloud-controller-manager. The methods in [cloudprovider.Interface](https://git.k8s.io/kubernetes/pkg/cloudprovider/cloud.go) are self-explanatory. All of the [existing providers](https://git.k8s.io/kubernetes/pkg/cloudprovider/providers) satisfy this interface. If your cloud is already a part From 8a1a91eb54304e4d35034310c09a92621c09c207 Mon Sep 17 00:00:00 2001 From: Anthony Date: Fri, 18 Aug 2017 08:44:50 +0800 Subject: [PATCH 092/129] Update running-cloud-controller.md (+1 squashed commit) Squashed commits: [49b911e] Update running-cloud-controller.md --- docs/tasks/administer-cluster/running-cloud-controller.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tasks/administer-cluster/running-cloud-controller.md b/docs/tasks/administer-cluster/running-cloud-controller.md index 9902b0ae40..0c45ade1c4 100644 --- a/docs/tasks/administer-cluster/running-cloud-controller.md +++ b/docs/tasks/administer-cluster/running-cloud-controller.md @@ -16,8 +16,8 @@ In future Kubernetes releases, cloud vendors should link code that satisfies the To build cloud-controller-manager for your cloud, follow these steps: -* Write a cloudprovider that satisfies the [cloudprovider.Interface](https://git.k8s.io/kubernetes/pkg/cloudprovider/cloud.go). -* Link the cloudprovider to cloud-controller-manager. +1. Write a cloudprovider that satisfies the [cloudprovider.Interface](https://git.k8s.io/kubernetes/pkg/cloudprovider/cloud.go). +2. Link the cloudprovider to cloud-controller-manager. The methods in [cloudprovider.Interface](https://git.k8s.io/kubernetes/pkg/cloudprovider/cloud.go) are self-explanatory. All of the [existing providers](https://git.k8s.io/kubernetes/pkg/cloudprovider/providers) satisfy this interface. If your cloud is already a part From 98b0d1fde6f7d3603c2eed8bd1a5dd4e98306f28 Mon Sep 17 00:00:00 2001 From: Stewart-YU Date: Fri, 18 Aug 2017 08:27:40 +0800 Subject: [PATCH 093/129] Update deployment.md Missing a signal. --- docs/concepts/workloads/controllers/deployment.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/concepts/workloads/controllers/deployment.md b/docs/concepts/workloads/controllers/deployment.md index d80149c01b..f70b21b96c 100644 --- a/docs/concepts/workloads/controllers/deployment.md +++ b/docs/concepts/workloads/controllers/deployment.md @@ -476,7 +476,7 @@ $ kubectl set image deploy/nginx-deployment nginx=nginx:sometag deployment "nginx-deployment" image updated ``` -The image update starts a new rollout with ReplicaSet nginx-deployment-1989198191 but it's blocked due to the +The image update starts a new rollout with ReplicaSet nginx-deployment-1989198191, but it's blocked due to the maxUnavailable requirement that we mentioned above. ```shell From 818fa9b3a1984711f555b5ef777cd3fbed42fe66 Mon Sep 17 00:00:00 2001 From: Weibin Lin Date: Fri, 18 Aug 2017 08:31:07 +0800 Subject: [PATCH 094/129] Update configure-liveness-readiness-probes.md fix typo --- .../configure-liveness-readiness-probes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 66dd333b18..a842c449cd 100644 --- a/docs/tasks/configure-pod-container/configure-liveness-readiness-probes.md +++ b/docs/tasks/configure-pod-container/configure-liveness-readiness-probes.md @@ -180,7 +180,7 @@ can’t it is considered a failure. {% include code.html language="yaml" file="tcp-liveness-readiness.yaml" ghlink="/docs/tasks/configure-pod-container/tcp-liveness-readiness.yaml" %} -As you can see, configuration for a TCP check is quite similar to a HTTP check. +As you can see, configuration for a TCP check is quite similar to an HTTP check. This example uses both readiness and liveness probes. The kubelet will send the first readiness probe 5 seconds after the container starts. This will attempt to connect to the `goproxy` container on port 8080. If the probe succeeds, the pod From eee656902feba4ff89336c65f7d4ecf43cfa57d8 Mon Sep 17 00:00:00 2001 From: Weibin Lin Date: Fri, 18 Aug 2017 08:36:08 +0800 Subject: [PATCH 095/129] Update audit.md --- docs/tasks/debug-application-cluster/audit.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tasks/debug-application-cluster/audit.md b/docs/tasks/debug-application-cluster/audit.md index 67a7197415..185f9a1cc1 100644 --- a/docs/tasks/debug-application-cluster/audit.md +++ b/docs/tasks/debug-application-cluster/audit.md @@ -48,7 +48,7 @@ for configuring where and how audit logs are handled: - `audit-log-path` - enables the audit log pointing to a file where the requests are being logged to, '-' means standard out. - `audit-log-maxage` - specifies maximum number of days to retain old audit log files based on the timestamp encoded in their filename. - `audit-log-maxbackup` - specifies maximum number of old audit log files to retain. -- `audit-log-maxsize` - specifies maximum size in megabytes of the audit log file before it gets rotated. Defaults to 100MB +- `audit-log-maxsize` - specifies maximum size in megabytes of the audit log file before it gets rotated. Defaults to 100MB. If an audit log file already exists, Kubernetes appends new audit logs to that file. Otherwise, Kubernetes creates an audit log file at the location you specified in @@ -80,7 +80,7 @@ webhooks. The structure of audit events changes when enabling the `AdvancedAuditing` feature flag. This includes some cleanups, such as the `method` reflecting the verb evaluated by the [authorization layer](/docs/admin/authorization/) instead of the [HTTP verb](/docs/admin/authorization/#determine-the-request-verb). -Also, instead of always generating two events per request, events are recorded with an associated "stage." +Also, instead of always generating two events per request, events are recorded with an associated "stage". The known stages are: - `RequestReceived` - The stage for events generated as soon as the audit handler receives the request. From d3823d47348c42a4e607c6373c1986c49eabffd8 Mon Sep 17 00:00:00 2001 From: lemon-tree Date: Fri, 18 Aug 2017 08:56:00 +0800 Subject: [PATCH 096/129] Update docker-cli-to-kubectl.md Added the lost "." and ":". --- docs/user-guide/docker-cli-to-kubectl.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/user-guide/docker-cli-to-kubectl.md b/docs/user-guide/docker-cli-to-kubectl.md index ffbc4cc2a6..cddbd1eda0 100644 --- a/docs/user-guide/docker-cli-to-kubectl.md +++ b/docs/user-guide/docker-cli-to-kubectl.md @@ -54,7 +54,7 @@ kubectl run [-i] [--tty] --attach --image= Unlike `docker run ...`, if `--attach` is specified, we attach to `stdin`, `stdout` and `stderr`, there is no ability to control which streams are attached (`docker -a ...`). Because we start a Deployment for your container, it will be restarted if you terminate the attached process (e.g. `ctrl-c`), this is different from `docker run -it`. -To destroy the Deployment (and its pods) you need to run `kubectl delete deployment ` +To destroy the Deployment (and its pods) you need to run `kubectl delete deployment `. #### docker ps @@ -78,7 +78,7 @@ nginx-app-5jyvm 1/1 Running 0 1h #### docker attach -How do I attach to a process that is already running in a container? Checkout [kubectl attach](/docs/user-guide/kubectl/{{page.version}}/#attach) +How do I attach to a process that is already running in a container? Checkout [kubectl attach](/docs/user-guide/kubectl/{{page.version}}/#attach). With docker: @@ -178,7 +178,7 @@ See [Logging and Monitoring Cluster Activity](/docs/concepts/cluster-administrat How do I stop and delete a running process? Checkout [kubectl delete](/docs/user-guide/kubectl/{{page.version}}/#delete). -With docker +With docker: ```shell $ docker ps From 1fdaa2baa4c2930a23946ec270ad057e1f584677 Mon Sep 17 00:00:00 2001 From: XsWack Date: Fri, 18 Aug 2017 09:21:59 +0800 Subject: [PATCH 097/129] Update define-environment-variable-container.md format the command line --- .../define-environment-variable-container.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/inject-data-application/define-environment-variable-container.md b/docs/tasks/inject-data-application/define-environment-variable-container.md index 11f46f69d3..adb159a5c3 100644 --- a/docs/tasks/inject-data-application/define-environment-variable-container.md +++ b/docs/tasks/inject-data-application/define-environment-variable-container.md @@ -51,7 +51,7 @@ Pod: 1. In your shell, run the `printenv` command to list the environment variables. - root@envar-demo:/# printenv + root@envar-demo:/# printenv The output is similar to this: From 25091ef09f5e7fc02984b4a6b0018ff3e796b901 Mon Sep 17 00:00:00 2001 From: XsWack Date: Fri, 18 Aug 2017 10:20:19 +0800 Subject: [PATCH 098/129] Update scratch.md fix bad url --- docs/getting-started-guides/scratch.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-started-guides/scratch.md b/docs/getting-started-guides/scratch.md index 8e450bbaf6..5894732059 100644 --- a/docs/getting-started-guides/scratch.md +++ b/docs/getting-started-guides/scratch.md @@ -889,7 +889,7 @@ At this point you should be able to run through one of the basic examples, such ### Running the Conformance Test -You may want to try to run the [Conformance test](http://releases.k8s.io/{{page.githubbranch}}/hack/conformance-test.sh). Any failures may give a hint as to areas that need more attention. +You may want to try to run the [Conformance test](http://releases.k8s.io/{{page.githubbranch}}/test/e2e_node/conformance/run_test.sh). Any failures may give a hint as to areas that need more attention. ### Networking From c549dffaaf50e6a94699ed0c110101967dad0fe6 Mon Sep 17 00:00:00 2001 From: lemon-tree Date: Fri, 18 Aug 2017 11:58:32 +0800 Subject: [PATCH 099/129] Update kubefed_init.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit “Init” is redundant. --- docs/admin/kubefed_init.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/admin/kubefed_init.md b/docs/admin/kubefed_init.md index 8910568b5c..656cdde6ee 100644 --- a/docs/admin/kubefed_init.md +++ b/docs/admin/kubefed_init.md @@ -5,7 +5,7 @@ Initialize a federation control plane ### Synopsis -Init initializes a federation control plane. +Initialize a federation control plane. Federation control plane is hosted inside a Kubernetes cluster. The host cluster must be specified using the From 8b2485c4411df2b3924224c36839cf9faf5a77be Mon Sep 17 00:00:00 2001 From: Anthony Date: Fri, 18 Aug 2017 18:23:10 +0800 Subject: [PATCH 100/129] Update scheduling-gpus.md modify "nvidia drivers" to "Nvidia drivers" --- docs/tasks/manage-gpus/scheduling-gpus.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/manage-gpus/scheduling-gpus.md b/docs/tasks/manage-gpus/scheduling-gpus.md index 20b5d9aec4..8981bc5a31 100644 --- a/docs/tasks/manage-gpus/scheduling-gpus.md +++ b/docs/tasks/manage-gpus/scheduling-gpus.md @@ -13,7 +13,7 @@ This page describes how users can consume GPUs and the current limitations. {% capture prerequisites %} -1. Kubernetes nodes have to be pre-installed with Nvidia drivers. Kubelet will not detect Nvidia GPUs otherwise. Try to re-install nvidia drivers if kubelet fails to expose Nvidia GPUs as part of Node Capacity. After installing the driver, run `nvidia-docker-plugin` to confirm that all drivers have been loaded. +1. Kubernetes nodes have to be pre-installed with Nvidia drivers. Kubelet will not detect Nvidia GPUs otherwise. Try to re-install Nvidia drivers if kubelet fails to expose Nvidia GPUs as part of Node Capacity. After installing the driver, run `nvidia-docker-plugin` to confirm that all drivers have been loaded. 2. A special **alpha** feature gate `Accelerators` has to be set to true across the system: `--feature-gates="Accelerators=true"`. 3. Nodes must be using `docker engine` as the container runtime. From bea2c15aa3e8fcb7de29419047a300ef4e0c8b65 Mon Sep 17 00:00:00 2001 From: XsWack Date: Fri, 18 Aug 2017 09:08:48 +0800 Subject: [PATCH 101/129] Update static-pod.md Remove blank lines and unified the command line format --- docs/tasks/administer-cluster/static-pod.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/tasks/administer-cluster/static-pod.md b/docs/tasks/administer-cluster/static-pod.md index dd048d2dc5..a4c8671e87 100644 --- a/docs/tasks/administer-cluster/static-pod.md +++ b/docs/tasks/administer-cluster/static-pod.md @@ -84,7 +84,6 @@ If we look at our Kubernetes API server (running on host `my-master`), we see th [joe@my-master ~] $ kubectl get pods NAME READY STATUS RESTARTS AGE static-web-my-node1 1/1 Running 0 2m - ``` Labels from the static pod are propagated into the mirror-pod and can be used as usual for filtering. @@ -97,7 +96,6 @@ pods/static-web-my-node1 [joe@my-master ~] $ kubectl get pods NAME READY STATUS RESTARTS AGE static-web-my-node1 1/1 Running 0 12s - ``` Back to our `my-node1` host, we can try to stop the container manually and see, that kubelet automatically restarts it in a while: From 910e35c457afe2a21560b80a787545bbf0e6082b Mon Sep 17 00:00:00 2001 From: netroby Date: Sat, 19 Aug 2017 03:06:59 +0800 Subject: [PATCH 102/129] Tips for centos to resolve startup problem (#4755) * Tips for centos to resolve startup problem * Update document to diagnose centos setup problem * Update create-cluster-kubeadm.md --- .../independent/create-cluster-kubeadm.md | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/docs/setup/independent/create-cluster-kubeadm.md b/docs/setup/independent/create-cluster-kubeadm.md index a699d24f73..e4665c5269 100644 --- a/docs/setup/independent/create-cluster-kubeadm.md +++ b/docs/setup/independent/create-cluster-kubeadm.md @@ -559,6 +559,28 @@ Another workaround is to overwrite the default `kubeconfig` for the "admin" user sudo chown $(id -u):$(id -g) $HOME/.kube/config ``` +1. If you are using CentOS and encounter difficulty while setting up the master node: + + Verify that your Docker cgroup driver matches the kubelet config: + +``` +docker info |grep -i cgroup +cat /etc/systemd/system/kubelet.service.d/10-kubeadm.conf +``` + + If the Docker cgroup driver and the kubelet config don't match, change the kubelet config to match the Docker cgroup driver: + +``` +update KUBELET_CGROUP_ARGS=--cgroup-driver=systemd to KUBELET_CGROUP_ARGS=--cgroup-driver=cgroupfs +``` + + Then restart kubelet: + +``` +systemctl daemon-reload +service kubelet restart +``` + The `kubectl describe pod` or `kubectl logs` commands can help you diagnose errors. For example: ```bash @@ -569,5 +591,4 @@ kubectl -n ${NAMESPACE} logs ${POD_NAME} -c ${CONTAINER_NAME} {% endcapture %} - {% include templates/task.md %} From f189975d2784bf236d4dfb3bde945c12bafc093e Mon Sep 17 00:00:00 2001 From: Andy Zhang Date: Sat, 19 Aug 2017 03:19:10 +0800 Subject: [PATCH 103/129] update Azuredisk doc (#4912) * rebase * fix azure disk doc issue * use storageaccounttype instead of skuName * Update persistent-volumes.md --- docs/concepts/storage/persistent-volumes.md | 28 ++++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/docs/concepts/storage/persistent-volumes.md b/docs/concepts/storage/persistent-volumes.md index 3e2cbf248c..3a4f6d4db1 100644 --- a/docs/concepts/storage/persistent-volumes.md +++ b/docs/concepts/storage/persistent-volumes.md @@ -695,6 +695,8 @@ parameters: #### Azure Disk +##### Azure Unmanaged Disk Storage Class + ```yaml kind: StorageClass apiVersion: storage.k8s.io/v1 @@ -709,7 +711,26 @@ parameters: * `skuName`: Azure storage account Sku tier. Default is empty. * `location`: Azure storage account location. Default is empty. -* `storageAccount`: Azure storage account name. If storage account is not provided, all storage accounts associated with the resource group are searched to find one that matches `skuName` and `location`. If storage account is provided, it must reside in the same resource group as the cluster, and `skuName` and `location` are ignored. +* `storageAccount`: Azure storage account name. If a storage account is provided, it must reside in the same resource group as the cluster, and `location` is ignored. If a storage account is not provided, a new storage account will be created in the same resource group as the cluster. + +##### New Azure Disk Storage Class (starting from v1.7.2) + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: slow +provisioner: kubernetes.io/azure-disk +parameters: + storageaccounttype: Standard_LRS + kind: Shared +``` + +* `storageaccounttype`: Azure storage account Sku tier. Default is empty. +* `kind`: Possible values are `shared` (default), `dedicated`, and `managed`. When `kind` is `shared`, all unmanaged disks are created in a few shared storage accounts in the same resource group as the cluster. When `kind` is `dedicated`, a new dedicated storage account will be created for the new unmanaged disk in the same resource group as the cluster. + +- Premium VM can attach both Standard_LRS and Premium_LRS disks, while Standard VM can only attach Standard_LRS disks. +- Managed VM can only attach managed disks and unmanaged VM can only attach unmanaged disks. #### Azure File @@ -727,10 +748,9 @@ parameters: * `skuName`: Azure storage account Sku tier. Default is empty. * `location`: Azure storage account location. Default is empty. -* `storageAccount`: Azure storage account name. Default is empty. -If storage account is not provided, all storage accounts associated with the resource group are searched to find one that matches `skuName` and `location`. If storage account is provided, it must reside in the same resource group as the cluster, and `skuName` and `location` are ignored. +* `storageAccount`: Azure storage account name. Default is empty. If a storage account is not provided, all storage accounts associated with the resource group are searched to find one that matches `skuName` and `location`. If a storage account is provided, it must reside in the same resource group as the cluster, and `skuName` and `location` are ignored. -During provision, a secret will be created for mounting credentials. If the cluster has enabled both [RBAC](/docs/admin/authorization/rbac/) and [Controller Roles](/docs/admin/authorization/rbac/#controller-roles), you will first need to add `create` permission of resource `secret` for clusterrole `system:controller:persistent-volume-binder`. +During provision, a secret is created for mounting credentials. If the cluster has enabled both [RBAC](/docs/admin/authorization/rbac/) and [Controller Roles](/docs/admin/authorization/rbac/#controller-roles), add the `create` permission of resource `secret` for clusterrole `system:controller:persistent-volume-binder`. #### Portworx Volume From 50dbd9877b757c3c335c201dd0f781c87a0cf365 Mon Sep 17 00:00:00 2001 From: Anthony Date: Fri, 18 Aug 2017 14:35:28 +0800 Subject: [PATCH 104/129] Update set-up-coredns-provider-federation.md modify "Bringup" to "Bring up" --- docs/tasks/federation/set-up-coredns-provider-federation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/federation/set-up-coredns-provider-federation.md b/docs/tasks/federation/set-up-coredns-provider-federation.md index 994727dbcf..8bbde349fe 100644 --- a/docs/tasks/federation/set-up-coredns-provider-federation.md +++ b/docs/tasks/federation/set-up-coredns-provider-federation.md @@ -13,7 +13,7 @@ DNS provider for Cluster Federation. {% capture objectives %} * Configure and deploy CoreDNS server -* Bringup federation with CoreDNS as dns provider +* Bring up federation with CoreDNS as dns provider * Setup CoreDNS server in nameserver lookup chain {% endcapture %} From cbc0815ad6dce07c33c419c387cd51698e1ef3c9 Mon Sep 17 00:00:00 2001 From: Murali Reddy Date: Sat, 19 Aug 2017 01:45:30 +0530 Subject: [PATCH 105/129] Add kube-router as networking solution (#5071) * Add kube-router as networking solution * Add kube-router as networking solution --- docs/concepts/cluster-administration/networking.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/concepts/cluster-administration/networking.md b/docs/concepts/cluster-administration/networking.md index 8c41139c44..99b2106829 100644 --- a/docs/concepts/cluster-administration/networking.md +++ b/docs/concepts/cluster-administration/networking.md @@ -168,6 +168,10 @@ sysctl net.ipv4.ip_forward=1 The result of all this is that all `Pods` can reach each other and can egress traffic to the internet. +### Kube-router + +[Kube-router](https://github.com/cloudnativelabs/kube-router) is a purpose-built networking solution for Kubernetes that aims to provide high performance and operational simplicity. Kube-router provides a Linux [LVS/IPVS](http://www.linuxvirtualserver.org/software/ipvs.html)-based service proxy, a Linux kernel forwarding-based pod-to-pod networking solution with no overlays, and iptables/ipset-based network policy enforcer. + ### L2 networks and linux bridging If you have a "dumb" L2 network, such as a simple switch in a "bare-metal" From beff4d84993cecba45227d2a02e529b1686631c7 Mon Sep 17 00:00:00 2001 From: Ahmet Alp Balkan Date: Fri, 18 Aug 2017 14:57:06 -0700 Subject: [PATCH 106/129] Import wordpress tutorial from k/examples (#5079) * Update mysql-wordpress-pd import script Signed-off-by: Ahmet Alp Balkan * Import wordpress-mysql tutorial Signed-off-by: Ahmet Alp Balkan --- .../mysql-wordpress-persistent-volume.md | 397 +++++------------- .../local-volumes.yaml | 27 ++ .../mysql-deployment.yaml | 61 +++ .../wordpress-deployment.yaml | 63 +++ update-imported-tutorials.py | 7 +- 5 files changed, 269 insertions(+), 286 deletions(-) create mode 100644 docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/local-volumes.yaml create mode 100644 docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/mysql-deployment.yaml create mode 100644 docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/wordpress-deployment.yaml diff --git a/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume.md b/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume.md index 2ede41834a..22cb8bd142 100644 --- a/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume.md +++ b/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume.md @@ -1,5 +1,5 @@ --- -title: "Example: WordPress and MySQL with Persistent Volumes" +title: "Example: Deploying WordPress and MySQL with Persistent Volumes" --- -This example describes how to run a persistent installation of -[WordPress](https://wordpress.org/) and -[MySQL](https://www.mysql.com/) on Kubernetes. We'll use the -[mysql](https://registry.hub.docker.com/_/mysql/) and -[wordpress](https://registry.hub.docker.com/_/wordpress/) official -[Docker](https://www.docker.com/) images for this installation. (The -WordPress image includes an Apache server). +{% capture overview %} +This tutorial shows you how to deploy a WordPress site and a MySQL database using Minikube. Both applications use PersistentVolumes and PersistentVolumeClaims to store data. -Demonstrated Kubernetes Concepts: +A [PersistentVolume](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) (PV) is a piece of storage in the cluster that has been provisioned by an administrator, and a [PeristentVolumeClaim](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims) (PVC) is a set amout of storage in a PV. PersistentVolumes and PeristentVolumeClaims are independent from Pod lifecycles and preserve data through restarting, rescheduling, and even deleting Pods. -* [Persistent Volumes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) to - define persistent disks (disk lifecycle not tied to the Pods). -* [Services](https://kubernetes.io/docs/concepts/services-networking/service/) to enable Pods to - locate one another. -* [External Load Balancers](https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer) - to expose Services externally. -* [Deployments](http://kubernetes.io/docs/user-guide/deployments/) to ensure Pods - stay up and running. -* [Secrets](http://kubernetes.io/docs/user-guide/secrets/) to store sensitive - passwords. +**Warning:** This deployment is not suitable for production use cases, as it uses single instance WordPress and MySQL Pods. Consider using [WordPress Helm Chart](https://github.com/kubernetes/charts/tree/master/stable/wordpress) to deploy WordPress in production. +{: .warning} -## Quickstart +{% endcapture %} -Put your desired MySQL password in a file called `password.txt` with -no trailing newline. The first `tr` command will remove the newline if -your editor added one. +{% capture objectives %} +* Create a PersistentVolume +* Create a Secret +* Deploy MySQL +* Deploy WordPress +* Clean up -**Note:** if your cluster enforces **_selinux_** and you will be using [Host Path](#host-path) for storage, then please follow this [extra step](#selinux). +{% endcapture %} -```shell -tr --delete '\n' .strippedpassword.txt && mv .strippedpassword.txt password.txt -kubectl create -f https://raw.githubusercontent.com/kubernetes/examples/master/mysql-wordpress-pd/local-volumes.yaml -kubectl create secret generic mysql-pass --from-file=password.txt -kubectl create -f https://raw.githubusercontent.com/kubernetes/examples/master/mysql-wordpress-pd/mysql-deployment.yaml -kubectl create -f https://raw.githubusercontent.com/kubernetes/examples/master/mysql-wordpress-pd/wordpress-deployment.yaml -``` +{% capture prerequisites %} -## Table of Contents +{% include task-tutorial-prereqs.md %} - +Download the following configuration files: -- [Persistent Installation of MySQL and WordPress on Kubernetes](#persistent-installation-of-mysql-and-wordpress-on-kubernetes) - - [Quickstart](#quickstart) - - [Table of Contents](#table-of-contents) - - [Cluster Requirements](#cluster-requirements) - - [Decide where you will store your data](#decide-where-you-will-store-your-data) - - [Host Path](#host-path) - - [SELinux](#selinux) - - [GCE Persistent Disk](#gce-persistent-disk) - - [Create the MySQL Password Secret](#create-the-mysql-password-secret) - - [Deploy MySQL](#deploy-mysql) - - [Deploy WordPress](#deploy-wordpress) - - [Visit your new WordPress blog](#visit-your-new-wordpress-blog) - - [Take down and restart your blog](#take-down-and-restart-your-blog) - - [Next Steps](#next-steps) +1. [local-volumes.yaml](https://kubernetes.io/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/local-volumes.yaml) - +1. [mysql-deployment.yaml](https://kubernetes.io/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/mysql-deployment.yaml) -## Cluster Requirements +1. [wordpress-deployment.yaml](https://kubernetes.io/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume//wordpress-deployment.yaml) -Kubernetes runs in a variety of environments and is inherently -modular. Not all clusters are the same. These are the requirements for -this example. +{% endcapture %} -* Kubernetes version 1.2 is required due to using newer features, such - at PV Claims and Deployments. Run `kubectl version` to see your - cluster version. -* [Cluster DNS](https://github.com/kubernetes/dns) will be used for service discovery. -* An [external load balancer](https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer) - will be used to access WordPress. -* [Persistent Volume Claims](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims) - are used. You must create Persistent Volumes in your cluster to be - claimed. This example demonstrates how to create two types of - volumes, but any volume is sufficient. +{% capture lessoncontent %} -Consult a -[Getting Started Guide](http://kubernetes.io/docs/getting-started-guides/) -to set up a cluster and the -[kubectl](http://kubernetes.io/docs/user-guide/prereqs/) command-line client. +## Create a PersistentVolume -## Decide where you will store your data +MySQL and Wordpress each use a PersistentVolume to store data. While Kubernetes supports many different [types of PersistentVolumes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#types-of-persistent-volumes), this tutorial covers [hostPath](https://kubernetes.io/docs/concepts/storage/volumes/#hostpath). -MySQL and WordPress will each use a -[Persistent Volume](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) -to store their data. We will use a Persistent Volume Claim to claim an -available persistent volume. This example covers HostPath and -GCEPersistentDisk volumes. Choose one of the two, or see -[Types of Persistent Volumes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#types-of-persistent-volumes) -for more options. +**Note:** If you have a Kubernetes cluster running on Google Container Engine, please follow [this guide](https://cloud.google.com/container-engine/docs/tutorials/persistent-disk). +{: .note} -### Host Path +### Setting up a hostPath Volume -Host paths are volumes mapped to directories on the host. **These -should be used for testing or single-node clusters only**. The data -will not be moved between nodes if the pod is recreated on a new -node. If the pod is deleted and recreated on a new node, data will be -lost. +A `hostPath` mounts a file or directory from the host node’s filesystem into your Pod. -##### SELinux +**Warning:** Only use `hostPath` for developing and testing. With hostPath, your data lives on the node the Pod is scheduled onto and does not move between nodes. If a Pod dies and gets scheduled to another node in the cluster, the data is lost. +{: .warning} -On systems supporting selinux it is preferred to leave it enabled/enforcing. -However, docker containers mount the host path with the "_svirt_sandbox_file_t_" -label type, which is incompatible with the default label type for /tmp ("_tmp_t_"), -resulting in a permissions error when the mysql container attempts to `chown` -_/var/lib/mysql_. -Therefore, on selinx systems using host path, you should pre-create the host path -directory (/tmp/data/) and change it's selinux label type to "_svirt_sandbox_file_t_", -as follows: +1. Launch a terminal window in the directory you downloaded the manifest files. -```shell -## on every node: -mkdir -p /tmp/data -chmod a+rwt /tmp/data # match /tmp permissions -chcon -Rt svirt_sandbox_file_t /tmp/data -``` +2. Create two PersistentVolumes from the `local-volumes.yaml` file: -Continuing with host path, create the persistent volume objects in Kubernetes using -[local-volumes.yaml](https://git.k8s.io/examples/mysql-wordpress-pd/local-volumes.yaml): + kubectl create -f local-volumes.yaml -```shell -export KUBE_REPO=https://raw.githubusercontent.com/kubernetes/examples/master -kubectl create -f $KUBE_REPO/mysql-wordpress-pd/local-volumes.yaml -``` +{% include code.html language="yaml" file="mysql-wordpress-persistent-volume/local-volumes.yaml" ghlink="/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/local-volumes.yaml" %} +{:start="3"} +3. Run the following command to verify that two 20GiB PersistentVolumes are available: -### GCE Persistent Disk + kubectl get pv -This storage option is applicable if you are running on -[Google Compute Engine](http://kubernetes.io/docs/getting-started-guides/gce/). + The response should be like this: -Create two persistent disks. You will need to create the disks in the -same [GCE zone](https://cloud.google.com/compute/docs/zones) as the -Kubernetes cluster. The default setup script will create the cluster -in the `us-central1-b` zone, as seen in the -[config-default.sh](https://git.k8s.io/kubernetes/cluster/gce/config-default.sh) file. Replace -`` below with the appropriate zone. The names `wordpress-1` and -`wordpress-2` must match the `pdName` fields we have specified in -[gce-volumes.yaml](https://git.k8s.io/examples/mysql-wordpress-pd/gce-volumes.yaml). + NAME CAPACITY ACCESSMODES RECLAIMPOLICY STATUS CLAIM STORAGECLASS REASON AGE + local-pv-1 20Gi RWO Retain Available 1m + local-pv-2 20Gi RWO Retain Available 1m -```shell -gcloud compute disks create --size=20GB --zone= wordpress-1 -gcloud compute disks create --size=20GB --zone= wordpress-2 -``` +## Create a Secret for MySQL Password -Create the persistent volume objects in Kubernetes for those disks: +A [Secret](https://kubernetes.io/docs/concepts/configuration/secret/) is an object that stores a piece of sensitive data like a password or key. The manifest files are already configured to use a Secret, but you have to create your own Secret. -```shell -export KUBE_REPO=https://raw.githubusercontent.com/kubernetes/examples/master -kubectl create -f $KUBE_REPO/mysql-wordpress-pd/gce-volumes.yaml -``` +1. Create the Secret object from the following command: -## Create the MySQL Password Secret + kubectl create secret generic mysql-pass --from-literal=password=YOUR_PASSWORD + + **Note:** Replace `YOUR_PASSWORD` with the password you want to apply. + {: .note} + +2. Verify that the Secret exists by running the following command: -Use a [Secret](http://kubernetes.io/docs/user-guide/secrets/) object -to store the MySQL password. First create a file (in the same directory -as the wordpress sample files) called -`password.txt` and save your password in it. Make sure to not have a -trailing newline at the end of the password. The first `tr` command -will remove the newline if your editor added one. Then, create the -Secret object. + kubectl get secrets -```shell -tr --delete '\n' .strippedpassword.txt && mv .strippedpassword.txt password.txt -kubectl create secret generic mysql-pass --from-file=password.txt -``` + The response should be like this: -This secret is referenced by the MySQL and WordPress pod configuration -so that those pods will have access to it. The MySQL pod will set the -database password, and the WordPress pod will use the password to -access the database. + NAME TYPE DATA AGE + mysql-pass Opaque 1 42s + + **Note:** To protect the Secret from exposure, neither `get` nor `describe` show its contents. + {: .note} ## Deploy MySQL -Now that the persistent disks and secrets are defined, the Kubernetes -pods can be launched. Start MySQL using -[mysql-deployment.yaml](https://git.k8s.io/examples/mysql-wordpress-pd/mysql-deployment.yaml). +The following manifest describes a single-instance MySQL Deployment. The MySQL container mounts the PersistentVolume at /var/lib/mysql. The `MYSQL_ROOT_PASSWORD` environment variable sets the database password from the Secret. -```shell -kubectl create -f $KUBE_REPO/mysql-wordpress-pd/mysql-deployment.yaml -``` +{% include code.html language="yaml" file="mysql-wordpress-persistent-volume/mysql-deployment.yaml" ghlink="/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/mysql-deployment.yaml" %} -Take a look at [mysql-deployment.yaml](https://git.k8s.io/examples/mysql-wordpress-pd/mysql-deployment.yaml), and -note that we've defined a volume mount for `/var/lib/mysql`, and then -created a Persistent Volume Claim that looks for a 20G volume. This -claim is satisfied by any volume that meets the requirements, in our -case one of the volumes we created above. +1. Deploy MySQL from the `mysql-deployment.yaml` file: -Also look at the `env` section and see that we specified the password -by referencing the secret `mysql-pass` that we created above. Secrets -can have multiple key:value pairs. Ours has only one key -`password.txt` which was the name of the file we used to create the -secret. The [MySQL image](https://hub.docker.com/_/mysql/) sets the -database password using the `MYSQL_ROOT_PASSWORD` environment -variable. + kubectl create -f mysql-deployment.yaml -It may take a short period before the new pod reaches the `Running` -state. List all pods to see the status of this new pod. +2. Verify that the Pod is running by running the following command: -```shell -kubectl get pods -``` + kubectl get pods -``` -NAME READY STATUS RESTARTS AGE -wordpress-mysql-cqcf4-9q8lo 1/1 Running 0 1m -``` + **Note:** It can take up to a few minutes for the Pod's Status to be `RUNNING`. + {: .note} -Kubernetes logs the stderr and stdout for each pod. Take a look at the -logs for a pod by using `kubectl log`. Copy the pod name from the -`get pods` command, and then: + The response should be like this: -```shell -kubectl logs -``` - -``` -... -2016-02-19 16:58:05 1 [Note] InnoDB: 128 rollback segment(s) are active. -2016-02-19 16:58:05 1 [Note] InnoDB: Waiting for purge to start -2016-02-19 16:58:05 1 [Note] InnoDB: 5.6.29 started; log sequence number 1626007 -2016-02-19 16:58:05 1 [Note] Server hostname (bind-address): '*'; port: 3306 -2016-02-19 16:58:05 1 [Note] IPv6 is available. -2016-02-19 16:58:05 1 [Note] - '::' resolves to '::'; -2016-02-19 16:58:05 1 [Note] Server socket created on IP: '::'. -2016-02-19 16:58:05 1 [Warning] 'proxies_priv' entry '@ root@wordpress-mysql-cqcf4-9q8lo' ignored in --skip-name-resolve mode. -2016-02-19 16:58:05 1 [Note] Event Scheduler: Loaded 0 events -2016-02-19 16:58:05 1 [Note] mysqld: ready for connections. -Version: '5.6.29' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server (GPL) -``` - -Also in [mysql-deployment.yaml](https://git.k8s.io/examples/mysql-wordpress-pd/mysql-deployment.yaml) we created a -service to allow other pods to reach this mysql instance. The name is -`wordpress-mysql` which resolves to the pod IP. - -Up to this point one Deployment, one Pod, one PVC, one Service, one Endpoint, -two PVs, and one Secret have been created, shown below: - -```shell -kubectl get deployment,pod,svc,endpoints,pvc -l app=wordpress -o wide && \ - kubectl get secret mysql-pass && \ - kubectl get pv -``` - -```shell -NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE -deploy/wordpress-mysql 1 1 1 1 3m -NAME READY STATUS RESTARTS AGE IP NODE -po/wordpress-mysql-3040864217-40soc 1/1 Running 0 3m 172.17.0.2 127.0.0.1 -NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR -svc/wordpress-mysql None 3306/TCP 3m app=wordpress,tier=mysql -NAME ENDPOINTS AGE -ep/wordpress-mysql 172.17.0.2:3306 3m -NAME STATUS VOLUME CAPACITY ACCESSMODES AGE -pvc/mysql-pv-claim Bound local-pv-2 20Gi RWO 3m -NAME TYPE DATA AGE -mysql-pass Opaque 1 3m -NAME CAPACITY ACCESSMODES STATUS CLAIM REASON AGE -local-pv-1 20Gi RWO Available 3m -local-pv-2 20Gi RWO Bound default/mysql-pv-claim 3m -``` + NAME READY STATUS RESTARTS AGE + wordpress-mysql-1894417608-x5dzt 1/1 Running 0 40s ## Deploy WordPress -Next deploy WordPress using -[wordpress-deployment.yaml](https://git.k8s.io/examples/mysql-wordpress-pd/wordpress-deployment.yaml): +The following manifest describes a single-instance WordPress Deployment and Service. It uses many of the same features like a PVC for persistent storage and a Secret for the password. But it also uses a different setting: `type: NodePort`. This setting exposes WordPress to traffic from outside of the cluster. -```shell -kubectl create -f $KUBE_REPO/mysql-wordpress-pd/wordpress-deployment.yaml -``` +{% include code.html language="yaml" file="mysql-wordpress-persistent-volume/mysql-deployment.yaml" ghlink="/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/wordpress-deployment.yaml" %} -Here we are using many of the same features, such as a volume claim -for persistent storage and a secret for the password. +1. Create a WordPress Service and Deployment from the `wordpress-deployment.yaml` file: -The [WordPress image](https://hub.docker.com/_/wordpress/) accepts the -database hostname through the environment variable -`WORDPRESS_DB_HOST`. We set the env value to the name of the MySQL -service we created: `wordpress-mysql`. + kubectl create -f wordpress-deployment.yaml -The WordPress service has the setting `type: LoadBalancer`. This will -set up the wordpress service behind an external IP. +2. Verify that the Service is running by running the following command: -Find the external IP for your WordPress service. **It may take a minute -to have an external IP assigned to the service, depending on your -cluster environment.** + kubectl get services wordpress -```shell -kubectl get services wordpress -``` + The response should be like this: -``` -NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE -wordpress 10.0.0.5 1.2.3.4 80/TCP 19h -``` + NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE + wordpress 10.0.0.89 80:32406/TCP 4m -## Visit your new WordPress blog + **Note:** Minikube can only expose Services through `NodePort`.

The `EXTERNAL-IP` is always ``. + {: .note} -Now, we can visit the running WordPress app. Use the external IP of -the service that you obtained above. +3. Run the following command to get the IP Address for the WordPress Service: -``` -http:// -``` + minikube service wordpress --url -You should see the familiar WordPress init page. + The response should be like this: -![WordPress init page](WordPress.png "WordPress init page") + http://1.2.3.4:32406 -> Warning: Do not leave your WordPress installation on this page. If -> it is found by another user, they can set up a website on your -> instance and use it to serve potentially malicious content. You -> should either continue with the installation past the point at which -> you create your username and password, delete your instance, or set -> up a firewall to restrict access. +4. Copy the IP address, and load the page in your browser to view your site. -## Take down and restart your blog + You should see the WordPress set up page similar to the following screenshot. -Set up your WordPress blog and play around with it a bit. Then, take -down its pods and bring them back up again. Because you used -persistent disks, your blog state will be preserved. + ![wordpress-init](https://github.com/kubernetes/examples/blob/master/mysql-wordpress-pd/WordPress.png) -All of the resources are labeled with `app=wordpress`, so you can -easily bring them down using a label selector: + **Warning:** Do not leave your WordPress installation on this page. If another user finds it, they can set up a website on your instance and use it to serve malicious content.

Either install WordPress by creating a username and password or delete your instance. + {: .warning} -```shell -kubectl delete deployment,service -l app=wordpress -kubectl delete secret mysql-pass -``` +{% endcapture %} -Later, re-creating the resources with the original commands will pick -up the original disks with all your data intact. Because we did not -delete the PV Claims, no other pods in the cluster could claim them -after we deleted our pods. Keeping the PV Claims also ensured -recreating the Pods did not cause the PD to switch Pods. +{% capture cleanup %} -If you are ready to release your persistent volumes and the data on them, run: +1. Run the following command to delete your Secret: -```shell -kubectl delete pvc -l app=wordpress -``` + kubectl delete secret mysql-pass -And then delete the volume objects themselves: +2. Run the following commands to delete all Deployments and Services: -```shell -kubectl delete pv local-pv-1 local-pv-2 -``` + kubectl delete deployment -l app=wordpress + kubectl delete service -l app=wordpress -or +3. Run the following commands to delete the PersistentVolumeClaims and the PersistentVolumes: -```shell -kubectl delete pv wordpress-pv-1 wordpress-pv-2 -``` + kubectl delete pvc -l app=wordpress + kubectl delete pv local-pv-1 local-pv-2 + + **Note:** Any other Type of PersistentVolume would allow you to recreate the Deployments and Services at this point without losing data, but `hostPath` loses the data as soon as the Pod stops running. + {: .note} -## Next Steps +{% endcapture %} -* [Introspection and Debugging](http://kubernetes.io/docs/user-guide/introspection-and-debugging/) -* [Jobs](http://kubernetes.io/docs/user-guide/jobs/) may be useful to run SQL queries. -* [Exec](http://kubernetes.io/docs/user-guide/getting-into-containers/) -* [Port Forwarding](http://kubernetes.io/docs/user-guide/connecting-to-applications-port-forward/) +{% capture whatsnext %} + +* Learn more about [Introspection and Debugging](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-application-introspection/) +* Learn more about [Jobs](https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/) +* Learn more about [Port Forwarding](https://kubernetes.io/docs/tasks/access-application-cluster/port-forward-access-application-cluster/) +* Learn how to [Get a Shell to a Container](https://kubernetes.io/docs/tasks/debug-application-cluster/get-shell-running-container/) + +{% endcapture %} + +{% include templates/tutorial.md %} [![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/examples/mysql-wordpress-pd/README.md?pixel)]() diff --git a/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/local-volumes.yaml b/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/local-volumes.yaml new file mode 100644 index 0000000000..8964113336 --- /dev/null +++ b/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/local-volumes.yaml @@ -0,0 +1,27 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: local-pv-1 + labels: + type: local +spec: + capacity: + storage: 20Gi + accessModes: + - ReadWriteOnce + hostPath: + path: /tmp/data/pv-1 +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + name: local-pv-2 + labels: + type: local +spec: + capacity: + storage: 20Gi + accessModes: + - ReadWriteOnce + hostPath: + path: /tmp/data/pv-2 diff --git a/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/mysql-deployment.yaml b/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/mysql-deployment.yaml new file mode 100644 index 0000000000..2253600de6 --- /dev/null +++ b/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/mysql-deployment.yaml @@ -0,0 +1,61 @@ +apiVersion: v1 +kind: Service +metadata: + name: wordpress-mysql + labels: + app: wordpress +spec: + ports: + - port: 3306 + selector: + app: wordpress + tier: mysql + clusterIP: None +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: mysql-pv-claim + labels: + app: wordpress +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 20Gi +--- +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: wordpress-mysql + labels: + app: wordpress +spec: + strategy: + type: Recreate + template: + metadata: + labels: + app: wordpress + tier: mysql + spec: + containers: + - image: mysql:5.6 + name: mysql + env: + - name: MYSQL_ROOT_PASSWORD + valueFrom: + secretKeyRef: + name: mysql-pass + key: password + ports: + - containerPort: 3306 + name: mysql + volumeMounts: + - name: mysql-persistent-storage + mountPath: /var/lib/mysql + volumes: + - name: mysql-persistent-storage + persistentVolumeClaim: + claimName: mysql-pv-claim diff --git a/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/wordpress-deployment.yaml b/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/wordpress-deployment.yaml new file mode 100644 index 0000000000..e15edc5998 --- /dev/null +++ b/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/wordpress-deployment.yaml @@ -0,0 +1,63 @@ +apiVersion: v1 +kind: Service +metadata: + name: wordpress + labels: + app: wordpress +spec: + ports: + - port: 80 + selector: + app: wordpress + tier: frontend + type: LoadBalancer +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: wp-pv-claim + labels: + app: wordpress +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 20Gi +--- +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: wordpress + labels: + app: wordpress +spec: + strategy: + type: Recreate + template: + metadata: + labels: + app: wordpress + tier: frontend + spec: + containers: + - image: wordpress:4.8-apache + name: wordpress + env: + - name: WORDPRESS_DB_HOST + value: wordpress-mysql + - name: WORDPRESS_DB_PASSWORD + valueFrom: + secretKeyRef: + name: mysql-pass + key: password + ports: + - containerPort: 80 + name: wordpress + volumeMounts: + - name: wordpress-persistent-storage + mountPath: /var/www/html + volumes: + - name: wordpress-persistent-storage + persistentVolumeClaim: + claimName: wp-pv-claim diff --git a/update-imported-tutorials.py b/update-imported-tutorials.py index ba235d1ce5..81b14181f6 100755 --- a/update-imported-tutorials.py +++ b/update-imported-tutorials.py @@ -42,7 +42,12 @@ TUTORIALS = [ }), ('mysql-wordpress-pd/README.md', './docs/tutorials/stateful-application/mysql-wordpress-persistent-volume.md', - "Example: WordPress and MySQL with Persistent Volumes", {}), + "Example: Deploying WordPress and MySQL with Persistent Volumes", + { + "mysql-wordpress-pd/local-volumes.yaml": "./docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/local-volumes.yaml", + "mysql-wordpress-pd/mysql-deployment.yaml": "./docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/mysql-deployment.yaml", + "mysql-wordpress-pd/wordpress-deployment.yaml": "./docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/wordpress-deployment.yaml", + }), ('cassandra/README.md', './docs/tutorials/stateful-application/cassandra.md', "Example: Deploying Cassandra with Stateful Sets", From acff65891f4db77eee0cac16d0ba32ae2fecf299 Mon Sep 17 00:00:00 2001 From: Ahmet Alp Balkan Date: Fri, 18 Aug 2017 17:10:40 -0700 Subject: [PATCH 107/129] tutorials/guestbook, tutorials/cassandra: import latest (#4775) * tutorials/guestbook: fix broken links Importing from kubernetes/examples repository. Signed-off-by: Ahmet Alp Balkan * Import newer versions for guestbook and cassandra Signed-off-by: Ahmet Alp Balkan --- .../stateful-application/cassandra.md | 196 ++++++++---------- .../stateless-application/guestbook.md | 12 +- 2 files changed, 93 insertions(+), 115 deletions(-) diff --git a/docs/tutorials/stateful-application/cassandra.md b/docs/tutorials/stateful-application/cassandra.md index f6172f4321..d17d6d9be6 100644 --- a/docs/tutorials/stateful-application/cassandra.md +++ b/docs/tutorials/stateful-application/cassandra.md @@ -46,7 +46,7 @@ Deploying stateful distributed applications, like Cassandra, within a clustered **Cassandra Docker** -The pods use the [```gcr.io/google-samples/cassandra:v12```](https://github.com/kubernetes/examples/blob/master/cassandra/image/Dockerfile) +The Pods use the [`gcr.io/google-samples/cassandra:v12`](https://github.com/kubernetes/examples/blob/master/cassandra/image/Dockerfile) image from Google's [container registry](https://cloud.google.com/container-registry/docs/). The docker is based on `debian:jessie` and includes OpenJDK 8. This image includes a standard Cassandra installation from the Apache Debian repo. By using environment variables you can change values that are inserted into `cassandra.yaml`. @@ -75,31 +75,30 @@ To complete this tutorial, you should already have a basic familiarity with [Pod * Have a supported Kubernetes Cluster running -**Note:** Please read the [getting started guides](https://kubernetes.io/docs/setup/pick-right-solution/) if you do not already have a cluster. +**Note:** Please read the [getting started guides](https://kubernetes.io/docs/setup/pick-right-solution/) if you do not already have a cluster. +{: .note} ### Additional Minikube Setup Instructions -**Warning:** [Minikube](https://kubernetes.io/docs/getting-started-guides/minikube/) defaults to 1024MB of memory and 1 CPU which results in an insufficient resource errors. +**Caution:** [Minikube](https://kubernetes.io/docs/getting-started-guides/minikube/) defaults to 1024MB of memory and 1 CPU which results in an insufficient resource errors during this tutorial. +{: .caution} To avoid these errors, run minikube with: -``` -minikube start --memory 5120 --cpus=4 -``` + minikube start --memory 5120 --cpus=4 + {% endcapture %} {% capture lessoncontent %} ## Creating a Cassandra Headless Service A Kubernetes [Service](https://kubernetes.io/docs/concepts/services-networking/service/) describes a set of [Pods](https://kubernetes.io/docs/concepts/workloads/pods/pod/) that perform the same task. -The following `Service` is used for DNS lookups between Cassandra pods and clients within the Kubernetes Cluster. +The following `Service` is used for DNS lookups between Cassandra Pods and clients within the Kubernetes Cluster. -1. `cd` to the folder you saved the .yaml files. -2. Create a `Service` to track all Cassandra StatefulSet Nodes from the following `.yaml` file: +1. Launch a terminal window in the directory you downloaded the manifest files. +2. Create a `Service` to track all Cassandra StatefulSet Nodes from the `cassandra-service.yaml` file: -```shell -kubectl create -f cassandra-service.yaml -``` + kubectl create -f cassandra-service.yaml {% include code.html language="yaml" file="cassandra-service.yaml" ghlink="/docs/tutorials/stateful-application/cassandra-service.yaml" %} @@ -107,31 +106,26 @@ kubectl create -f cassandra-service.yaml Get the Cassandra `Service`. -```shell -kubectl get svc cassandra -``` + kubectl get svc cassandra The response should be -```console -NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE -cassandra None 9042/TCP 45s -``` + NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE + cassandra None 9042/TCP 45s If anything else returns, the service was not successfully created. Read [Debug Services](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-service/) for common issues. ## Using a StatefulSet to Create a Cassandra Ring -The StatefulSet manifest, included below, creates a Cassandra ring that consists of three pods. +The StatefulSet manifest, included below, creates a Cassandra ring that consists of three Pods. -**Note:** This example uses the default provisioner for Minikube. Please update the following StatefulSet for the cloud you are working with. +**Note:** This example uses the default provisioner for Minikube. Please update the following StatefulSet for the cloud you are working with. +{: .note} 1. Update the StatefulSet if necessary. -2. Create the Cassandra StatefulSet from the following `.yaml` file: +2. Create the Cassandra StatefulSet from the `cassandra-statefulset.yaml` file: -```shell -kubectl create -f cassandra-statefulset.yaml -``` + kubectl create -f cassandra-statefulset.yaml {% include code.html language="yaml" file="cassandra-statefulset.yaml" ghlink="/docs/tutorials/stateful-application/cassandra-statefulset.yaml" %} @@ -139,131 +133,115 @@ kubectl create -f cassandra-statefulset.yaml 1. Get the Cassandra StatefulSet: -```shell -kubectl get statefulset cassandra -``` + kubectl get statefulset cassandra The response should be -```console -NAME DESIRED CURRENT AGE -cassandra 3 0 13s -``` + NAME DESIRED CURRENT AGE + cassandra 3 0 13s - The StatefulSet resource deploys pods sequentially. + The StatefulSet resource deploys Pods sequentially. -{:start="2"} 2. Get the Pods to see the ordered creation status: -```shell -kubectl get pods -l="app=cassandra" -NAME READY STATUS RESTARTS AGE -cassandra-0 1/1 Running 0 1m -cassandra-1 0/1 ContainerCreating 0 8s -``` + kubectl get pods -l="app=cassandra" + + The response should be + + NAME READY STATUS RESTARTS AGE + cassandra-0 1/1 Running 0 1m + cassandra-1 0/1 ContainerCreating 0 8s -**Note:** It can take up to ten minutes for all three pods to deploy. + **Note:** It can take up to ten minutes for all three Pods to deploy. + {: .note} -Once all pods are deployed, the same command returns: + Once all Pods are deployed, the same command returns: -```shell -kubectl get pods -l="app=cassandra" -NAME READY STATUS RESTARTS AGE -cassandra-0 1/1 Running 0 10m -cassandra-1 1/1 Running 0 9m -cassandra-2 1/1 Running 0 8m -``` + NAME READY STATUS RESTARTS AGE + cassandra-0 1/1 Running 0 10m + cassandra-1 1/1 Running 0 9m + cassandra-2 1/1 Running 0 8m -{:start="3"} 3. Run the Cassandra utility nodetool to display the status of the ring. -``` -kubectl exec cassandra-0 -- nodetool status -``` + kubectl exec cassandra-0 -- nodetool status -```console -Datacenter: DC1-K8Demo -====================== -Status=Up/Down -|/ State=Normal/Leaving/Joining/Moving --- Address Load Tokens Owns (effective) Host ID Rack -UN 10.4.2.4 65.26 KiB 32 63.7% a9d27f81-6783-461d-8583-87de2589133e Rack1-K8Demo -UN 10.4.0.4 102.04 KiB 32 66.7% 5559a58c-8b03-47ad-bc32-c621708dc2e4 Rack1-K8Demo -UN 10.4.1.4 83.06 KiB 32 69.6% 9dce943c-581d-4c0e-9543-f519969cc805 Rack1-K8Demo -``` + The response is: + + Datacenter: DC1-K8Demo + ====================== + Status=Up/Down + |/ State=Normal/Leaving/Joining/Moving + -- Address Load Tokens Owns (effective) Host ID Rack + UN 172.17.0.5 83.57 KiB 32 74.0% e2dd09e6-d9d3-477e-96c5-45094c08db0f Rack1-K8Demo + UN 172.17.0.4 101.04 KiB 32 58.8% f89d6835-3a42-4419-92b3-0e62cae1479c Rack1-K8Demo + UN 172.17.0.6 84.74 KiB 32 67.1% a6a1e8c2-3dc5-4417-b1a0-26507af2aaad Rack1-K8Demo ## Modifying the Cassandra StatefulSet Use `kubectl edit` to modify the size of of a Cassandra StatefulSet. 1. Run the following command: -```shell -kubectl edit statefulset cassandra -``` - This command opens an editor in your terminal. The line you need to change is `Replicas`. + kubectl edit statefulset cassandra + + This command opens an editor in your terminal. The line you need to change is the `replicas` field. **Note:** The following sample is an excerpt of the StatefulSet file. + {: .note} -```console -# Please edit the object below. Lines beginning with a '#' will be ignored, -# and an empty file will abort the edit. If an error occurs while saving this file will be -# reopened with the relevant failures. -# -apiVersion: apps/v1beta1 -kind: StatefulSet -metadata: - creationTimestamp: 2016-08-13T18:40:58Z - generation: 1 - labels: - app: cassandra - name: cassandra - namespace: default - resourceVersion: "323" - selfLink: /apis/apps/v1beta1/namespaces/default/statefulsets/cassandra - uid: 7a219483-6185-11e6-a910-42010a8a0fc0 -spec: - replicas: 3 -``` + ```yaml + # Please edit the object below. Lines beginning with a '#' will be ignored, + # and an empty file will abort the edit. If an error occurs while saving this file will be + # reopened with the relevant failures. + # + apiVersion: apps/v1beta1 + kind: StatefulSet + metadata: + creationTimestamp: 2016-08-13T18:40:58Z + generation: 1 + labels: + app: cassandra + name: cassandra + namespace: default + resourceVersion: "323" + selfLink: /apis/apps/v1beta1/namespaces/default/statefulsets/cassandra + uid: 7a219483-6185-11e6-a910-42010a8a0fc0 + spec: + replicas: 3 + ``` -{:start="2"} -2. Increase the number of replicas to 4, and then save the manifest. +2. Change the number of replicas to 4, and then save the manifest. - The StatefulSet now contains 4 pods. + The StatefulSet now contains 4 Pods. 3. Get the Cassandra StatefulSet to verify: -```shell -kubectl get statefulset cassandra -``` + kubectl get statefulset cassandra - The response should be + The response should be -```console -NAME DESIRED CURRENT AGE -cassandra 4 4 36m -``` + NAME DESIRED CURRENT AGE + cassandra 4 4 36m + {% endcapture %} {% capture cleanup %} Deleting or scaling a StatefulSet down does not delete the volumes associated with the StatefulSet. This ensures safety first: your data is more valuable than an auto purge of all related StatefulSet resources. -**Warning:** Depending on the storage class and reclaim policy, deleting the Persistent Volume Claims may cause the associated volumes to also be deleted. Never assume you’ll be able to access data if its volume claims are deleted. +**Warning:** Depending on the storage class and reclaim policy, deleting the Persistent Volume Claims may cause the associated volumes to also be deleted. Never assume you’ll be able to access data if its volume claims are deleted. +{: .warning} 1. Run the following commands to delete everything in a `StatefulSet`: -```shell -grace=$(kubectl get po cassandra-0 -o=jsonpath='{.spec.terminationGracePeriodSeconds}') \ - && kubectl delete statefulset -l app=cassandra \ - && echo "Sleeping $grace" \ - && sleep $grace \ - && kubectl delete pvc -l app=cassandra -``` + grace=$(kubectl get po cassandra-0 -o=jsonpath='{.spec.terminationGracePeriodSeconds}') \ + && kubectl delete statefulset -l app=cassandra \ + && echo "Sleeping $grace" \ + && sleep $grace \ + && kubectl delete pvc -l app=cassandra 2. Run the following command to delete the Cassandra `Service`. -```shell -kubectl delete service -l app=cassandra -``` + kubectl delete service -l app=cassandra {% endcapture %} diff --git a/docs/tutorials/stateless-application/guestbook.md b/docs/tutorials/stateless-application/guestbook.md index 331e489922..ca47e5d16e 100644 --- a/docs/tutorials/stateless-application/guestbook.md +++ b/docs/tutorials/stateless-application/guestbook.md @@ -61,12 +61,12 @@ This tutorial shows you how to build and deploy a simple, multi-tier web applica {% include task-tutorial-prereqs.md %} Download the following configuration files: -1. [redis-master-deployment.yaml](/docs/tutorials/stateless-application/guestbook/redis-master-deployment.yaml) -1. [redis-master-service.yaml](/docs/tutorials/stateless-application/guestbook/redis-master-service.yaml) -1. [redis-slave-deployment.yaml](/docs/tutorials/stateless-application/guestbook/redis-slave-deployment.yaml) -1. [redis-slave-service.yaml](/docs/tutorials/stateless-application/guestbook/redis-slave-service.yaml) -1. [frontend-deployment.yaml](/docs/tutorials/stateless-application/guestbook/frontend-deployment.yaml) -1. [frontend-service.yaml](/docs/tutorials/stateless-application/guestbook/frontend-service.yaml) +1. [redis-master-deployment.yaml](https://kubernetes.io/docs/tutorials/stateless-application/guestbook/redis-master-deployment.yaml) +1. [redis-master-service.yaml](https://kubernetes.io/docs/tutorials/stateless-application/guestbook/redis-master-service.yaml) +1. [redis-slave-deployment.yaml](https://kubernetes.io/docs/tutorials/stateless-application/guestbook/redis-slave-deployment.yaml) +1. [redis-slave-service.yaml](https://kubernetes.io/docs/tutorials/stateless-application/guestbook/redis-slave-service.yaml) +1. [frontend-deployment.yaml](https://kubernetes.io/docs/tutorials/stateless-application/guestbook/frontend-deployment.yaml) +1. [frontend-service.yaml](https://kubernetes.io/docs/tutorials/stateless-application/guestbook/frontend-service.yaml) {% endcapture %} From 71715a8ce2945bd003ba9307b52509c51c61d85d Mon Sep 17 00:00:00 2001 From: Weibin Lin Date: Fri, 18 Aug 2017 10:35:38 +0800 Subject: [PATCH 108/129] Update rollback-daemon-set.md --- docs/tasks/manage-daemon/rollback-daemon-set.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tasks/manage-daemon/rollback-daemon-set.md b/docs/tasks/manage-daemon/rollback-daemon-set.md index cd1d9fa63f..1bcef271c4 100644 --- a/docs/tasks/manage-daemon/rollback-daemon-set.md +++ b/docs/tasks/manage-daemon/rollback-daemon-set.md @@ -16,7 +16,7 @@ This page shows how to perform a rollback on a DaemonSet. * The DaemonSet rollout history and DaemonSet rollback features are only supported in `kubectl` in Kubernetes version 1.7 or later. * Make sure you know how to [perform a rolling update on a - DaemonSet](/docs/tasks/manage-daemon/update-daemon-set/) + DaemonSet](/docs/tasks/manage-daemon/update-daemon-set/). {% endcapture %} @@ -147,7 +147,7 @@ have revision 1 and 2 in the system, and roll back from revision 2 to revision ## Troubleshooting * See [troubleshooting DaemonSet rolling - update](/docs/tasks/manage-daemon/update-daemon-set/#troubleshooting) + update](/docs/tasks/manage-daemon/update-daemon-set/#troubleshooting). {% endcapture %} From 93409bb6c0310a3d5edc1b9d4629c5e84f61b0a2 Mon Sep 17 00:00:00 2001 From: Qiming Teng Date: Fri, 18 Aug 2017 10:47:22 +0800 Subject: [PATCH 109/129] Improve daemonset doc for more taints tolerated --- .../concepts/workloads/controllers/daemonset.md | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/docs/concepts/workloads/controllers/daemonset.md b/docs/concepts/workloads/controllers/daemonset.md index 3e06d892c6..54e85d28aa 100644 --- a/docs/concepts/workloads/controllers/daemonset.md +++ b/docs/concepts/workloads/controllers/daemonset.md @@ -98,9 +98,20 @@ when the pod is created, so it is ignored by the scheduler). Therefore: - DaemonSet controller can make pods even when the scheduler has not been started, which can help cluster bootstrap. -Daemon pods do respect [taints and tolerations](/docs/concepts/configuration/assign-pod-node/#taints-and-tolerations-beta-feature), but they are -created with `NoExecute` tolerations for the `node.alpha.kubernetes.io/notReady` and `node.alpha.kubernetes.io/unreachable` -taints with no `tolerationSeconds`. This ensures that when the `TaintBasedEvictions` alpha feature is enabled, +Daemon pods do respect [taints and tolerations](/docs/concepts/configuration/assign-pod-node/#taints-and-tolerations-beta-feature), +but they are created with `NoExecute` tolerations for the following taints with no `tolerationSeconds`: + + - `node.alpha.kubernetes.io/notReady` + - `node.alpha.kubernetes.io/unreachable` + - `node.alpha.kubernetes.io/memoryPressure` + - `node.alpha.kubernetes.io/diskPressure` + +When the support to critical pods is enabled and the pods in a DaemonSet are +labelled as critical, the Daemon pods are created with an additional +`NoExecute` toleration for the `node.alpha.kubernetes.io/outOfDisk` taint with +no `tolerationSeconds`. + +This ensures that when the `TaintBasedEvictions` alpha feature is enabled, they will not be evicted when there are node problems such as a network partition. (When the `TaintBasedEvictions` feature is not enabled, they are also not evicted in these scenarios, but due to hard-coded behavior of the NodeController rather than due to tolerations). From e0f0a3ab739532b6b37d2cbc63d8180c3c43a355 Mon Sep 17 00:00:00 2001 From: Weibin Lin Date: Fri, 18 Aug 2017 20:05:09 +0800 Subject: [PATCH 110/129] Update README.md fixed typos --- docs/user-guide/configmap/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/user-guide/configmap/README.md b/docs/user-guide/configmap/README.md index 9a23a29a01..f4c4022053 100644 --- a/docs/user-guide/configmap/README.md +++ b/docs/user-guide/configmap/README.md @@ -74,7 +74,7 @@ KUBE_CONFIG_2=value-2 ## Step Three: Create a pod that sets the command line using ConfigMap Use the [`command-pod.yaml`](command-pod.yaml) file to create a Pod with a container -whose command is injected with the keys of a ConfigMap +whose command is injected with the keys of a ConfigMap: ```shell $ kubectl create -f docs/user-guide/configmap/command-pod.yaml @@ -89,7 +89,7 @@ value-1 value-2 ## Step Four: Create a pod that consumes a configMap in a volume -Pods can also consume ConfigMaps in volumes. Use the [`volume-pod.yaml`](volume-pod.yaml) file to create a Pod that consume the ConfigMap in a volume. +Pods can also consume ConfigMaps in volumes. Use the [`volume-pod.yaml`](volume-pod.yaml) file to create a Pod that consumes the ConfigMap in a volume. ```shell $ kubectl create -f docs/user-guide/configmap/volume-pod.yaml From ec7116258d142a9e518585fe59fb8ae3bf2d9dbf Mon Sep 17 00:00:00 2001 From: Weibin Lin Date: Tue, 22 Aug 2017 06:48:56 +0800 Subject: [PATCH 111/129] Update security-context.md (#5075) * Update security-context.md * Update security-context.md --- docs/tasks/configure-pod-container/security-context.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/configure-pod-container/security-context.md b/docs/tasks/configure-pod-container/security-context.md index 586a570595..92a7c00935 100644 --- a/docs/tasks/configure-pod-container/security-context.md +++ b/docs/tasks/configure-pod-container/security-context.md @@ -332,7 +332,7 @@ need to set the `level` section. This sets the [Multi-Category Security (MCS)](https://selinuxproject.org/page/NB_MLS) label given to all Containers in the Pod as well as the Volumes. -**Warning:** After you specify an MCS label for a Pod, all Pods with the same label will able to access the Volume. So if you need inter-Pod protection, you must ensure each Pod is assigned a unique MCS label. +**Warning:** After you specify an MCS label for a Pod, all Pods with the same label can access the Volume. If you need inter-Pod protection, you must assign a unique MCS label to each Pod. {: .warning} {% endcapture %} From 401d6026cc8ab7117e2b6572644865416d5db7be Mon Sep 17 00:00:00 2001 From: Weibin Lin Date: Sat, 19 Aug 2017 10:42:29 +0800 Subject: [PATCH 112/129] Update links and fix typos Update links and fix typos in /tools/kompose/user-guide.md --- docs/tools/kompose/user-guide.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/tools/kompose/user-guide.md b/docs/tools/kompose/user-guide.md index 1a54860bba..65e467989c 100644 --- a/docs/tools/kompose/user-guide.md +++ b/docs/tools/kompose/user-guide.md @@ -34,19 +34,19 @@ We have multiple ways to install Kompose. Our preferred method is downloading th ### GitHub release -Kompose is released via GitHub on a three-week cycle, you can see all current releases on the [GitHub release page](https://github.com/kubernetes-incubator/kompose/releases). +Kompose is released via GitHub on a three-week cycle, you can see all current releases on the [GitHub release page](https://github.com/kubernetes/kompose/releases). -The current release we use is `0.5.0`. +The current release we use is `1.0.0`. ```sh # Linux -curl -L https://github.com/kubernetes-incubator/kompose/releases/download/v0.5.0/kompose-linux-amd64 -o kompose +curl -L https://github.com/kubernetes/kompose/releases/download/v1.0.0/kompose-linux-amd64 -o kompose # macOS -curl -L https://github.com/kubernetes-incubator/kompose/releases/download/v0.5.0/kompose-darwin-amd64 -o kompose +curl -L https://github.com/kubernetes/kompose/releases/download/v1.0.0/kompose-darwin-amd64 -o kompose # Windows -curl -L https://github.com/kubernetes-incubator/kompose/releases/download/v0.5.0/kompose-windows-amd64.exe -o kompose.exe +curl -L https://github.com/kubernetes/kompose/releases/download/v1.0.0/kompose-windows-amd64.exe -o kompose.exe ``` Make the binary executable and move it to your PATH (e.g. `/usr/local/bin`) @@ -127,7 +127,7 @@ frontend-service.yaml mongodb-deployment.yaml redis-slave redis-master-deployment.yaml ``` -When multiple docker-compose files are provided the configuration is merged. Any configuration that is common will be over ridden by subsequent file. +When multiple docker-compose files are provided the configuration is merged. Any configuration that is common will be overridden by subsequent file. Using `--bundle, --dab` to specify a DAB file as below: @@ -300,7 +300,7 @@ file "redis-rc.yaml" created file "web-rc.yaml" created ``` -The `*-rc.yaml` files contain the Replication Controller objects. If you want to specify replicas (default is 1), use `--replicas` flag: `$ kompose convert --rc --replicas 3` +The `*-rc.yaml` files contain the Replication Controller objects. If you want to specify replicas (default is 1), use `--replicas` flag: `$ kompose convert --rc --replicas 3`. ```console $ kompose convert --ds @@ -310,7 +310,7 @@ file "redis-daemonset.yaml" created file "web-daemonset.yaml" created ``` -The `*-daemonset.yaml` files contain the Daemon Set objects +The `*-daemonset.yaml` files contain the Daemon Set objects. If you want to generate a Chart to be used with [Helm](https://github.com/kubernetes/helm) simply do: From 25608e206e8188333c980e51671cac262e2ba417 Mon Sep 17 00:00:00 2001 From: Weibin Lin Date: Sat, 19 Aug 2017 11:00:48 +0800 Subject: [PATCH 113/129] Update service-accounts-admin.md fixed typos --- docs/admin/service-accounts-admin.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/admin/service-accounts-admin.md b/docs/admin/service-accounts-admin.md index 275d5b5c71..0f01e29ca1 100644 --- a/docs/admin/service-accounts-admin.md +++ b/docs/admin/service-accounts-admin.md @@ -15,7 +15,7 @@ incomplete features are referred to in order to better describe service accounts ## User accounts vs service accounts -Kubernetes distinguished between the concept of a user account and a service accounts +Kubernetes distinguishes between the concept of a user account and a service account for a number of reasons: - User accounts are for humans. Service accounts are for processes, which @@ -60,9 +60,9 @@ It acts synchronously to modify pods as they are created or updated. When this p TokenController runs as part of controller-manager. It acts asynchronously. It: - observes serviceAccount creation and creates a corresponding Secret to allow API access. -- observes serviceAccount deletion and deletes all corresponding ServiceAccountToken Secrets -- observes secret addition, and ensures the referenced ServiceAccount exists, and adds a token to the secret if needed -- observes secret deletion and removes a reference from the corresponding ServiceAccount if needed +- observes serviceAccount deletion and deletes all corresponding ServiceAccountToken Secrets. +- observes secret addition, and ensures the referenced ServiceAccount exists, and adds a token to the secret if needed. +- observes secret deletion and removes a reference from the corresponding ServiceAccount if needed. You must pass a service account private key file to the token controller in the controller-manager by using the `--service-account-private-key-file` option. The private key will be used to sign generated service account tokens. From 7f01590fe30aac615ed92ed87da2fe1efbec8bff Mon Sep 17 00:00:00 2001 From: Weibin Lin Date: Sat, 19 Aug 2017 15:22:48 +0800 Subject: [PATCH 114/129] Update create-cluster-kubeadm.md adjust format --- .../independent/create-cluster-kubeadm.md | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/docs/setup/independent/create-cluster-kubeadm.md b/docs/setup/independent/create-cluster-kubeadm.md index e4665c5269..5e7a3d0189 100644 --- a/docs/setup/independent/create-cluster-kubeadm.md +++ b/docs/setup/independent/create-cluster-kubeadm.md @@ -80,7 +80,7 @@ cloud providers is difficult. ### (1/4) Installing kubeadm on your hosts -See [Installing kubeadm](/docs/setup/independent/install-kubeadm/) +See [Installing kubeadm](/docs/setup/independent/install-kubeadm/). **Note:** If you already have kubeadm installed, you should do a `apt-get update && apt-get upgrade` or `yum update` to get the latest version of kubeadm. @@ -211,7 +211,7 @@ 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/latest/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` @@ -224,7 +224,7 @@ kubectl apply -f http://docs.projectcalico.org/v2.4/getting-started/kubernetes/i {% capture canal %} -The official Canal set-up guide is [here](https://github.com/projectcalico/canal/tree/master/k8s-install) +The official Canal set-up guide is [here](https://github.com/projectcalico/canal/tree/master/k8s-install). **Note:** - For Canal to work correctly, `--pod-network-cidr=10.244.0.0/16` has to be passed to `kubeadm init`. @@ -251,7 +251,7 @@ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documen {% capture romana %} -The official Romana set-up guide is [here](https://github.com/romana/romana/tree/master/containerize#using-kubeadm) +The official Romana set-up guide is [here](https://github.com/romana/romana/tree/master/containerize#using-kubeadm). **Note:** Romana works on `amd64` only. @@ -262,7 +262,7 @@ kubectl apply -f https://raw.githubusercontent.com/romana/romana/master/containe {% capture weave_net %} -The official Weave Net set-up guide is [here](https://www.weave.works/docs/net/latest/kube-addon/) +The official Weave Net set-up guide is [here](https://www.weave.works/docs/net/latest/kube-addon/). **Note:** Weave Net works on `amd64`, `arm` and `arm64` without any extra action required. @@ -538,9 +538,7 @@ You may have trouble in the configuration if you see Pod statuses like `RunConta second network interface, not the first one). By default, it doesn't do this and kubelet ends-up using first non-loopback network interface, which is usually NATed. Workaround: Modify `/etc/hosts`, take a look at this - [`Vagrantfile`][ubuntu-vagrantfile] for how this can be achieved. - -[ubuntu-vagrantfile]: https://github.com/errordeveloper/k8s-playground/blob/22dd39dfc06111235620e6c4404a96ae146f26fd/Vagrantfile#L11) + `Vagrantfile`[ubuntu-vagrantfile](https://github.com/errordeveloper/k8s-playground/blob/22dd39dfc06111235620e6c4404a96ae146f26fd/Vagrantfile#L11) for how this can be achieved. 1. The following error indicates a possible certificate mismatch. @@ -559,9 +557,8 @@ Another workaround is to overwrite the default `kubeconfig` for the "admin" user sudo chown $(id -u):$(id -g) $HOME/.kube/config ``` -1. If you are using CentOS and encounter difficulty while setting up the master node: - - Verify that your Docker cgroup driver matches the kubelet config: +1. If you are using CentOS and encounter difficulty while setting up the master node, +verify that your Docker cgroup driver matches the kubelet config: ``` docker info |grep -i cgroup From 642d35b47ba1ba60618909da0643141b6507a560 Mon Sep 17 00:00:00 2001 From: Weibin Lin Date: Sun, 20 Aug 2017 11:54:19 +0800 Subject: [PATCH 115/129] Update access-cluster.md Line 203: remove redundant "it" --- docs/tasks/access-application-cluster/access-cluster.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/access-application-cluster/access-cluster.md b/docs/tasks/access-application-cluster/access-cluster.md index 4d3335521d..b0b38955fe 100644 --- a/docs/tasks/access-application-cluster/access-cluster.md +++ b/docs/tasks/access-application-cluster/access-cluster.md @@ -200,7 +200,7 @@ You have several options for connecting to nodes, pods and services from outside or it may expose it to the internet. Think about whether the service being exposed is secure. Does it do its own authentication? - Place pods behind services. To access one specific pod from a set of replicas, such as for debugging, - place a unique label on the pod it and create a new service which selects this label. + place a unique label on the pod and create a new service which selects this label. - In most cases, it should not be necessary for application developer to directly access nodes via their nodeIPs. - Access services, nodes, or pods using the Proxy Verb. From c179046d1ebac4f8f87c0b547ecedd9a7dd60e55 Mon Sep 17 00:00:00 2001 From: Anatoli Babenia Date: Sun, 20 Aug 2017 16:32:01 +0300 Subject: [PATCH 116/129] deploy-intro.html Simplify explanation of Deployment In particular mention that Deployment is a configuration --- docs/tutorials/kubernetes-basics/deploy-intro.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/tutorials/kubernetes-basics/deploy-intro.html b/docs/tutorials/kubernetes-basics/deploy-intro.html index 20b00cff7d..d7b7e731cb 100644 --- a/docs/tutorials/kubernetes-basics/deploy-intro.html +++ b/docs/tutorials/kubernetes-basics/deploy-intro.html @@ -27,7 +27,10 @@ title: Using kubectl to Create a Deployment

Kubernetes Deployments

- Once you have a running Kubernetes cluster, you can deploy your containerized applications on top of it. To do so, you create a Kubernetes Deployment. The Deployment is responsible for creating and updating instances of your application. Once you've created a Deployment, the Kubernetes master schedules the application instances that the Deployment creates onto individual Nodes in the cluster. + Once you have a running Kubernetes cluster, you can deploy your containerized applications on top of it. + To do so, you create a Kubernetes Deployment configuration. The Deployment instructs Kubernetes + how to create and update instances of your application. Once you've created a Deployment, the Kubernetes + master schedules mentioned application instances onto individual Nodes in the cluster.

Once the application instances are created, a Kubernetes Deployment Controller continuously monitors those instances. If the Node hosting an instance goes down or is deleted, the Deployment controller replaces it. This provides a self-healing mechanism to address machine failure or maintenance.

From 745facc260bfde145c65c1a2065ab29613d813c4 Mon Sep 17 00:00:00 2001 From: Johanan Liebermann Date: Mon, 21 Aug 2017 15:57:45 +0300 Subject: [PATCH 117/129] Update manage-compute-resources-container.md Add a missing period. --- .../configuration/manage-compute-resources-container.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/concepts/configuration/manage-compute-resources-container.md b/docs/concepts/configuration/manage-compute-resources-container.md index b9077f63f4..e747e42642 100644 --- a/docs/concepts/configuration/manage-compute-resources-container.md +++ b/docs/concepts/configuration/manage-compute-resources-container.md @@ -79,7 +79,7 @@ Mi, Ki. For example, the following represent roughly the same value: Here's an example. The following Pod has two Containers. Each Container has a request of 0.25 cpu -and 64MiB (226 bytes) of memory Each Container has a limit of 0.5 +and 64MiB (226 bytes) of memory. Each Container has a limit of 0.5 cpu and 128MiB of memory. You can say the Pod has a request of 0.5 cpu and 128 MiB of memory, and a limit of 1 cpu and 256MiB of memory. From ca88e8825a64877ce5722f608bd61f17f075f020 Mon Sep 17 00:00:00 2001 From: Anthony Date: Tue, 22 Aug 2017 07:19:21 +0800 Subject: [PATCH 118/129] Update federation-service-discovery.md (#5052) * Update federation-service-discovery.md add "." to the sentence * Update federation-service-discovery.md --- docs/tasks/federation/federation-service-discovery.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/tasks/federation/federation-service-discovery.md b/docs/tasks/federation/federation-service-discovery.md index 3ead57bb01..b71bae58e3 100644 --- a/docs/tasks/federation/federation-service-discovery.md +++ b/docs/tasks/federation/federation-service-discovery.md @@ -227,8 +227,8 @@ due to caching by intermediate DNS servers. 1. Notice that there is a normal ('A') record for each service shard that has at least one healthy backend endpoint. For example, in us-central1-a, 104.197.247.191 is the external IP address of the service shard in that zone, and in asia-east1-a the address is 130.211.56.221. 2. Similarly, there are regional 'A' records which include all healthy shards in that region. For example, 'us-central1'. These regional records are useful for clients which do not have a particular zone preference, and as a building block for the automated locality and failover mechanism described below. -2. For zones where there are currently no healthy backend endpoints, a CNAME ('Canonical Name') record is used to alias (automatically redirect) those queries to the next closest healthy zone. In the example, the service shard in us-central1-f currently has no healthy backend endpoints (i.e. Pods), so a CNAME record has been created to automatically redirect queries to other shards in that region (us-central1 in this case). -3. Similarly, if no healthy shards exist in the enclosing region, the search progresses further afield. In the europe-west1-d availability zone, there are no healthy backends, so queries are redirected to the broader europe-west1 region (which also has no healthy backends), and onward to the global set of healthy addresses (' nginx.mynamespace.myfederation.svc.example.com.') +3. For zones where there are currently no healthy backend endpoints, a CNAME ('Canonical Name') record is used to alias (automatically redirect) those queries to the next closest healthy zone. In the example, the service shard in us-central1-f currently has no healthy backend endpoints (i.e. Pods), so a CNAME record has been created to automatically redirect queries to other shards in that region (us-central1 in this case). +4. Similarly, if no healthy shards exist in the enclosing region, the search progresses further afield. In the europe-west1-d availability zone, there are no healthy backends, so queries are redirected to the broader europe-west1 region (which also has no healthy backends), and onward to the global set of healthy addresses (' nginx.mynamespace.myfederation.svc.example.com.'). The above set of DNS records is automatically kept in sync with the current state of health of all service shards globally by the @@ -355,7 +355,7 @@ how to bring up a cluster federation correctly (or have your cluster administrat #### I can create a federated service successfully against the cluster federation API, but no matching services are created in my underlying clusters Check that: -1. Your clusters are correctly registered in the Cluster Federation API (`kubectl describe clusters`) +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 -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`). @@ -365,7 +365,7 @@ Check that: 1. Your federation name, DNS provider, DNS domain name are configured correctly. Consult the [federation admin guide](/docs/admin/federation/) or [tutorial](https://github.com/kelseyhightower/kubernetes-cluster-federation) to learn how to configure your Cluster Federation system's DNS provider (or have your cluster administrator do this for you). -2. Confirm that the Cluster Federation's service-controller is successfully connecting to and authenticating against your selected DNS provider (look for `service-controller` errors or successes in the output of `kubectl logs federation-controller-manager --namespace federation`) +2. Confirm that the Cluster Federation's service-controller is successfully connecting to and authenticating against your selected DNS provider (look for `service-controller` errors or successes in the output of `kubectl logs federation-controller-manager --namespace federation`). 3. Confirm that the Cluster Federation's service-controller is successfully creating DNS records in your DNS provider (or outputting errors in its logs explaining in more detail what's failing). #### Matching DNS records are created in my DNS provider, but clients are unable to resolve against those names From b0668569e82809c81980a9c8360a481317438057 Mon Sep 17 00:00:00 2001 From: Anthony Date: Fri, 18 Aug 2017 14:28:29 +0800 Subject: [PATCH 119/129] Update set-up-cluster-federation-kubefed.md add "." to the sentence --- docs/tasks/federation/set-up-cluster-federation-kubefed.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tasks/federation/set-up-cluster-federation-kubefed.md b/docs/tasks/federation/set-up-cluster-federation-kubefed.md index 0eee8195bc..01d0da5d6e 100644 --- a/docs/tasks/federation/set-up-cluster-federation-kubefed.md +++ b/docs/tasks/federation/set-up-cluster-federation-kubefed.md @@ -367,7 +367,7 @@ kubefed init fellowship \ ``` For more information see -[Setting up CoreDNS as DNS provider for Cluster Federation](/docs/tutorials/federation/set-up-coredns-provider-federation/) +[Setting up CoreDNS as DNS provider for Cluster Federation](/docs/tutorials/federation/set-up-coredns-provider-federation/). ## Adding a cluster to a federation @@ -464,7 +464,7 @@ commands. In all other cases, you must update `kube-dns` configuration manually as described in the -[Updating KubeDNS section of the admin guide](/docs/admin/federation/) +[Updating KubeDNS section of the admin guide](/docs/admin/federation/). ## Removing a cluster from a federation From b10efe55642c909ed573b7e4d42b7e6587f92e40 Mon Sep 17 00:00:00 2001 From: XsWack Date: Fri, 18 Aug 2017 17:36:15 +0800 Subject: [PATCH 120/129] Update assign-memory-resource.md Remove the extra blank lines and unified command line format --- docs/tasks/configure-pod-container/assign-memory-resource.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/tasks/configure-pod-container/assign-memory-resource.md b/docs/tasks/configure-pod-container/assign-memory-resource.md index b63b2b7c69..73d0481fa2 100644 --- a/docs/tasks/configure-pod-container/assign-memory-resource.md +++ b/docs/tasks/configure-pod-container/assign-memory-resource.md @@ -211,7 +211,6 @@ The output shows that the Container starts and fails repeatedly: ``` ... Normal Created Created container with id 66a3a20aa7980e61be4922780bf9d24d1a1d8b7395c09861225b0eba1b1f8511 ... Warning BackOff Back-off restarting failed container - ``` View detailed information about your cluster's Nodes: From 68def552fb1f170dde701b3c730690680497827a Mon Sep 17 00:00:00 2001 From: drinktee Date: Tue, 22 Aug 2017 07:20:33 +0800 Subject: [PATCH 121/129] Fix several typos in reference README.md file (#5065) --- docs/api-reference/v1.5/README.md | 2 +- docs/resources-reference/v1.5/README.md | 2 +- docs/resources-reference/v1.6/README.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/api-reference/v1.5/README.md b/docs/api-reference/v1.5/README.md index f6799c18b9..4bee5de31a 100644 --- a/docs/api-reference/v1.5/README.md +++ b/docs/api-reference/v1.5/README.md @@ -6,7 +6,7 @@ Static compilation of html from markdown including processing for grouping code \> bdocs-tab:kubectl Deployment Config to run 3 nginx instances (max rollback set to 10 revisions). -bdocs-tab:tab will be stripped during rendering and utilized to with CSS to show or hide the prefered tab. kubectl indicates the desired tab, since blockquotes have no specific syntax highlighting. +bdocs-tab:tab will be stripped during rendering and utilized to with CSS to show or hide the preferred tab. kubectl indicates the desired tab, since blockquotes have no specific syntax highlighting. \`\`\`bdocs-tab:kubectl_yaml apiVersion: extensions/v1beta1 diff --git a/docs/resources-reference/v1.5/README.md b/docs/resources-reference/v1.5/README.md index f6799c18b9..4bee5de31a 100644 --- a/docs/resources-reference/v1.5/README.md +++ b/docs/resources-reference/v1.5/README.md @@ -6,7 +6,7 @@ Static compilation of html from markdown including processing for grouping code \> bdocs-tab:kubectl Deployment Config to run 3 nginx instances (max rollback set to 10 revisions). -bdocs-tab:tab will be stripped during rendering and utilized to with CSS to show or hide the prefered tab. kubectl indicates the desired tab, since blockquotes have no specific syntax highlighting. +bdocs-tab:tab will be stripped during rendering and utilized to with CSS to show or hide the preferred tab. kubectl indicates the desired tab, since blockquotes have no specific syntax highlighting. \`\`\`bdocs-tab:kubectl_yaml apiVersion: extensions/v1beta1 diff --git a/docs/resources-reference/v1.6/README.md b/docs/resources-reference/v1.6/README.md index f6799c18b9..4bee5de31a 100644 --- a/docs/resources-reference/v1.6/README.md +++ b/docs/resources-reference/v1.6/README.md @@ -6,7 +6,7 @@ Static compilation of html from markdown including processing for grouping code \> bdocs-tab:kubectl Deployment Config to run 3 nginx instances (max rollback set to 10 revisions). -bdocs-tab:tab will be stripped during rendering and utilized to with CSS to show or hide the prefered tab. kubectl indicates the desired tab, since blockquotes have no specific syntax highlighting. +bdocs-tab:tab will be stripped during rendering and utilized to with CSS to show or hide the preferred tab. kubectl indicates the desired tab, since blockquotes have no specific syntax highlighting. \`\`\`bdocs-tab:kubectl_yaml apiVersion: extensions/v1beta1 From e81e3c84641f5a53ea69195be353520913fc0586 Mon Sep 17 00:00:00 2001 From: TigerXu Date: Tue, 22 Aug 2017 07:28:12 +0800 Subject: [PATCH 122/129] unify all service yaml: use 2 spaces indent (#4754) --- docs/api-reference/v1.5/index.html | 32 +++++------ docs/api-reference/v1.6/index.html | 32 +++++------ docs/api-reference/v1.7/index.html | 32 +++++------ .../services-networking/dns-pod-service.md | 6 +-- docs/concepts/services-networking/service.md | 54 +++++++++---------- .../workloads/pods/init-containers.md | 12 ++--- .../configure-cloud-provider-firewall.md | 8 +-- .../access-application-cluster/frontend.yaml | 18 +++---- .../hello-service.yaml | 6 +-- .../run-application/mysql-deployment.yaml | 2 +- .../cassandra-service.yaml | 2 +- .../jobs/work-queue-2/redis-service.yaml | 4 +- .../services/load-balancer-sample.yaml | 4 +- docs/user-guide/services/service-sample.yaml | 4 +- 14 files changed, 108 insertions(+), 108 deletions(-) diff --git a/docs/api-reference/v1.5/index.html b/docs/api-reference/v1.5/index.html index 6f3a30ca19..71b333af82 100644 --- a/docs/api-reference/v1.5/index.html +++ b/docs/api-reference/v1.5/index.html @@ -17957,10 +17957,10 @@ Appears In Ingress name: service-example spec: ports: - # Accept traffic sent to port 80 - - name: http - port: 80 - targetPort: 80 + # Accept traffic sent to port 80 + - name: http + port: 80 + targetPort: 80 selector: # Loadbalance traffic across Pods matching # this label selector @@ -17981,10 +17981,10 @@ Appears In Ingress name: service-example spec: ports: - # Accept traffic sent to port 80 - - name: http - port: 80 - targetPort: 80 + # Accept traffic sent to port 80 + - name: http + port: 80 + targetPort: 80 selector: # Loadbalance traffic across Pods matching # this label selector @@ -18156,11 +18156,11 @@ metadata: name: service-example spec: ports: - - name: http - port: 80 - targetPort: 80 + - name: http + port: 80 + targetPort: 80 selector: - app: nginx + app: nginx type: LoadBalancer ' | kubectl create -f - @@ -18176,11 +18176,11 @@ metadata: name: service-example spec: ports: - - name: http - port: 80 - targetPort: 80 + - name: http + port: 80 + targetPort: 80 selector: - app: nginx + app: nginx type: LoadBalancer ' http://127.0.0.1:8001/api/v1/namespaces/default/services diff --git a/docs/api-reference/v1.6/index.html b/docs/api-reference/v1.6/index.html index 130acf039a..7e64251ea9 100644 --- a/docs/api-reference/v1.6/index.html +++ b/docs/api-reference/v1.6/index.html @@ -17849,10 +17849,10 @@ Appears In Ingress name: service-example spec: ports: - # Accept traffic sent to port 80 - - name: http - port: 80 - targetPort: 80 + # Accept traffic sent to port 80 + - name: http + port: 80 + targetPort: 80 selector: # Loadbalance traffic across Pods matching # this label selector @@ -17873,10 +17873,10 @@ Appears In Ingress name: service-example spec: ports: - # Accept traffic sent to port 80 - - name: http - port: 80 - targetPort: 80 + # Accept traffic sent to port 80 + - name: http + port: 80 + targetPort: 80 selector: # Loadbalance traffic across Pods matching # this label selector @@ -18048,11 +18048,11 @@ metadata: name: service-example spec: ports: - - name: http - port: 80 - targetPort: 80 + - name: http + port: 80 + targetPort: 80 selector: - app: nginx + app: nginx type: LoadBalancer ' | kubectl create -f - @@ -18068,11 +18068,11 @@ metadata: name: service-example spec: ports: - - name: http - port: 80 - targetPort: 80 + - name: http + port: 80 + targetPort: 80 selector: - app: nginx + app: nginx type: LoadBalancer ' http://127.0.0.1:8001/api/v1/namespaces/default/services diff --git a/docs/api-reference/v1.7/index.html b/docs/api-reference/v1.7/index.html index 9f8b0c2bbd..4f7606ea40 100644 --- a/docs/api-reference/v1.7/index.html +++ b/docs/api-reference/v1.7/index.html @@ -17914,10 +17914,10 @@ metadata: name: service-example spec: ports: - # Accept traffic sent to port 80 - - name: http - port: 80 - targetPort: 80 + # Accept traffic sent to port 80 + - name: http + port: 80 + targetPort: 80 selector: # Loadbalance traffic across Pods matching # this label selector @@ -17938,10 +17938,10 @@ metadata: name: service-example spec: ports: - # Accept traffic sent to port 80 - - name: http - port: 80 - targetPort: 80 + # Accept traffic sent to port 80 + - name: http + port: 80 + targetPort: 80 selector: # Loadbalance traffic across Pods matching # this label selector @@ -18129,11 +18129,11 @@ $ echo 'kind: Service name: service-example spec: ports: - - name: http - port: 80 - targetPort: 80 + - name: http + port: 80 + targetPort: 80 selector: - app: nginx + app: nginx type: LoadBalancer ' | kubectl create -f - @@ -18149,11 +18149,11 @@ metadata: name: service-example spec: ports: - - name: http - port: 80 - targetPort: 80 + - name: http + port: 80 + targetPort: 80 selector: - app: nginx + app: nginx type: LoadBalancer ' http://127.0.0.1:8001/api/v1/namespaces/default/services diff --git a/docs/concepts/services-networking/dns-pod-service.md b/docs/concepts/services-networking/dns-pod-service.md index 77c3ad92df..7f024f523a 100644 --- a/docs/concepts/services-networking/dns-pod-service.md +++ b/docs/concepts/services-networking/dns-pod-service.md @@ -101,9 +101,9 @@ spec: name: busybox clusterIP: None ports: - - name: foo # Actually, no port is needed. - port: 1234 - targetPort: 1234 + - name: foo # Actually, no port is needed. + port: 1234 + targetPort: 1234 --- apiVersion: v1 kind: Pod diff --git a/docs/concepts/services-networking/service.md b/docs/concepts/services-networking/service.md index 54007a67e5..c566b42047 100644 --- a/docs/concepts/services-networking/service.md +++ b/docs/concepts/services-networking/service.md @@ -52,9 +52,9 @@ spec: selector: app: MyApp ports: - - protocol: TCP - port: 80 - targetPort: 9376 + - protocol: TCP + port: 80 + targetPort: 9376 ``` This specification will create a new `Service` object named "my-service" which @@ -97,9 +97,9 @@ metadata: name: my-service spec: ports: - - protocol: TCP - port: 80 - targetPort: 9376 + - protocol: TCP + port: 80 + targetPort: 9376 ``` Because this service has no selector, the corresponding `Endpoints` object will not be @@ -216,17 +216,17 @@ apiVersion: v1 metadata: name: my-service spec: - selector: - app: MyApp - ports: - - name: http - protocol: TCP - port: 80 - targetPort: 9376 - - name: https - protocol: TCP - port: 443 - targetPort: 9377 + selector: + app: MyApp + ports: + - name: http + protocol: TCP + port: 80 + targetPort: 9376 + - name: https + protocol: TCP + port: 443 + targetPort: 9377 ``` ## Choosing your own IP address @@ -404,17 +404,17 @@ spec: selector: app: MyApp ports: - - protocol: TCP - port: 80 - targetPort: 9376 - nodePort: 30061 + - protocol: TCP + port: 80 + targetPort: 9376 + nodePort: 30061 clusterIP: 10.0.171.239 loadBalancerIP: 78.11.24.19 type: LoadBalancer status: loadBalancer: ingress: - - ip: 146.148.47.155 + - ip: 146.148.47.155 ``` Traffic from the external load balancer will be directed at the backend `Pods`, @@ -531,12 +531,12 @@ spec: selector: app: MyApp ports: - - name: http - protocol: TCP - port: 80 - targetPort: 9376 + - name: http + protocol: TCP + port: 80 + targetPort: 9376 externalIPs: - - 80.11.12.10 + - 80.11.12.10 ``` ## Shortcomings diff --git a/docs/concepts/workloads/pods/init-containers.md b/docs/concepts/workloads/pods/init-containers.md index d4eaa11117..73cb6b5b40 100644 --- a/docs/concepts/workloads/pods/init-containers.md +++ b/docs/concepts/workloads/pods/init-containers.md @@ -157,9 +157,9 @@ metadata: name: myservice spec: ports: - - protocol: TCP - port: 80 - targetPort: 9376 + - protocol: TCP + port: 80 + targetPort: 9376 --- kind: Service apiVersion: v1 @@ -167,9 +167,9 @@ metadata: name: mydb spec: ports: - - protocol: TCP - port: 80 - targetPort: 9377 + - protocol: TCP + port: 80 + targetPort: 9377 ``` This Pod can be started and debugged with the following commands: diff --git a/docs/tasks/access-application-cluster/configure-cloud-provider-firewall.md b/docs/tasks/access-application-cluster/configure-cloud-provider-firewall.md index 58eb4d65d2..5b8b768123 100644 --- a/docs/tasks/access-application-cluster/configure-cloud-provider-firewall.md +++ b/docs/tasks/access-application-cluster/configure-cloud-provider-firewall.md @@ -26,8 +26,8 @@ metadata: name: myapp spec: ports: - - port: 8765 - targetPort: 9376 + - port: 8765 + targetPort: 9376 selector: app: example type: LoadBalancer @@ -44,8 +44,8 @@ metadata: name: myapp spec: ports: - - port: 8765 - targetPort: 9376 + - port: 8765 + targetPort: 9376 selector: app: example type: LoadBalancer diff --git a/docs/tasks/access-application-cluster/frontend.yaml b/docs/tasks/access-application-cluster/frontend.yaml index 62ff60c0df..382c3786e5 100644 --- a/docs/tasks/access-application-cluster/frontend.yaml +++ b/docs/tasks/access-application-cluster/frontend.yaml @@ -7,9 +7,9 @@ spec: app: hello tier: frontend ports: - - protocol: "TCP" - port: 80 - targetPort: 80 + - protocol: "TCP" + port: 80 + targetPort: 80 type: LoadBalancer --- apiVersion: apps/v1beta1 @@ -26,9 +26,9 @@ spec: track: stable spec: containers: - - name: nginx - image: "gcr.io/google-samples/hello-frontend:1.0" - lifecycle: - preStop: - exec: - command: ["/usr/sbin/nginx","-s","quit"] + - name: nginx + image: "gcr.io/google-samples/hello-frontend:1.0" + lifecycle: + preStop: + exec: + command: ["/usr/sbin/nginx","-s","quit"] diff --git a/docs/tasks/access-application-cluster/hello-service.yaml b/docs/tasks/access-application-cluster/hello-service.yaml index 8be93e1da6..1e4c7a6c32 100644 --- a/docs/tasks/access-application-cluster/hello-service.yaml +++ b/docs/tasks/access-application-cluster/hello-service.yaml @@ -7,6 +7,6 @@ spec: app: hello tier: backend ports: - - protocol: TCP - port: 80 - targetPort: http + - protocol: TCP + port: 80 + targetPort: http diff --git a/docs/tasks/run-application/mysql-deployment.yaml b/docs/tasks/run-application/mysql-deployment.yaml index 19e102947f..1bf9671ef1 100644 --- a/docs/tasks/run-application/mysql-deployment.yaml +++ b/docs/tasks/run-application/mysql-deployment.yaml @@ -4,7 +4,7 @@ metadata: name: mysql spec: ports: - - port: 3306 + - port: 3306 selector: app: mysql clusterIP: None diff --git a/docs/tutorials/stateful-application/cassandra-service.yaml b/docs/tutorials/stateful-application/cassandra-service.yaml index 35b07733b5..31bee74b58 100644 --- a/docs/tutorials/stateful-application/cassandra-service.yaml +++ b/docs/tutorials/stateful-application/cassandra-service.yaml @@ -7,6 +7,6 @@ metadata: spec: clusterIP: None ports: - - port: 9042 + - port: 9042 selector: app: cassandra diff --git a/docs/user-guide/jobs/work-queue-2/redis-service.yaml b/docs/user-guide/jobs/work-queue-2/redis-service.yaml index 85f2ca2271..519ea60fb9 100644 --- a/docs/user-guide/jobs/work-queue-2/redis-service.yaml +++ b/docs/user-guide/jobs/work-queue-2/redis-service.yaml @@ -4,7 +4,7 @@ metadata: name: redis spec: ports: - - port: 6379 - targetPort: 6379 + - port: 6379 + targetPort: 6379 selector: app: redis diff --git a/docs/user-guide/services/load-balancer-sample.yaml b/docs/user-guide/services/load-balancer-sample.yaml index 28b1dd3014..0f53c3a524 100644 --- a/docs/user-guide/services/load-balancer-sample.yaml +++ b/docs/user-guide/services/load-balancer-sample.yaml @@ -4,8 +4,8 @@ metadata: name: myapp spec: ports: - - port: 8765 - targetPort: 9376 + - port: 8765 + targetPort: 9376 selector: app: example type: LoadBalancer diff --git a/docs/user-guide/services/service-sample.yaml b/docs/user-guide/services/service-sample.yaml index c819df7ac5..1563884931 100644 --- a/docs/user-guide/services/service-sample.yaml +++ b/docs/user-guide/services/service-sample.yaml @@ -4,7 +4,7 @@ metadata: name: myapp spec: ports: - - port: 8765 - targetPort: 9376 + - port: 8765 + targetPort: 9376 selector: app: example From d5270b167d904d3f1d8e1e6f1fa75e85fdb2454e Mon Sep 17 00:00:00 2001 From: Lion-Wei Date: Fri, 11 Aug 2017 16:26:58 +0800 Subject: [PATCH 123/129] Update README.md fix the dead chain --- cn/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cn/README.md b/cn/README.md index 5e645ff3cc..3bfbba8c77 100644 --- a/cn/README.md +++ b/cn/README.md @@ -7,11 +7,11 @@ 关于更多的贡献信息,请参阅: * [贡献于 Kubernetes 文档](http://kubernetes.io/editdocs/) -* [创建文档拉取请求](http://kubernetes.io/docs/contribute/create-pull-request/) +* [创建文档拉取请求](http://kubernetes.io/docs/home/contribute/create-pull-request/) * [写一个新的话题](http://kubernetes.io/docs/contribute/write-new-topic/) -* [暂停您的文档更改](http://kubernetes.io/docs/contribute/stage-documentation-changes/) -* [更用页面模板](http://kubernetes.io/docs/contribute/page-templates/) -* [文档样式指南](http://kubernetes.io/docs/contribute/style-guide/) +* [暂停您的文档更改](http://kubernetes.io/docs/home/contribute/stage-documentation-changes/) +* [更用页面模板](http://kubernetes.io/docs/home/contribute/page-templates/) +* [文档样式指南](http://kubernetes.io/docs/home/contribute/style-guide/) ## 谢谢您! From 7a514e7cc6c6668b632a217fe0651e1422065182 Mon Sep 17 00:00:00 2001 From: netroby Date: Sat, 19 Aug 2017 06:50:09 +0800 Subject: [PATCH 124/129] Uppercase first letter, Providing seems better --- docs/concepts/architecture/master-node-communication.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/concepts/architecture/master-node-communication.md b/docs/concepts/architecture/master-node-communication.md index 23348771a3..1152beb383 100644 --- a/docs/concepts/architecture/master-node-communication.md +++ b/docs/concepts/architecture/master-node-communication.md @@ -65,9 +65,9 @@ or service through the apiserver's proxy functionality. ### apiserver -> kubelet The connections from the apiserver to the kubelet are used for: - * fetching logs for pods. - * attaching (through kubectl) to running pods. - * the kubelet's port-forwarding functionality. + * Fetching logs for pods. + * Attaching (through kubectl) to running pods. + * Providing the kubelet's port-forwarding functionality. These connections terminate at the kubelet's HTTPS endpoint. By default, the apiserver does not verify the kubelet's serving certificate, From 52e2df7e82d9781878556d82f9168a53ab700dfa Mon Sep 17 00:00:00 2001 From: Anthony Date: Sat, 19 Aug 2017 10:33:02 +0800 Subject: [PATCH 125/129] Update kubernetes-api.md modify "kubernetes" to "Kubernetes" --- docs/concepts/overview/kubernetes-api.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/concepts/overview/kubernetes-api.md b/docs/concepts/overview/kubernetes-api.md index 3f1c372883..b24aef8824 100644 --- a/docs/concepts/overview/kubernetes-api.md +++ b/docs/concepts/overview/kubernetes-api.md @@ -26,7 +26,7 @@ What constitutes a compatible change and how to change the API are detailed by t Complete API details are documented using [Swagger v1.2](http://swagger.io/) and [OpenAPI](https://www.openapis.org/). The Kubernetes apiserver (aka "master") exposes an API that can be used to retrieve the Swagger v1.2 Kubernetes API spec located at `/swaggerapi`. You can also enable a UI to browse the API documentation at `/swagger-ui` by passing the `--enable-swagger-ui=true` flag to apiserver. -Starting with kubernetes 1.4, OpenAPI spec is also available at [`/swagger.json`](https://git.k8s.io/kubernetes/api/openapi-spec/swagger.json). While we are transitioning from Swagger v1.2 to OpenAPI (aka Swagger v2.0), some of the tools such as kubectl and swagger-ui are still using v1.2 spec. OpenAPI spec is in Beta as of Kubernetes 1.5. +Starting with Kubernetes 1.4, OpenAPI spec is also available at [`/swagger.json`](https://git.k8s.io/kubernetes/api/openapi-spec/swagger.json). While we are transitioning from Swagger v1.2 to OpenAPI (aka Swagger v2.0), some of the tools such as kubectl and swagger-ui are still using v1.2 spec. OpenAPI spec is in Beta as of Kubernetes 1.5. Kubernetes implements an alternative Protobuf based serialization format for the API that is primarily intended for intra-cluster communication, documented in the [design proposal](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/protobuf.md) and the IDL files for each schema are located in the Go packages that define the API objects. From d6415cfe99938c57b06f0c8f63aca89cf8036776 Mon Sep 17 00:00:00 2001 From: Weibin Lin Date: Mon, 21 Aug 2017 09:25:46 +0800 Subject: [PATCH 126/129] Update change-pv-reclaim-policy.md --- docs/tasks/administer-cluster/change-pv-reclaim-policy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/administer-cluster/change-pv-reclaim-policy.md b/docs/tasks/administer-cluster/change-pv-reclaim-policy.md index aa769f8227..43080789ed 100644 --- a/docs/tasks/administer-cluster/change-pv-reclaim-policy.md +++ b/docs/tasks/administer-cluster/change-pv-reclaim-policy.md @@ -43,7 +43,7 @@ the corresponding `PersistentVolume` is not be deleted. Instead, it is moved to This list also includes the name of the claims that are bound to each volume for easier identification of dynamically provisioned volumes. -1. Chose one of your PersistentVolumes and change its reclaim policy: +1. Choose one of your PersistentVolumes and change its reclaim policy: kubectl patch pv -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}' From 36dd257ba167c36f8589b985835b2a97f2ae215e Mon Sep 17 00:00:00 2001 From: XsWack Date: Mon, 21 Aug 2017 10:36:21 +0800 Subject: [PATCH 127/129] The etcd container link is out of date in the yaml The etcd container link is out of date in the yaml file and there is something wrong when run the gcr.io/google_containers/etcd:2.0.9 container --- docs/admin/high-availability/etcd.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/admin/high-availability/etcd.yaml b/docs/admin/high-availability/etcd.yaml index fc9fe67e75..8bcf52b159 100644 --- a/docs/admin/high-availability/etcd.yaml +++ b/docs/admin/high-availability/etcd.yaml @@ -5,7 +5,7 @@ metadata: spec: hostNetwork: true containers: - - image: gcr.io/google_containers/etcd:2.0.9 + - image: gcr.io/google_containers/etcd:3.0.17 name: etcd-container command: - /usr/local/bin/etcd From 94d91de1b26ac3605f6057fdef582305a95cd58c Mon Sep 17 00:00:00 2001 From: XsWack Date: Mon, 21 Aug 2017 14:15:23 +0800 Subject: [PATCH 128/129] Update monitoring.md format the command line --- docs/getting-started-guides/ubuntu/monitoring.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/getting-started-guides/ubuntu/monitoring.md b/docs/getting-started-guides/ubuntu/monitoring.md index 7ac97ea4e9..7885376a60 100644 --- a/docs/getting-started-guides/ubuntu/monitoring.md +++ b/docs/getting-started-guides/ubuntu/monitoring.md @@ -12,7 +12,11 @@ This page assumes you have a working Juju deployed cluster. {% capture steps %} ## Connecting Datadog -Datadog is a SaaS offering which includes support for a range of integrations, including Kubernetes and ETCD. While the solution is SAAS/Commercial, they include a Free tier which is supported with the following method. To deploy a full Kubernetes stack with Datadog out of the box, do: `juju deploy canonical-kubernetes-datadog` +Datadog is a SaaS offering which includes support for a range of integrations, including Kubernetes and ETCD. While the solution is SAAS/Commercial, they include a Free tier which is supported with the following method. To deploy a full Kubernetes stack with Datadog out of the box, do: + +``` +juju deploy canonical-kubernetes-datadog +``` ### Installation of Datadog @@ -132,4 +136,4 @@ juju configure nrpe-external-master nagios_master=255.255.255.255 Once configured, connect nrpe-external-master as outlined above. {% endcapture %} -{% include templates/task.md %} \ No newline at end of file +{% include templates/task.md %} From eb8404873935af03a5fa217c4394fc51772e90e1 Mon Sep 17 00:00:00 2001 From: Dan Wendlandt Date: Mon, 21 Aug 2017 16:47:06 -0700 Subject: [PATCH 129/129] Add Cilium to list of network policy plugins in docs (#4725) Signed-off-by: Dan Wendlandt --- _data/tasks.yml | 1 + .../cilium-network-policy.md | 78 +++++++++++++++++++ .../declare-network-policy.md | 1 + 3 files changed, 80 insertions(+) create mode 100644 docs/tasks/administer-cluster/cilium-network-policy.md diff --git a/_data/tasks.yml b/_data/tasks.yml index ddbd0dcb2a..7272e58b0d 100644 --- a/_data/tasks.yml +++ b/_data/tasks.yml @@ -145,6 +145,7 @@ toc: - title: Install Network Policy Provider section: - docs/tasks/administer-cluster/calico-network-policy.md + - docs/tasks/administer-cluster/cilium-network-policy.md - docs/tasks/administer-cluster/romana-network-policy.md - docs/tasks/administer-cluster/weave-network-policy.md - docs/tasks/administer-cluster/change-pv-reclaim-policy.md diff --git a/docs/tasks/administer-cluster/cilium-network-policy.md b/docs/tasks/administer-cluster/cilium-network-policy.md new file mode 100644 index 0000000000..6db677f313 --- /dev/null +++ b/docs/tasks/administer-cluster/cilium-network-policy.md @@ -0,0 +1,78 @@ +--- +assignees: +- danwent +title: Use Cilium for NetworkPolicy +--- + +{% capture overview %} +This page shows how to use Cilium for NetworkPolicy. + +For background on Cilium, read the [Introduction to Cilium](http://cilium.readthedocs.io/en/latest/intro/). +{% endcapture %} + +{% capture prerequisites %} + +{% include task-tutorial-prereqs.md %} + +{% endcapture %} + +{% capture steps %} +## Deploying Cilium on Minikube for Basic Testing + +To get familiar with Cilium easily you can follow the +[Cilium Kubernetes Getting Started Guide](http://www.cilium.io/try) +to perform a basic DaemonSet installation of Cilium in minikube. + +Installation in a minikube setup uses a simple ''all-in-one'' YAML +file that includes DaemonSet configurations for Cilium and a key-value store +(consul) as well as appropriate RBAC settings: + +```shell +$ kubectl create -f https://raw.githubusercontent.com/cilium/cilium/master/examples/minikube/cilium-ds.yaml +clusterrole "cilium" created +serviceaccount "cilium" created +clusterrolebinding "cilium" created +daemonset "cilium-consul" created +daemonset "cilium" created +``` + +The remainder of the Getting Started Guide explains how to enforce both L3/L4 (i.e., IP address + port) security +policies, as well as L7 (e.g., HTTP) security policies using an example application. + +## Deploying Cilium for Production Use + +For detailed instructions around deploying Cilium for production, see: +[Cilium Administrator Guide](http://cilium.readthedocs.io/en/latest/admin/) This +documentation includes detailed requirements, instructions and example production DaemonSet files. + +{% endcapture %} + +{% capture discussion %} +## Understanding Cilium components + +Deploying a cluster with Cilium adds Pods to the `kube-system` namespace. To see this list of Pods run: + +```shell +kubectl get pods --namespace=kube-system +``` + +You'll see a list of Pods similar to this: + +```console +NAME DESIRED CURRENT READY NODE-SELECTOR AGE +cilium 1 1 1 2m +... +``` + +There are two main components to be aware of: + +- One `cilium` Pod runs on each node in your cluster and enforces network policy on the traffic to/from Pods on that node using Linux BPF. +- For production deployments, Cilium should leverage the key-value store cluster (e.g., etcd) used by Kubernetes, which typically runs on the Kubernetes master nodes. The [Cilium Administrator Guide](http://cilium.readthedocs.io/en/latest/admin/) includes an example DaemonSet which can be customized to point to this key-value store cluster. The simple ''all-in-one'' DaemonSet for minikube requires no such configuration because it automatically deploys a `cilium-consul` Pod to provide a key-value store. + +{% endcapture %} + +{% capture whatsnext %} +Once your cluster is running, you can follow the [NetworkPolicy getting started guide](/docs/getting-started-guides/network-policy/walkthrough) to try out Kubernetes NetworkPolicy with Cilium. Have fun, and if you have questions, contact us using the [Cilium Slack Channel](https://cilium.herokuapp.com/). +{% endcapture %} + +{% include templates/task.md %} diff --git a/docs/tasks/administer-cluster/declare-network-policy.md b/docs/tasks/administer-cluster/declare-network-policy.md index c71fa5db40..da7f6f5ecf 100644 --- a/docs/tasks/administer-cluster/declare-network-policy.md +++ b/docs/tasks/administer-cluster/declare-network-policy.md @@ -12,6 +12,7 @@ This document helps you get started using the Kubernetes [NetworkPolicy API](/do You'll need to have a Kubernetes cluster in place, with network policy support. There are a number of network providers that support NetworkPolicy, including: * [Calico](/docs/tasks/configure-pod-container/calico-network-policy/) +* [Cilium](/docs/tasks/configure-pod-container/cilium-network-policy/) * [Romana](/docs/tasks/configure-pod-container/romana-network-policy/) * [Weave Net](/docs/tasks/configure-pod-container/weave-network-policy/)