diff --git a/docs/admin/authorization/rbac.md b/docs/admin/authorization/rbac.md index ca2f55d951..ac1f826002 100644 --- a/docs/admin/authorization/rbac.md +++ b/docs/admin/authorization/rbac.md @@ -247,7 +247,7 @@ Allow "GET" and "POST" requests to the non-resource endpoint "/healthz" and all ```yaml rules: -- nonResourceURLs: ["/healthz", "/healthz/*"] +- nonResourceURLs: ["/healthz", "/healthz/*"] # '*' in a nonResourceURL is a suffix glob match verbs: ["get", "post"] ``` diff --git a/docs/admin/high-availability/index.md b/docs/admin/high-availability/index.md index bc7b691141..5bff42541a 100644 --- a/docs/admin/high-availability/index.md +++ b/docs/admin/high-availability/index.md @@ -17,7 +17,7 @@ be working to add this continuous testing, but for now the single-node master in ## Overview -Setting up a truly reliable, highly available distributed system requires a number of steps, it is akin to +Setting up a truly reliable, highly available distributed system requires a number of steps. It is akin to wearing underwear, pants, a belt, suspenders, another pair of underwear, and another pair of pants. We go into each of these steps in detail, but a summary is given here to help guide and orient the user. diff --git a/docs/concepts/configuration/manage-compute-resources-container.md b/docs/concepts/configuration/manage-compute-resources-container.md index fce02cd743..c5615b634c 100644 --- a/docs/concepts/configuration/manage-compute-resources-container.md +++ b/docs/concepts/configuration/manage-compute-resources-container.md @@ -133,8 +133,8 @@ to the container runtime. When using Docker: - The `spec.containers[].resources.requests.cpu` is converted to its core value, - which is potentially fractional, and multiplied by 1024. This number is used - as the value of the + which is potentially fractional, and multiplied by 1024. The greater of this number + or 2 is used as the value of the [`--cpu-shares`](https://docs.docker.com/engine/reference/run/#/cpu-share-constraint) flag in the `docker run` command. diff --git a/docs/concepts/overview/working-with-objects/kubernetes-objects.md b/docs/concepts/overview/working-with-objects/kubernetes-objects.md index 50351ae1c0..489e0c4fa4 100644 --- a/docs/concepts/overview/working-with-objects/kubernetes-objects.md +++ b/docs/concepts/overview/working-with-objects/kubernetes-objects.md @@ -19,7 +19,7 @@ This page explains how Kubernetes objects are represented in the Kubernetes API, * The resources available to those applications * The policies around how those applications behave, such as restart policies, upgrades, and fault-tolerance -A Kubernetes object is a "record of intent"--once you create the object, the Kubernetes system will constantly work to ensure that that object exists. By creating an object, you're effectively telling the Kubernetes system what you want your cluster's workload to look like; this is your cluster's **desired state**. +A Kubernetes object is a "record of intent"--once you create the object, the Kubernetes system will constantly work to ensure that object exists. By creating an object, you're effectively telling the Kubernetes system what you want your cluster's workload to look like; this is your cluster's **desired state**. To work with Kubernetes objects--whether to create, modify, or delete them--you'll need to use the [Kubernetes API](https://github.com/kubernetes/kubernetes/blob/master/docs/devel/api-conventions.md). When you use the `kubectl` command-line interface, for example, the CLI makes the necessary Kubernetes API calls for you; you can also use the Kubernetes API directly in your own programs. Kubernetes currently provides a `golang` [client library](https://github.com/kubernetes/client-go) for this purpose, and other language libraries (such as [Python](https://github.com/kubernetes-incubator/client-python)) are being developed. diff --git a/docs/concepts/overview/working-with-objects/labels.md b/docs/concepts/overview/working-with-objects/labels.md index 91e90e8a81..8e4019fb77 100644 --- a/docs/concepts/overview/working-with-objects/labels.md +++ b/docs/concepts/overview/working-with-objects/labels.md @@ -38,7 +38,7 @@ Example labels: * `"partition" : "customerA"`, `"partition" : "customerB"` * `"track" : "daily"`, `"track" : "weekly"` -These are just examples; you are free to develop your own conventions. +These are just examples of commonly used labels; you are free to develop your own conventions. Keep in mind that label Key must be unique for a given object. ## Syntax and character set diff --git a/docs/concepts/services-networking/dns-pod-service.md b/docs/concepts/services-networking/dns-pod-service.md index 710fa5b473..adc5167b81 100644 --- a/docs/concepts/services-networking/dns-pod-service.md +++ b/docs/concepts/services-networking/dns-pod-service.md @@ -48,7 +48,7 @@ Services, this resolves to the set of IPs of the pods selected by the Service. Clients are expected to consume the set or else use standard round-robin selection from the set. -### SRV records +#### SRV records SRV Records are created for named ports that are part of normal or [Headless Services](https://kubernetes.io/docs/user-guide/services/#headless-services). @@ -60,7 +60,7 @@ For a headless service, this resolves to multiple answers, one for each pod that is backing the service, and contains the port number and a CNAME of the pod of the form `auto-generated-name.my-svc.my-namespace.svc.cluster.local`. -### Backwards compatibility +#### Backwards compatibility Previous versions of kube-dns made names of the form `my-svc.my-namespace.cluster.local` (the 'svc' level was added later). This diff --git a/docs/concepts/services-networking/service.md b/docs/concepts/services-networking/service.md index 4e6e12bf7a..ef413898e0 100644 --- a/docs/concepts/services-networking/service.md +++ b/docs/concepts/services-networking/service.md @@ -140,8 +140,6 @@ metadata: spec: type: ExternalName externalName: my.database.example.com - ports: - - port: 12345 ``` When looking up the host `my-service.prod.svc.CLUSTER`, the cluster DNS service @@ -489,17 +487,17 @@ In the ServiceSpec, `externalIPs` can be specified along with any of the `Servic In the example below, my-service can be accessed by clients on 80.11.12.10:80 (externalIP:port) ```yaml -kind: Service, -apiVersion: v1, +kind: Service +apiVersion: v1 metadata: name: my-service spec: selector: app: MyApp ports: - - name: http, - protocol: TCP, - port: 80, + - name: http + protocol: TCP + port: 80 targetPort: 9376 externalIPs: - 80.11.12.10 diff --git a/docs/concepts/workloads/controllers/deployment.md b/docs/concepts/workloads/controllers/deployment.md index f2c16958ee..db77c6b29a 100644 --- a/docs/concepts/workloads/controllers/deployment.md +++ b/docs/concepts/workloads/controllers/deployment.md @@ -866,13 +866,20 @@ a Pod is considered ready, see [Container Probes](/docs/concepts/workloads/pods/ ### Rollback To -`.spec.rollbackTo` is an optional field with the configuration the Deployment is rolling back to. Setting -this field will trigger a rollback, and this field will be cleared every time a rollback is done. +`.spec.rollbackTo` is an optional field with the configuration the Deployment +should roll back to. Setting this field triggers a rollback, and this field will +be cleared by the server after a rollback is done. + +Because this field will be cleared by the server, it should not be used +declaratively. For example, you should not perform `kubectl apply` with a +manifest with `.spec.rollbackTo` field set. #### Revision -`.spec.rollbackTo.revision` is an optional field specifying the revision to rollback to. This defaults -to 0, meaning rollback to the last revision in history. +`.spec.rollbackTo.revision` is an optional field specifying the revision to roll +back to. Setting to 0 means rolling back to the last revision in history; +otherwise, means rolling back to the specified revision. This defaults to 0 when +[`spec.rollbackTo`](#rollback-to) is set. ### Revision History Limit diff --git a/docs/getting-started-guides/kops.md b/docs/getting-started-guides/kops.md index cf3c96420c..d3d1ad7e86 100644 --- a/docs/getting-started-guides/kops.md +++ b/docs/getting-started-guides/kops.md @@ -34,15 +34,17 @@ Download kops from the [releases page](https://github.com/kubernetes/kops/releas On MacOS: ``` -wget https://github.com/kubernetes/kops/releases/download/v1.4.1/kops-darwin-amd64 +wget https://github.com/kubernetes/kops/releases/download/1.6.1/kops-darwin-amd64 chmod +x kops-darwin-amd64 mv kops-darwin-amd64 /usr/local/bin/kops +# you can also install using Homebrew +brew update && brew install kops ``` On Linux: ``` -wget https://github.com/kubernetes/kops/releases/download/v1.4.1/kops-linux-amd64 +wget https://github.com/kubernetes/kops/releases/download/1.6.1/kops-linux-amd64 chmod +x kops-linux-amd64 mv kops-linux-amd64 /usr/local/bin/kops ``` diff --git a/docs/getting-started-guides/minikube.md b/docs/getting-started-guides/minikube.md index 5ce3f6bde8..8ef8b78cb0 100644 --- a/docs/getting-started-guides/minikube.md +++ b/docs/getting-started-guides/minikube.md @@ -149,7 +149,7 @@ To use this feature, you can use the `--extra-config` flag on the `minikube star This flag is repeated, so you can pass it several times with several different values to set multiple options. -This flag takes a string of the form `component.key=value`, where `component` is one of the strings from the above list, `key` is a value on the +This flag takes a string of the form `component.key=value`, where `component` is one of the strings from the below list, `key` is a value on the configuration struct and `value` is the value to set. Valid `key`s can be found by examining the documentation for the Kubernetes `componentconfigs` for each component. @@ -226,7 +226,7 @@ However, Minikube is configured to persist files stored under the following host * `/var/lib/localkube` * `/var/lib/docker` -Here is an example PersistentVolume config to persist data in the '/data' directory: +Here is an example PersistentVolume config to persist data in the `/data` directory: ```yaml apiVersion: v1 @@ -243,13 +243,15 @@ spec: ``` ## Mounted Host Folders -Some drivers will mount a host folder within the VM so that you can easily share files between the VM and host. These are not configurable at the moment and different for the driver and OS you are using. Note: Host folder sharing is not implemented in the KVM driver yet. +Some drivers will mount a host folder within the VM so that you can easily share files between the VM and host. These are not configurable at the moment and different for the driver and OS you are using. + +**Note:** Host folder sharing is not implemented in the KVM driver yet. | Driver | OS | HostFolder | VM | | --- | --- | --- | --- | -| Virtualbox | Linux | /home | /hosthome | -| Virtualbox | OSX | /Users | /Users | -| Virtualbox | Windows | C://Users | /c/Users | +| VirtualBox | Linux | /home | /hosthome | +| VirtualBox | OSX | /Users | /Users | +| VirtualBox | Windows | C://Users | /c/Users | | VMWare Fusion | OSX | /Users | /Users | | Xhyve | OSX | /Users | /Users | @@ -258,11 +260,11 @@ Some drivers will mount a host folder within the VM so that you can easily share To access a private container registry, follow the steps on [this page](/docs/concepts/containers/images/). -We recommend you use ImagePullSecrets, but if you would like to configure access on the minikube VM you can place the `.dockercfg` in the `/home/docker` directory or the `config.json` in the `/home/docker/.docker` directory. +We recommend you use `ImagePullSecrets`, but if you would like to configure access on the minikube VM you can place the `.dockercfg` in the `/home/docker` directory or the `config.json` in the `/home/docker/.docker` directory. ## Add-ons -In order to have minikube properly start/restart custom addons, place the addons you wish to be launched with minikube in the `.minikube/addons` directory. Addons in this folder will be moved to the minikubeVM and launched each time minikube is started/restarted. +In order to have minikube properly start/restart custom addons, place the addons you wish to be launched with minikube in the `~/.minikube/addons` directory. Addons in this folder will be moved to the minikubeVM and launched each time minikube is started/restarted. ## Using Minikube with an HTTP Proxy @@ -293,12 +295,13 @@ Minikube uses [libmachine](https://github.com/docker/machine/tree/master/libmach For more information about minikube, see the [proposal](https://github.com/kubernetes/kubernetes/blob/master/docs/proposals/local-cluster-ux.md). ## Additional Links: -* **Goals and Non-Goals**: For the goals and non-goals of the minikube project, please see our [roadmap](https://github.com/kubernetes/minikube/blob/master/ROADMAP.md). +* **Goals and Non-Goals**: For the goals and non-goals of the minikube project, please see our [roadmap](https://github.com/kubernetes/minikube/blob/master/docs/contributors/roadmap.md). * **Development Guide**: See [CONTRIBUTING.md](https://github.com/kubernetes/minikube/blob/master/CONTRIBUTING.md) for an overview of how to send pull requests. -* **Building Minikube**: For instructions on how to build/test minikube from source, see the [build guide](https://github.com/kubernetes/minikube/blob/master/BUILD_GUIDE.md) -* **Adding a New Dependency**: For instructions on how to add a new dependency to minikube see the [adding dependencies guide](https://github.com/kubernetes/minikube/blob/master/ADD_DEPENDENCY.md) -* **Updating Kubernetes**: For instructions on how to add a new dependency to minikube see the [updating Kubernetes guide](https://github.com/kubernetes/minikube/blob/master/UPDATE_KUBERNETES.md) +* **Building Minikube**: For instructions on how to build/test minikube from source, see the [build guide](https://github.com/kubernetes/minikube/blob/master/docs/contributors/build_guide.md) +* **Adding a New Dependency**: For instructions on how to add a new depeindency to minikube see the [adding dependencies guide](https://github.com/kubernetes/minikube/blob/master/docs/contributors/adding_a_dependency.md) +* **Adding a New Addon**: For instruction on how to add a new addon for minikube see the [adding an addon guide](https://github.com/kubernetes/minikube/blob/master/docs/contributors/adding_an_addon.md) +* **Updating Kubernetes**: For instructions on how to update kubernetes see the [updating Kubernetes guide](https://github.com/kubernetes/minikube/blob/master/docs/contributors/updating_kubernetes.md) ## Community -Contributions, questions, and comments are all welcomed and encouraged! minkube developers hang out on [Slack](https://kubernetes.slack.com) in the #minikube channel (get an invitation [here](http://slack.kubernetes.io/)). We also have the [kubernetes-dev Google Groups mailing list](https://groups.google.com/forum/#!forum/kubernetes-dev). If you are posting to the list please prefix your subject with "minikube: ". +Contributions, questions, and comments are all welcomed and encouraged! minikube developers hang out on [Slack](https://kubernetes.slack.com) in the #minikube channel (get an invitation [here](http://slack.kubernetes.io/)). We also have the [kubernetes-dev Google Groups mailing list](https://groups.google.com/forum/#!forum/kubernetes-dev). If you are posting to the list please prefix your subject with "minikube: ". diff --git a/docs/getting-started-guides/openstack-heat.md b/docs/getting-started-guides/openstack-heat.md index 3eb759769f..3f7e7cedc6 100644 --- a/docs/getting-started-guides/openstack-heat.md +++ b/docs/getting-started-guides/openstack-heat.md @@ -31,11 +31,11 @@ If you already have the required versions of the OpenStack CLI tools installed a #### Install OpenStack CLI tools ```sh -sudo pip install -U --force 'python-openstackclient==2.4.0' -sudo pip install -U --force 'python-heatclient==1.1.0' -sudo pip install -U --force 'python-swiftclient==3.0.0' -sudo pip install -U --force 'python-glanceclient==2.0.0' -sudo pip install -U --force 'python-novaclient==3.4.0' +sudo pip install -U --force 'python-openstackclient==3.11.0' +sudo pip install -U --force 'python-heatclient==1.10.0' +sudo pip install -U --force 'python-swiftclient==3.3.0' +sudo pip install -U --force 'python-glanceclient==2.7.0' +sudo pip install -U --force 'python-novaclient==9.0.1' ``` #### Configure Openstack CLI tools @@ -196,7 +196,7 @@ See the [OpenStack CLI Reference](http://docs.openstack.org/cli-reference/) for ### Salt -The OpenStack-Heat provider uses a [standalone Salt configuration](/docs/admin/salt/#standalone-salt-configuration-on-gce-and-others). +The OpenStack-Heat provider uses a [standalone Salt configuration](/docs/admin/salt/#standalone-salt-configuration-on-gce-and-others). It only uses Salt for bootstraping the machines and creates no salt-master and does not auto-start the salt-minion service on the nodes. ## SSHing to your nodes diff --git a/docs/setup/independent/create-cluster-kubeadm.md b/docs/setup/independent/create-cluster-kubeadm.md index dbe7346598..46727f182d 100644 --- a/docs/setup/independent/create-cluster-kubeadm.md +++ b/docs/setup/independent/create-cluster-kubeadm.md @@ -10,7 +10,7 @@ redirect_from: - "/docs/getting-started-guides/kubeadm.html" --- -## Overview +{% capture overview %} This quickstart shows you how to easily install a Kubernetes cluster on machines running Ubuntu 16.04, CentOS 7 or HypriotOS v1.0.1+. The installation uses a @@ -60,14 +60,18 @@ documented here) are, of course, alpha. **Be sure to read the [limitations](#limitations)**. Specifically, configuring cloud providers is difficult. Upgrades are also not well documented or particularly easy. +{% endcapture %} -## Prerequisites +{% capture prerequisites %} 1. One or more machines running Ubuntu 16.04+, CentOS 7 or HypriotOS v1.0.1+ 1. 1GB or more of RAM per machine (any less will leave little room for your apps) 1. Full network connectivity between all machines in the cluster (public or private network is fine) +{% endcapture %} + +{% capture steps %} ## Objectives @@ -644,3 +648,8 @@ Finally, when running `kubeadm init` you must specify the `--use-kubernetes-vers ```bash kubeadm init --use-kubernetes-version=v1.5.6 ``` + +{% endcapture %} + + +{% include templates/task.md %} diff --git a/docs/setup/independent/install-kubeadm.md b/docs/setup/independent/install-kubeadm.md index d9fee04e31..9b6331244a 100644 --- a/docs/setup/independent/install-kubeadm.md +++ b/docs/setup/independent/install-kubeadm.md @@ -100,7 +100,7 @@ details. {% capture whatsnext %} -* [Installing Kubernetes on Linux with kubeadm](/docs/getting-started-guides/kubeadm/) +* [Using kubeadm to Create a Cluster](/docs/getting-started-guides/kubeadm/) {% endcapture %} diff --git a/docs/tasks/configure-pod-container/configure-pod-configmap.md b/docs/tasks/configure-pod-container/configure-pod-configmap.md index e9a5e7f6d0..e1cd4ce0e0 100644 --- a/docs/tasks/configure-pod-container/configure-pod-configmap.md +++ b/docs/tasks/configure-pod-container/configure-pod-configmap.md @@ -8,7 +8,7 @@ This page provides a series of usage examples demonstrating how to configure Pod {% capture prerequisites %} * {% include task-tutorial-prereqs.md %} -* [Create a ConfigMap](/docs/tasks/configure-pod-container/configmap.html) +* [Create a ConfigMap](/docs/tasks/configure-pod-container/configmap/) {% endcapture %} {% capture steps %} diff --git a/docs/tasks/configure-pod-container/configure-service-account.md b/docs/tasks/configure-pod-container/configure-service-account.md index 1dd92774e6..4c8aecf290 100644 --- a/docs/tasks/configure-pod-container/configure-service-account.md +++ b/docs/tasks/configure-pod-container/configure-service-account.md @@ -175,14 +175,10 @@ NAME TYPE DATA AGE myregistrykey   kubernetes.io/.dockerconfigjson   1       1d ``` -Next, read/modify/write the service account for the namespace to use this secret as an imagePullSecret. +Next, modify the default service account for the namespace to use this secret as an imagePullSecret. -Automated version using json and the jq utility: ```shell -kubectl get serviceaccounts default -o json | - jq 'del(.metadata.resourceVersion)'| - jq 'setpath(["imagePullSecrets"];[{"name":"myregistrykey"}])' | - kubectl replace serviceaccount default -f - +kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "myregistrykey"}]}' ``` diff --git a/docs/tasks/job/parallel-processing-expansion.md b/docs/tasks/job/parallel-processing-expansion.md index 2bfc49d86f..7a76447001 100644 --- a/docs/tasks/job/parallel-processing-expansion.md +++ b/docs/tasks/job/parallel-processing-expansion.md @@ -99,7 +99,7 @@ There is not a single command to check on the output of all jobs at once, but looping over all the pods is pretty easy: ```shell -$ for p in $(kubectl get pods -l jobgroup=jobexample -o name) +$ for p in $(kubectl get pods -l jobgroup=jobexample --show-all -o name) do kubectl logs $p done diff --git a/docs/user-guide/kubectl-cheatsheet.md b/docs/user-guide/kubectl-cheatsheet.md index 3e8cb01067..56db33e3c4 100644 --- a/docs/user-guide/kubectl-cheatsheet.md +++ b/docs/user-guide/kubectl-cheatsheet.md @@ -168,6 +168,9 @@ $ kubectl patch pod valid-pod -p '{"spec":{"containers":[{"name":"kubernetes-ser # Update a container's image using a json patch with positional arrays $ kubectl patch pod valid-pod --type='json' -p='[{"op": "replace", "path": "/spec/containers/0/image", "value":"new image"}]' + +# Disable a deployment livenessProbe using a json patch with positional arrays +$ kubectl patch deployment valid-deployment --type json -p='[{"op": "remove", "path": "/spec/template/spec/containers/0/livenessProbe"}]' ``` ## Editing Resources