diff --git a/docs/admin/daemons.md b/docs/admin/daemons.md index fd2bc8afcb..7db42fe4e0 100644 --- a/docs/admin/daemons.md +++ b/docs/admin/daemons.md @@ -7,7 +7,7 @@ title: Daemon Sets * TOC {:toc} -## What is a _Daemon Set_? +## What is a Daemon Set? A _Daemon Set_ ensures that all (or some) nodes run a copy of a pod. As nodes are added to the cluster, pods are added to them. As nodes are removed from the cluster, those pods are garbage diff --git a/docs/admin/static-pods.md b/docs/admin/static-pods.md index 36235929a3..4766002917 100644 --- a/docs/admin/static-pods.md +++ b/docs/admin/static-pods.md @@ -16,7 +16,7 @@ Static pod can be created in two ways: either by using configuration file(s) or ### Configuration files -The configuration files are just standard pod definition in json or yaml format in specific directory. Use `kubelet --config=` to start kubelet daemon, which periodically scans the directory and creates/deletes static pods as yaml/json files appear/disappear there. +The configuration files are just standard pod definition in json or yaml format in specific directory. Use `kubelet --pod-manifest-path=` to start kubelet daemon, which periodically scans the directory and creates/deletes static pods as yaml/json files appear/disappear there. For example, this is how to start a simple web server as a static pod: @@ -48,10 +48,10 @@ For example, this is how to start a simple web server as a static pod: EOF ``` -2. Configure your kubelet daemon on the node to use this directory by running it with `--config=/etc/kubelet.d/` argument. On Fedora edit `/etc/kubernetes/kubelet` to include this line: +2. Configure your kubelet daemon on the node to use this directory by running it with `--pod-manifest-path=/etc/kubelet.d/` argument. On Fedora edit `/etc/kubernetes/kubelet` to include this line: ```conf - KUBELET_ARGS="--cluster-dns=10.254.0.10 --cluster-domain=kube.local --config=/etc/kubelet.d/" + KUBELET_ARGS="--cluster-dns=10.254.0.10 --cluster-domain=kube.local --pod-manifest-path=/etc/kubelet.d/" ``` Instructions for other distributions or Kubernetes installations may vary. @@ -64,11 +64,11 @@ For example, this is how to start a simple web server as a static pod: ## Pods created via HTTP -Kubelet periodically downloads a file specified by `--manifest-url=` argument and interprets it as a json/yaml file with a pod definition. It works the same as `--config=`, i.e. it's reloaded every now and then and changes are applied to running static pods (see below). +Kubelet periodically downloads a file specified by `--manifest-url=` argument and interprets it as a json/yaml file with a pod definition. It works the same as `--pod-manifest-path=`, i.e. it's reloaded every now and then and changes are applied to running static pods (see below). ## Behavior of static pods -When kubelet starts, it automatically starts all pods defined in directory specified in `--config=` or `--manifest-url=` arguments, i.e. our static-web. (It may take some time to pull nginx image, be patient…): +When kubelet starts, it automatically starts all pods defined in directory specified in `--pod-manifest-path=` or `--manifest-url=` arguments, i.e. our static-web. (It may take some time to pull nginx image, be patient…): ```shell [joe@my-node1 ~] $ docker ps diff --git a/docs/concepts/abstractions/controllers/statefulsets.md b/docs/concepts/abstractions/controllers/statefulsets.md index 6f8e9629c3..996a63fe8d 100644 --- a/docs/concepts/abstractions/controllers/statefulsets.md +++ b/docs/concepts/abstractions/controllers/statefulsets.md @@ -32,12 +32,12 @@ following. * Ordered, graceful deployment and scaling. * Ordered, graceful deletion and termination. -In the above, stable is synonymous with persistent across Pod (re) schedulings. +In the above, stable is synonymous with persistence across Pod (re)schedulings. If an application doesn't require any stable identifiers or ordered deployment, deletion, or scaling, you should deploy your application with a controller that -provides a set of stateless replicas. Such controllers, such as +provides a set of stateless replicas. Controllers such as [Deployment](/docs/user-guide/deployments/) or -[ReplicaSet](/docs/user-guide/replicasets/) may be better suited to your needs. +[ReplicaSet](/docs/user-guide/replicasets/) may be better suited to your stateless needs. ### Limitations * StatefulSet is a beta resource, not available in any Kubernetes release prior to 1.5. @@ -52,7 +52,7 @@ The example below demonstrates the components of a StatefulSet. * A Headless Service, named nginx, is used to control the network domain. * The StatefulSet, named web, has a Spec that indicates that 3 replicas of the nginx container will be launched in unique Pods. -* The volumeClaimTemplates, will provide stable storage using [PersistentVolumes](/docs/user-guide/volumes/) provisioned by a +* The volumeClaimTemplates will provide stable storage using [PersistentVolumes](/docs/user-guide/volumes/) provisioned by a PersistentVolume Provisioner. ```yaml @@ -106,7 +106,7 @@ spec: ### Pod Identity StatefulSet Pods have a unique identity that is comprised of an ordinal, a stable network identity, and stable storage. The identity sticks to the Pod, -regardless of which node it's (re) scheduled on. +regardless of which node it's (re)scheduled on. __Ordinal Index__ @@ -141,13 +141,12 @@ Note that Cluster Domain will be set to `cluster.local` unless __Stable Storage__ -Kubernetes creates one [PersistentVolumes](/docs/user-guide/volumes/) for each -VolumeClaimTemplate, as specified in the StatefulSet's volumeClaimTemplates field -In the example above, each Pod will receive a single PersistentVolume with a storage -class of `anything` and 1 Gib of provisioned storage. When a Pod is (re) scheduled onto -a node, its `volumeMounts` mount the PersistentVolumes associated with its +Kubernetes creates one [PersistentVolume](/docs/user-guide/volumes/) for each +VolumeClaimTemplate. In the nginx example above, each Pod will receive a single PersistentVolume +with a storage class of `anything` and 1 Gib of provisioned storage. When a Pod is (re)scheduled +onto a node, its `volumeMounts` mount the PersistentVolumes associated with its PersistentVolume Claims. Note that, the PersistentVolumes associated with the -Pods' PersistentVolume Claims are not deleted when the Pods, or StatefulSet are deleted. +Pods' PersistentVolume Claims are not deleted when the Pods, or StatefulSet are deleted. This must be done manually. ### Deployment and Scaling Guarantee @@ -157,9 +156,9 @@ This must be done manually. * Before a scaling operation is applied to a Pod, all of its predecessors must be Running and Ready. * Before a Pod is terminated, all of its successors must be completely shutdown. -The StatefulSet should not specify a `pod.Spec.TerminationGracePeriodSeconds` of 0. The practice of setting a `pod.Spec.TerminationGracePeriodSeconds` of 0 seconds is unsafe and strongly discouraged. For further explanation, please refer to [force deleting StatefulSet Pods](/docs/tasks/manage-stateful-set/delete-pods/#deleting-pods). +The StatefulSet should not specify a `pod.Spec.TerminationGracePeriodSeconds` of 0. This practice is unsafe and strongly discouraged. For further explanation, please refer to [force deleting StatefulSet Pods](/docs/tasks/manage-stateful-set/delete-pods/#deleting-pods). -When the web example above is created, three Pods will be deployed in the order +When the nginx example above is created, three Pods will be deployed in the order web-0, web-1, web-2. web-1 will not be deployed before web-0 is [Running and Ready](/docs/user-guide/pod-states), and web-2 will not be deployed until web-1 is Running and Ready. If web-0 should fail, after web-1 is Running and Ready, but before diff --git a/docs/getting-started-guides/index.md b/docs/getting-started-guides/index.md index be841d1303..6a51d4eab7 100644 --- a/docs/getting-started-guides/index.md +++ b/docs/getting-started-guides/index.md @@ -123,47 +123,47 @@ These solutions provide integration with 3rd party schedulers, resource managers Here are all the solutions mentioned above in table form. -IaaS Provider | Config. Mgmt | OS | Networking | Docs | Conforms | Support Level --------------------- | ------------ | ------ | ---------- | --------------------------------------------- | ---------| ---------------------------- -GKE | | | GCE | [docs](https://cloud.google.com/container-engine) | ['œ“][3] | Commercial -Stackpoint.io | | multi-support | multi-support | [docs](http://www.stackpointcloud.com) | | Commercial -AppsCode.com | Saltstack | Debian | multi-support | [docs](https://appscode.com/products/cloud-deployment/) | | Commercial -KCluster.io | | multi-support | multi-support | [docs](https://kcluster.io) | | Commercial -Platform9 | | multi-support | multi-support | [docs](https://platform9.com/products/kubernetes/) | | Commercial -GCE | Saltstack | Debian | GCE | [docs](/docs/getting-started-guides/gce) | ['œ“][1] | Project -Azure Container Service | | Ubuntu | Azure | [docs](https://azure.microsoft.com/en-us/services/container-service/) | | Commercial -Azure (IaaS) | | Ubuntu | Azure | [docs](/docs/getting-started-guides/azure) | | [Community (Microsoft)](https://github.com/Azure/acs-engine) -Docker Single Node | custom | N/A | local | [docs](/docs/getting-started-guides/docker) | | Project ([@brendandburns](https://github.com/brendandburns)) -Docker Multi Node | custom | N/A | flannel | [docs](/docs/getting-started-guides/docker-multinode) | | Project ([@brendandburns](https://github.com/brendandburns)) -Bare-metal | Ansible | Fedora | flannel | [docs](/docs/getting-started-guides/fedora/fedora_ansible_config) | | Project -Bare-metal | custom | Fedora | _none_ | [docs](/docs/getting-started-guides/fedora/fedora_manual_config) | | Project -Bare-metal | custom | Fedora | flannel | [docs](/docs/getting-started-guides/fedora/flannel_multi_node_cluster) | | Community ([@aveshagarwal](https://github.com/aveshagarwal)) -libvirt | custom | Fedora | flannel | [docs](/docs/getting-started-guides/fedora/flannel_multi_node_cluster) | | Community ([@aveshagarwal](https://github.com/aveshagarwal)) -KVM | custom | Fedora | flannel | [docs](/docs/getting-started-guides/fedora/flannel_multi_node_cluster) | | Community ([@aveshagarwal](https://github.com/aveshagarwal)) -Mesos/Docker | custom | Ubuntu | Docker | [docs](/docs/getting-started-guides/mesos-docker) | | Community ([Kubernetes-Mesos Authors](https://github.com/mesosphere/kubernetes-mesos/blob/master/AUTHORS.md)) -Mesos/GCE | | | | [docs](/docs/getting-started-guides/mesos) | | Community ([Kubernetes-Mesos Authors](https://github.com/mesosphere/kubernetes-mesos/blob/master/AUTHORS.md)) -DCOS | Marathon | CoreOS/Alpine | custom | [docs](/docs/getting-started-guides/dcos) | | Community ([Kubernetes-Mesos Authors](https://github.com/mesosphere/kubernetes-mesos/blob/master/AUTHORS.md)) -AWS | CoreOS | CoreOS | flannel | [docs](/docs/getting-started-guides/aws) | | Community -GCE | CoreOS | CoreOS | flannel | [docs](/docs/getting-started-guides/coreos) | | Community ([@pires](https://github.com/pires)) -Vagrant | CoreOS | CoreOS | flannel | [docs](/docs/getting-started-guides/coreos) | | Community ([@pires](https://github.com/pires), [@AntonioMeireles](https://github.com/AntonioMeireles)) -Bare-metal (Offline) | CoreOS | CoreOS | flannel | [docs](/docs/getting-started-guides/coreos/bare_metal_offline) | | Community ([@jeffbean](https://github.com/jeffbean)) -CloudStack | Ansible | CoreOS | flannel | [docs](/docs/getting-started-guides/cloudstack) | | Community ([@runseb](https://github.com/runseb)) -Vmware vSphere | Saltstack | Debian | OVS | [docs](/docs/getting-started-guides/vsphere) | | Community ([@imkin](https://github.com/imkin)) -Vmware Photon | Saltstack | Debian | OVS | [docs](/docs/getting-started-guides/photon-controller) | | Community ([@alainroy](https://github.com/alainroy)) -Bare-metal | custom | CentOS | _none_ | [docs](/docs/getting-started-guides/centos/centos_manual_config) | | Community ([@coolsvap](https://github.com/coolsvap)) -AWS | Juju | Ubuntu | flannel | [docs](/docs/getting-started-guides/ubuntu/automated) | | [Community](https://github.com/juju-solutions/bundle-canonical-kubernetes) ( [@matt](https://github.com/mbruzek), [@chuck]*(https://github.com/chuckbutler) ) -GCE | Juju | Ubuntu | flannel | [docs](/docs/getting-started-guides/ubuntu/automated) | | [Community](https://github.com/juju-solutions/bundle-canonical-kubernetes) ( [@matt](https://github.com/mbruzek), [@chuck]*(https://github.com/chuckbutler) ) -Bare Metal | Juju | Ubuntu | flannel | [docs](/docs/getting-started-guides/ubuntu/automated) | | [Community](https://github.com/juju-solutions/bundle-canonical-kubernetes) ( [@matt](https://github.com/mbruzek), [@chuck]*(https://github.com/chuckbutler) ) -Rackspace | Juju | Ubuntu | flannel | [docs](/docs/getting-started-guides/ubuntu/automated) | | [Community](https://github.com/juju-solutions/bundle-canonical-kubernetes) ( [@matt](https://github.com/mbruzek), [@chuck]*(https://github.com/chuckbutler) ) -Vmware vSphere | Juju | Ubuntu | flannel | [docs](/docs/getting-started-guides/ubuntu/automated) | | [Community](https://github.com/juju-solutions/bundle-canonical-kubernetes) ( [@matt](https://github.com/mbruzek), [@chuck]*(https://github.com/chuckbutler) ) -AWS | Saltstack | Debian | AWS | [docs](/docs/getting-started-guides/aws) | | Community ([@justinsb](https://github.com/justinsb)) -AWS | kops | Debian | AWS | [docs](https://github.com/kubernetes/kops) | | Community ([@justinsb](https://github.com/justinsb)) -Bare-metal | custom | Ubuntu | flannel | [docs](/docs/getting-started-guides/ubuntu) | | Community ([@resouer](https://github.com/resouer), [@WIZARD-CXY](https://github.com/WIZARD-CXY)) -libvirt/KVM | CoreOS | CoreOS | libvirt/KVM | [docs](/docs/getting-started-guides/libvirt-coreos) | | Community ([@lhuard1A](https://github.com/lhuard1A)) -oVirt | | | | [docs](/docs/getting-started-guides/ovirt) | | Community ([@simon3z](https://github.com/simon3z)) -OpenStack Heat | Saltstack | CentOS | Neutron + flannel hostgw | [docs](/docs/getting-started-guides/openstack-heat) | | Community ([@FujitsuEnablingSoftwareTechnologyGmbH](https://github.com/FujitsuEnablingSoftwareTechnologyGmbH)) -Rackspace | CoreOS | CoreOS | flannel | [docs](/docs/getting-started-guides/rackspace) | | Community ([@doublerr](https://github.com/doublerr)) -any | any | any | any | [docs](/docs/getting-started-guides/scratch) | | Community ([@erictune](https://github.com/erictune)) +IaaS Provider | Config. Mgmt | OS | Networking | Docs | Support Level +-------------------- | ------------ | ------ | ---------- | --------------------------------------------- | ---------------------------- +GKE | | | GCE | [docs](https://cloud.google.com/container-engine) | Commercial +Stackpoint.io | | multi-support | multi-support | [docs](http://www.stackpointcloud.com) | Commercial +AppsCode.com | Saltstack | Debian | multi-support | [docs](https://appscode.com/products/cloud-deployment/) | Commercial +KCluster.io | | multi-support | multi-support | [docs](https://kcluster.io) | Commercial +Platform9 | | multi-support | multi-support | [docs](https://platform9.com/products/kubernetes/) | Commercial +GCE | Saltstack | Debian | GCE | [docs](/docs/getting-started-guides/gce) | Project +Azure Container Service | | Ubuntu | Azure | [docs](https://azure.microsoft.com/en-us/services/container-service/) | Commercial +Azure (IaaS) | | Ubuntu | Azure | [docs](/docs/getting-started-guides/azure) | [Community (Microsoft)](https://github.com/Azure/acs-engine) +Docker Single Node | custom | N/A | local | [docs](/docs/getting-started-guides/docker) | Project ([@brendandburns](https://github.com/brendandburns)) +Docker Multi Node | custom | N/A | flannel | [docs](/docs/getting-started-guides/docker-multinode) | Project ([@brendandburns](https://github.com/brendandburns)) +Bare-metal | Ansible | Fedora | flannel | [docs](/docs/getting-started-guides/fedora/fedora_ansible_config) | Project +Bare-metal | custom | Fedora | _none_ | [docs](/docs/getting-started-guides/fedora/fedora_manual_config) | Project +Bare-metal | custom | Fedora | flannel | [docs](/docs/getting-started-guides/fedora/flannel_multi_node_cluster) | Community ([@aveshagarwal](https://github.com/aveshagarwal)) +libvirt | custom | Fedora | flannel | [docs](/docs/getting-started-guides/fedora/flannel_multi_node_cluster) | Community ([@aveshagarwal](https://github.com/aveshagarwal)) +KVM | custom | Fedora | flannel | [docs](/docs/getting-started-guides/fedora/flannel_multi_node_cluster) | Community ([@aveshagarwal](https://github.com/aveshagarwal)) +Mesos/Docker | custom | Ubuntu | Docker | [docs](/docs/getting-started-guides/mesos-docker) | Community ([Kubernetes-Mesos Authors](https://github.com/mesosphere/kubernetes-mesos/blob/master/AUTHORS.md)) +Mesos/GCE | | | | [docs](/docs/getting-started-guides/mesos) | Community ([Kubernetes-Mesos Authors](https://github.com/mesosphere/kubernetes-mesos/blob/master/AUTHORS.md)) +DCOS | Marathon | CoreOS/Alpine | custom | [docs](/docs/getting-started-guides/dcos) | Community ([Kubernetes-Mesos Authors](https://github.com/mesosphere/kubernetes-mesos/blob/master/AUTHORS.md)) +AWS | CoreOS | CoreOS | flannel | [docs](/docs/getting-started-guides/aws) | Community +GCE | CoreOS | CoreOS | flannel | [docs](/docs/getting-started-guides/coreos) | Community ([@pires](https://github.com/pires)) +Vagrant | CoreOS | CoreOS | flannel | [docs](/docs/getting-started-guides/coreos) | Community ([@pires](https://github.com/pires), [@AntonioMeireles](https://github.com/AntonioMeireles)) +Bare-metal (Offline) | CoreOS | CoreOS | flannel | [docs](/docs/getting-started-guides/coreos/bare_metal_offline) | Community ([@jeffbean](https://github.com/jeffbean)) +CloudStack | Ansible | CoreOS | flannel | [docs](/docs/getting-started-guides/cloudstack) | Community ([@runseb](https://github.com/runseb)) +Vmware vSphere | Saltstack | Debian | OVS | [docs](/docs/getting-started-guides/vsphere) | Community ([@imkin](https://github.com/imkin)) +Vmware Photon | Saltstack | Debian | OVS | [docs](/docs/getting-started-guides/photon-controller) | Community ([@alainroy](https://github.com/alainroy)) +Bare-metal | custom | CentOS | _none_ | [docs](/docs/getting-started-guides/centos/centos_manual_config) | Community ([@coolsvap](https://github.com/coolsvap)) +AWS | Juju | Ubuntu | flannel | [docs](/docs/getting-started-guides/ubuntu/automated) | [Community](https://github.com/juju-solutions/bundle-canonical-kubernetes) ( [@matt](https://github.com/mbruzek), [@chuck]*(https://github.com/chuckbutler) ) +GCE | Juju | Ubuntu | flannel | [docs](/docs/getting-started-guides/ubuntu/automated) | [Community](https://github.com/juju-solutions/bundle-canonical-kubernetes) ( [@matt](https://github.com/mbruzek), [@chuck]*(https://github.com/chuckbutler) ) +Bare Metal | Juju | Ubuntu | flannel | [docs](/docs/getting-started-guides/ubuntu/automated) | [Community](https://github.com/juju-solutions/bundle-canonical-kubernetes) ( [@matt](https://github.com/mbruzek), [@chuck]*(https://github.com/chuckbutler) ) +Rackspace | Juju | Ubuntu | flannel | [docs](/docs/getting-started-guides/ubuntu/automated) | [Community](https://github.com/juju-solutions/bundle-canonical-kubernetes) ( [@matt](https://github.com/mbruzek), [@chuck]*(https://github.com/chuckbutler) ) +Vmware vSphere | Juju | Ubuntu | flannel | [docs](/docs/getting-started-guides/ubuntu/automated) | [Community](https://github.com/juju-solutions/bundle-canonical-kubernetes) ( [@matt](https://github.com/mbruzek), [@chuck]*(https://github.com/chuckbutler) ) +AWS | Saltstack | Debian | AWS | [docs](/docs/getting-started-guides/aws) | Community ([@justinsb](https://github.com/justinsb)) +AWS | kops | Debian | AWS | [docs](https://github.com/kubernetes/kops) | Community ([@justinsb](https://github.com/justinsb)) +Bare-metal | custom | Ubuntu | flannel | [docs](/docs/getting-started-guides/ubuntu) | Community ([@resouer](https://github.com/resouer), [@WIZARD-CXY](https://github.com/WIZARD-CXY)) +libvirt/KVM | CoreOS | CoreOS | libvirt/KVM | [docs](/docs/getting-started-guides/libvirt-coreos) | Community ([@lhuard1A](https://github.com/lhuard1A)) +oVirt | | | | [docs](/docs/getting-started-guides/ovirt) | Community ([@simon3z](https://github.com/simon3z)) +OpenStack Heat | Saltstack | CentOS | Neutron + flannel hostgw | [docs](/docs/getting-started-guides/openstack-heat) | Community ([@FujitsuEnablingSoftwareTechnologyGmbH](https://github.com/FujitsuEnablingSoftwareTechnologyGmbH)) +Rackspace | CoreOS | CoreOS | flannel | [docs](/docs/getting-started-guides/rackspace) | Community ([@doublerr](https://github.com/doublerr)) +any | any | any | any | [docs](/docs/getting-started-guides/scratch) | Community ([@erictune](https://github.com/erictune)) *Note*: The above table is ordered by version test/used in notes followed by support level. diff --git a/docs/getting-started-guides/kops.md b/docs/getting-started-guides/kops.md index 778abe188c..90ea6546a2 100644 --- a/docs/getting-started-guides/kops.md +++ b/docs/getting-started-guides/kops.md @@ -135,7 +135,7 @@ GPU and non-GPU instances. Run "kops update cluster" to create your cluster in AWS: -`kops update cluster useast1.dev.awsdata.com --yes` +`kops update cluster useast1.dev.example.com --yes` That takes a few seconds to run, but then your cluster will likely take a few minutes to actually be ready. `kops update cluster` will be the tool you'll use whenever you change the configuration of your cluster; it diff --git a/docs/user-guide/cron-jobs.md b/docs/user-guide/cron-jobs.md index 89cb58c0b8..9124852a80 100644 --- a/docs/user-guide/cron-jobs.md +++ b/docs/user-guide/cron-jobs.md @@ -9,7 +9,7 @@ title: Cron Jobs * TOC {:toc} -## What is a _Cron Job_? +## What is a Cron Job? A _Cron Job_ manages time based [Jobs](/docs/user-guide/jobs/), namely: diff --git a/docs/user-guide/deployments.md b/docs/user-guide/deployments.md index e5d0428732..c53c1e19ae 100644 --- a/docs/user-guide/deployments.md +++ b/docs/user-guide/deployments.md @@ -8,7 +8,7 @@ title: Deployments * TOC {:toc} -## What is a _Deployment_? +## What is a Deployment? A _Deployment_ provides declarative updates for [Pods](/docs/user-guide/pods/) and [Replica Sets](/docs/user-guide/replicasets/) (the next-generation Replication Controller). You only need to describe the desired state in a Deployment object, and the Deployment diff --git a/docs/user-guide/jobs.md b/docs/user-guide/jobs.md index 4e7d20be31..0d71bc5e56 100644 --- a/docs/user-guide/jobs.md +++ b/docs/user-guide/jobs.md @@ -8,7 +8,7 @@ title: Jobs * TOC {:toc} -## What is a _job_? +## What is a job? A _job_ creates one or more pods and ensures that a specified number of them successfully terminate. As pods successfully complete, the _job_ tracks the successful completions. When a specified number diff --git a/docs/user-guide/kubectl/kubectl_get.md b/docs/user-guide/kubectl/kubectl_get.md index d15799e08b..439f2b1ed0 100644 --- a/docs/user-guide/kubectl/kubectl_get.md +++ b/docs/user-guide/kubectl/kubectl_get.md @@ -52,7 +52,7 @@ kubectl get [(-o|--output=)json|yaml|wide|custom-columns=...|custom-columns-file ### Examples -``` +```{% raw %} # List all pods in ps output format. kubectl get pods @@ -76,7 +76,7 @@ kubectl get [(-o|--output=)json|yaml|wide|custom-columns=...|custom-columns-file # List one or more resources by their type and names. kubectl get rc/web service/frontend pods/web-pod-13je7 -``` +{% endraw %}``` ### Options diff --git a/docs/user-guide/node-selection/index.md b/docs/user-guide/node-selection/index.md index e869432ef0..b2f13bd5ae 100644 --- a/docs/user-guide/node-selection/index.md +++ b/docs/user-guide/node-selection/index.md @@ -5,8 +5,6 @@ assignees: title: Assigning Pods to Nodes --- -# Constraining pods to run on particular nodes - You can constrain a [pod](/docs/user-guide/pods/) to only be able to run on particular [nodes](/docs/admin/node/) or to prefer to run on particular nodes. There are several ways to do this, and they all use [label selectors](/docs/user-guide/labels/) to make the selection. diff --git a/docs/user-guide/pod-security-policy/index.md b/docs/user-guide/pod-security-policy/index.md index 8f5920b19e..c2de42162c 100644 --- a/docs/user-guide/pod-security-policy/index.md +++ b/docs/user-guide/pod-security-policy/index.md @@ -13,7 +13,7 @@ See [PodSecurityPolicy proposal](https://github.com/kubernetes/kubernetes/blob/{ * TOC {:toc} -## What is a _Pod Security Policy_? +## What is a Pod Security Policy? A _Pod Security Policy_ is a cluster-level resource that controls the actions that a pod can perform and what it has the ability to access. The @@ -156,3 +156,8 @@ following 1. You have enabled the api type `extensions/v1beta1/podsecuritypolicy` 1. You have enabled the admission controller `PodSecurityPolicy` 1. You have defined your policies + +## Working With RBAC + +Use PodSecurityPolicy to control access to privileged containers based on role and groups. +(see [more details](https://github.com/kubernetes/kubernetes/blob/master/examples/podsecuritypolicy/rbac/README.md)). diff --git a/docs/user-guide/pods/index.md b/docs/user-guide/pods/index.md index c2af648265..b18ae485e3 100644 --- a/docs/user-guide/pods/index.md +++ b/docs/user-guide/pods/index.md @@ -10,7 +10,7 @@ title: Pods _pods_ are the smallest deployable units of computing that can be created and managed in Kubernetes. -## What is a _pod_? +## What is a pod? A _pod_ (as in a pod of whales or pea pod) is a group of one or more containers (such as Docker containers), the shared storage for those containers, and diff --git a/docs/user-guide/replicasets.md b/docs/user-guide/replicasets.md index d740422095..f0aa08bf04 100644 --- a/docs/user-guide/replicasets.md +++ b/docs/user-guide/replicasets.md @@ -9,7 +9,7 @@ title: Replica Sets * TOC {:toc} -## What is a _Replica Set_? +## What is a Replica Set? Replica Set is the next-generation Replication Controller. The only difference between a _Replica Set_ and a diff --git a/docs/user-guide/replication-controller/index.md b/docs/user-guide/replication-controller/index.md index 30561cd241..e69c55231b 100644 --- a/docs/user-guide/replication-controller/index.md +++ b/docs/user-guide/replication-controller/index.md @@ -8,7 +8,7 @@ title: Replication Controller * TOC {:toc} -## What is a _replication controller_? +## What is a replication controller? A _replication controller_ ensures that a specified number of pod "replicas" are running at any one time. In other words, a replication controller makes sure that a pod or homogeneous set of pods are diff --git a/docs/user-guide/services/index.md b/docs/user-guide/services/index.md index 98d31db137..8151eebab9 100644 --- a/docs/user-guide/services/index.md +++ b/docs/user-guide/services/index.md @@ -4,7 +4,7 @@ assignees: title: Services --- -Kubernetes [`Pods`](/docs/user-guide/pods) are mortal. They are born and they die, and they +Kubernetes [`Pods`](/docs/user-guide/pods) are mortal. They are born and when they die, they are not resurrected. [`ReplicationControllers`](/docs/user-guide/replication-controller) in particular create and destroy `Pods` dynamically (e.g. when scaling up or down or when doing [rolling updates](/docs/user-guide/kubectl/kubectl_rolling-update)). While each `Pod` gets its own IP address, even @@ -353,59 +353,57 @@ Sometimes you don't need or want load-balancing and a single service IP. In this case, you can create "headless" services by specifying `"None"` for the cluster IP (`spec.clusterIP`). -This option allows developers to reduce coupling to the Kubernetes system, if -they desire, but leaves them freedom to do discovery in their own way. -Applications can still use a self-registration pattern and adapters for other -discovery systems could easily be built upon this API. +This option allows developers to reduce coupling to the Kubernetes system by +allowing them freedom to do discovery their own way. Applications can still use +a self-registration pattern and adapters for other discovery systems could easily +be built upon this API. -For such `Services` a cluster IP is not allocated, the kube proxy does not handle +For such `Services`, a cluster IP is not allocated, kube-proxy does not handle these services, and there is no load balancing or proxying done by the platform -for them. How DNS is automatically configured depends on if the service has -selectors or not. +for them. How DNS is automatically configured depends on whether the service has +selectors defined. ### With selectors For headless services that define selectors, the endpoints controller creates `Endpoints` records in the API, and modifies the DNS configuration to return A -records (addresses) which point directly to the `Pods` backing the `Service`. +records (addresses) that point directly to the `Pods` backing the `Service`. ### Without selectors For headless services that do not define selectors, the endpoints controller does not create `Endpoints` records. However, the DNS system looks for and configures either: - - CNAME records for `ExternalName`-type services - - A records for any `Endpoints` that share a name with the service, for all + + * CNAME records for `ExternalName`-type services + * A records for any `Endpoints` that share a name with the service, for all other types ## Publishing services - service types For some parts of your application (e.g. frontends) you may want to expose a -Service onto an external (outside of your cluster, maybe public internet) IP -address, other services should be visible only from inside of the cluster. +Service onto an external (outside of your cluster) IP address. Kubernetes `ServiceTypes` allow you to specify what kind of service you want. -The default and base type is `ClusterIP`, which exposes a service to connection -from inside the cluster. `NodePort` and `LoadBalancer` are two types that expose -services to external traffic. +The default is `ClusterIP`. -Valid values for the `ServiceType` field are: +`ServiceType` values and their behaviors are: - * `ExternalName`: map the service to the contents of the `externalName` field + * `ClusterIP`: Exposes the service on a cluster-internal IP. Choosing this value + makes the service only reachable from within the cluster. This is the + default `ServiceType`. + * `NodePort`: Exposes the service on each Node's IP at a static port (the `NodePort`). + A `ClusterIP` service, to which the NodePort service will route, is automatically + created. You'll be able to contact the `NodePort` service, from outside the cluster, + by requesting `:`. + * `LoadBalancer`: Exposes the service externally using a cloud provider's load balancer. + `NodePort` and `ClusterIP` services, to which the external load balancer will route, + are automatically created. + * `ExternalName`: Maps the service to the contents of the `externalName` field (e.g. `foo.bar.example.com`), by returning a `CNAME` record with its value. No proxying of any kind is set up. This requires version 1.7 or higher of `kube-dns`. - * `ClusterIP`: use a cluster-internal IP only - this is the default and is - discussed above. Choosing this value means that you want this service to be - reachable only from inside of the cluster. - * `NodePort`: on top of having a cluster-internal IP, expose the service on a - port on each node of the cluster (the same port on each node). You'll be able - to contact the service on any `:NodePort` address. - * `LoadBalancer`: on top of having a cluster-internal IP and exposing service - on a NodePort also, ask the cloud provider for a load balancer - which forwards to the `Service` exposed as a `:NodePort` - for each Node. ### Type NodePort @@ -420,7 +418,7 @@ will fail (i.e. you need to take care about possible port collisions yourself). The value you specify must be in the configured range for node ports. This gives developers the freedom to set up their own load balancers, to -configure cloud environments that are not fully supported by Kubernetes, or +configure environments that are not fully supported by Kubernetes, or even to just expose one or more nodes' IPs directly. Note that this Service will be visible as both `:spec.ports[*].nodePort`