From d65e1790ffc020129db5f5a583060d6fe318316a Mon Sep 17 00:00:00 2001 From: Luc Perkins Date: Tue, 6 Nov 2018 11:33:04 -0800 Subject: [PATCH] Add admonition type to shortcode (#9482) * Change existing admon blocks * Fix includes issue --- ...pelin-To-Process-Big-Data-On-Kubernetes.md | 4 +- ...018-04-11-migrating-the-kubernetes-blog.md | 2 +- .../concepts/architecture/cloud-controller.md | 2 +- .../en/docs/concepts/architecture/nodes.md | 6 +-- .../cluster-administration/logging.md | 16 ++++-- .../manage-deployment.md | 2 +- .../concepts/configuration/assign-pod-node.md | 10 ++-- .../manage-compute-resources-container.md | 12 +++-- .../organize-cluster-access-kubeconfig.md | 2 +- .../docs/concepts/configuration/overview.md | 6 +-- .../configuration/pod-priority-preemption.md | 33 +++++------- .../configuration/scheduler-perf-tuning.md | 6 ++- .../en/docs/concepts/configuration/secret.md | 10 ++-- .../configuration/taint-and-toleration.md | 4 +- content/en/docs/concepts/containers/images.md | 16 +++--- .../docs/concepts/containers/runtime-class.md | 6 +-- .../docs/concepts/example-concept-template.md | 4 +- .../api-extension/custom-resources.md | 4 +- .../declarative-config.md | 37 ++++++------- .../imperative-command.md | 5 +- .../imperative-config.md | 4 +- .../object-management-kubectl/overview.md | 6 +-- .../working-with-objects/common-labels.md | 2 +- .../overview/working-with-objects/labels.md | 2 +- .../concepts/policy/pod-security-policy.md | 6 +-- .../docs/concepts/policy/resource-quotas.md | 2 +- .../services-networking/dns-pod-service.md | 4 +- .../concepts/services-networking/ingress.md | 6 +-- .../concepts/services-networking/service.md | 20 ++++--- .../concepts/storage/persistent-volumes.md | 16 +++--- .../docs/concepts/storage/storage-classes.md | 16 ++++-- content/en/docs/concepts/storage/volumes.md | 52 +++++++++---------- .../workloads/controllers/cron-jobs.md | 3 +- .../controllers/jobs-run-to-completion.md | 2 +- .../controllers/replicationcontroller.md | 2 +- .../workloads/controllers/statefulset.md | 4 +- .../concepts/workloads/pods/pod-overview.md | 2 +- .../docs/concepts/workloads/pods/podpreset.md | 2 +- .../contribute/generate-ref-docs/kubectl.md | 2 - .../generate-ref-docs/kubernetes-api.md | 8 +-- .../kubernetes-components.md | 3 +- content/en/docs/contribute/intermediate.md | 13 +++-- content/en/docs/contribute/localization.md | 4 ++ content/en/docs/contribute/start.md | 4 +- .../contribute/style/content-organization.md | 4 +- .../style/hugo-shortcodes/example1.md | 2 +- .../contribute/style/hugo-shortcodes/index.md | 10 +++- .../docs/contribute/style/page-templates.md | 2 +- .../en/docs/contribute/style/style-guide.md | 26 +++++----- .../docs/contribute/style/write-new-topic.md | 4 +- .../snippets/atom-snippets.cson | 6 +-- .../fedora/flannel_multi_node_cluster.md | 8 ++- .../getting-started-guides/ubuntu/backups.md | 8 +-- .../ubuntu/decommissioning.md | 2 +- .../ubuntu/networking.md | 2 +- .../getting-started-guides/ubuntu/storage.md | 7 ++- .../getting-started-guides/ubuntu/upgrades.md | 4 +- .../ubuntu/validation.md | 4 +- .../getting-started-guides/windows/_index.md | 8 +-- .../docs/reference/access-authn-authz/abac.md | 4 +- .../admission-controllers.md | 16 +++--- .../access-authn-authz/authentication.md | 11 ++-- .../access-authn-authz/authorization.md | 11 ++-- .../access-authn-authz/bootstrap-tokens.md | 2 +- .../extensible-admission-controllers.md | 6 +-- .../docs/reference/access-authn-authz/rbac.md | 12 +++-- .../feature-gates.md | 2 +- .../kubelet-tls-bootstrapping.md | 4 +- .../reference/glossary/cluster-operator.md | 4 +- .../en/docs/reference/kubectl/conventions.md | 6 ++- .../kubectl/docker-cli-to-kubectl.md | 4 +- content/en/docs/reference/kubectl/overview.md | 7 ++- .../setup-tools/kubeadm/kubeadm-alpha.md | 4 +- .../setup-tools/kubeadm/kubeadm-init.md | 11 ++-- .../setup-tools/kubeadm/kubeadm-join.md | 3 +- .../docs/reference/using-api/api-overview.md | 6 +-- .../reference/using-api/deprecation-policy.md | 4 +- content/en/docs/setup/certificates.md | 2 +- .../en/docs/setup/custom-cloud/kubespray.md | 2 +- .../independent/create-cluster-kubeadm.md | 8 +-- .../setup/independent/high-availability.md | 25 ++++----- .../independent/setup-ha-etcd-with-kubeadm.md | 2 +- .../independent/troubleshooting-kubeadm.md | 2 +- content/en/docs/setup/minikube.md | 4 +- content/en/docs/setup/multiple-zones.md | 4 +- .../en/docs/setup/on-premises-metal/krib.md | 6 +-- content/en/docs/setup/pick-right-solution.md | 3 +- content/en/docs/setup/release/notes.md | 2 +- content/en/docs/setup/scratch.md | 4 +- content/en/docs/setup/turnkey/gce.md | 2 +- .../configure-access-multiple-clusters.md | 2 +- .../configure-cloud-provider-firewall.md | 11 ++-- .../connecting-frontend-backend.md | 12 +++-- .../create-external-load-balancer.md | 5 +- .../list-all-running-container-images.md | 2 +- ...load-balance-access-application-cluster.md | 4 +- ...port-forward-access-application-cluster.md | 2 +- .../configure-aggregation-layer.md | 2 +- .../custom-resource-definition-versioning.md | 4 +- .../configure-upgrade-etcd.md | 10 ++-- .../docs/tasks/administer-cluster/coredns.md | 2 +- .../cpu-management-policies.md | 8 +-- .../declare-network-policy.md | 4 +- .../tasks/administer-cluster/encrypt-data.md | 8 ++- .../extended-resource-node.md | 4 +- .../tasks/administer-cluster/ip-masq-agent.md | 6 ++- .../kubeadm/kubeadm-upgrade-ha.md | 3 +- .../cpu-constraint-namespace.md | 2 +- .../tasks/administer-cluster/namespaces.md | 4 +- .../administer-cluster/reconfigure-kubelet.md | 4 +- .../administer-cluster/safely-drain-node.md | 4 +- .../administer-cluster/securing-a-cluster.md | 4 +- .../tasks/administer-cluster/static-pod.md | 7 ++- .../administer-cluster/sysctl-cluster.md | 6 +-- .../tasks/administer-federation/configmap.md | 2 +- .../docs/tasks/administer-federation/hpa.md | 5 +- .../docs/tasks/administer-federation/job.md | 2 +- .../tasks/administer-federation/namespaces.md | 2 +- .../tasks/administer-federation/replicaset.md | 2 +- .../tasks/administer-federation/secret.md | 2 +- .../assign-cpu-resource.md | 2 +- .../attach-handler-lifecycle-event.md | 2 +- .../configure-persistent-volume-storage.md | 2 +- .../configure-pod-configmap.md | 10 ++-- .../configure-service-account.md | 6 +-- .../pull-image-private-registry.md | 2 +- .../quality-service-pod.md | 2 +- .../security-context.md | 6 +-- .../translate-compose-kubernetes.md | 13 +++-- .../tasks/debug-application-cluster/audit.md | 8 +-- .../core-metrics-pipeline.md | 2 +- .../tasks/debug-application-cluster/crictl.md | 2 +- .../debug-application.md | 2 +- .../debug-pod-replication-controller.md | 6 ++- .../debug-service.md | 14 +++-- .../events-stackdriver.md | 2 +- .../logging-elasticsearch-kibana.md | 2 +- .../logging-stackdriver.md | 23 +++++--- .../en/docs/tasks/example-task-template.md | 4 +- .../tasks/extend-kubectl/kubectl-plugins.md | 9 ++-- .../federation-service-discovery.md | 4 +- .../set-up-cluster-federation-kubefed.md | 17 +++--- .../set-up-coredns-provider-federation.md | 10 ++-- .../define-command-argument-container.md | 4 +- .../define-environment-variable-container.md | 2 +- .../distribute-credentials-secure.md | 9 ++-- ...nward-api-volume-expose-pod-information.md | 6 +-- ...ronment-variable-expose-pod-information.md | 2 +- .../job/automated-tasks-with-cron-jobs.md | 15 ++++-- .../manage-daemon/rollback-daemon-set.md | 2 +- .../tasks/manage-daemon/update-daemon-set.md | 5 +- .../tasks/run-application/configure-pdb.md | 6 ++- .../run-application/delete-stateful-set.md | 4 +- .../horizontal-pod-autoscale-walkthrough.md | 10 ++-- .../horizontal-pod-autoscale.md | 14 ++--- .../rolling-update-replication-controller.md | 2 +- .../install-service-catalog-using-helm.md | 2 +- .../tasks/tls/managing-tls-in-a-cluster.md | 2 +- .../en/docs/tasks/tools/install-kubectl.md | 12 +++-- .../en/docs/tasks/tools/install-minikube.md | 2 +- content/en/docs/test.md | 8 +-- .../en/docs/tutorials/clusters/apparmor.md | 12 +++-- content/en/docs/tutorials/hello-minikube.md | 8 +-- .../basic-stateful-set.md | 2 +- .../stateful-application/cassandra.md | 8 +-- .../mysql-wordpress-persistent-volume.md | 26 ++++++---- .../stateless-application/guestbook.md | 6 +-- .../en/includes/federation-current-state.md | 2 +- .../ko/docs/setup/custom-cloud/kubespray.md | 2 +- .../independent/create-cluster-kubeadm.md | 8 +-- .../setup/independent/high-availability.md | 14 ++--- .../independent/setup-ha-etcd-with-kubeadm.md | 2 +- .../independent/troubleshooting-kubeadm.md | 2 +- content/ko/docs/setup/multiple-zones.md | 6 ++- content/ko/docs/setup/scratch.md | 4 +- content/ko/docs/setup/turnkey/gce.md | 2 +- .../docs/admin/kubelet-tls-bootstrapping.md | 4 +- .../configuration/taint-and-toleration.md | 2 +- .../workloads/controllers/deployment.md | 22 ++++---- .../access-authn-authz/authorization.md | 2 +- .../create-external-load-balancer.md | 2 +- .../list-all-running-container-images.md | 2 +- ...load-balance-access-application-cluster.md | 4 +- ...port-forward-access-application-cluster.md | 2 +- .../kubeadm/kubeadm-upgrade-1-9.md | 4 +- .../administer-cluster/sysctl-cluster.md | 6 +-- .../tasks/debug-application-cluster/audit.md | 4 +- ...nward-api-volume-expose-pod-information.md | 2 +- layouts/shortcodes/caution.html | 4 +- layouts/shortcodes/note.html | 2 +- layouts/shortcodes/warning.html | 2 +- .../example-tutorial-template.md | 4 +- 192 files changed, 673 insertions(+), 543 deletions(-) diff --git a/content/en/blog/_posts/2016-03-00-Using-Spark-And-Zeppelin-To-Process-Big-Data-On-Kubernetes.md b/content/en/blog/_posts/2016-03-00-Using-Spark-And-Zeppelin-To-Process-Big-Data-On-Kubernetes.md index f730cab425..dcc9215c28 100644 --- a/content/en/blog/_posts/2016-03-00-Using-Spark-And-Zeppelin-To-Process-Big-Data-On-Kubernetes.md +++ b/content/en/blog/_posts/2016-03-00-Using-Spark-And-Zeppelin-To-Process-Big-Data-On-Kubernetes.md @@ -105,7 +105,9 @@ $ gsutil mb gs://my-spark-models ``` You’ll need to change this URI to something that is unique for you. This will create a bucket that you can use in the example above. -**Note** : Computing the model and saving it is much slower than computing the model and throwing it away. This is expected. However, if you plan to reuse a model, it’s faster to compute the model and save it and then restore it each time you want to use it, rather than throw away and recompute the model each time. +{{< note >}} +Computing the model and saving it is much slower than computing the model and throwing it away. This is expected. However, if you plan to reuse a model, it’s faster to compute the model and save it and then restore it each time you want to use it, rather than throw away and recompute the model each time. +{{< /note >}} ### Using Horizontal Pod Autoscaling with Spark (Optional)  Spark is somewhat elastic to workers coming and going, which means we have an opportunity: we can use use [Kubernetes Horizontal Pod Autoscaling](http://kubernetes.io/docs/user-guide/horizontal-pod-autoscaling/) to scale-out the Spark worker pool automatically, setting a target CPU threshold for the workers and a minimum/maximum pool size. This obviates the need for having to configure the number of worker replicas manually. diff --git a/content/en/blog/_posts/2018-04-11-migrating-the-kubernetes-blog.md b/content/en/blog/_posts/2018-04-11-migrating-the-kubernetes-blog.md index a6f8dd46eb..00cc541d25 100644 --- a/content/en/blog/_posts/2018-04-11-migrating-the-kubernetes-blog.md +++ b/content/en/blog/_posts/2018-04-11-migrating-the-kubernetes-blog.md @@ -30,7 +30,7 @@ You can submit a blog post for consideration one of two ways: If you have a post that you want to remain confidential until your publish date, please submit your post via the Google form. Otherwise, you can choose your submission process based on your comfort level and preferred workflow. {{< note >}} -**Note:** Our workflow hasn't changed for confidential advance drafts. Additionally, we'll coordinate publishing for time sensitive posts to ensure that information isn't released prematurely through an open pull request. +Our workflow hasn't changed for confidential advance drafts. Additionally, we'll coordinate publishing for time sensitive posts to ensure that information isn't released prematurely through an open pull request. {{< /note >}} ### Call for reviewers diff --git a/content/en/docs/concepts/architecture/cloud-controller.md b/content/en/docs/concepts/architecture/cloud-controller.md index 191b954645..714cfe365c 100644 --- a/content/en/docs/concepts/architecture/cloud-controller.md +++ b/content/en/docs/concepts/architecture/cloud-controller.md @@ -51,7 +51,7 @@ In version 1.9, the CCM runs the following controllers from the preceding list: Additionally, it runs another controller called the PersistentVolumeLabels controller. This controller is responsible for setting the zone and region labels on PersistentVolumes created in GCP and AWS clouds. {{< note >}} -**Note:** Volume controller was deliberately chosen to not be a part of CCM. Due to the complexity involved and due to the existing efforts to abstract away vendor specific volume logic, it was decided that volume controller will not be moved to CCM. +Volume controller was deliberately chosen to not be a part of CCM. Due to the complexity involved and due to the existing efforts to abstract away vendor specific volume logic, it was decided that volume controller will not be moved to CCM. {{< /note >}} The original plan to support volumes using CCM was to use Flex volumes to support pluggable volumes. However, a competing effort known as CSI is being planned to replace Flex. diff --git a/content/en/docs/concepts/architecture/nodes.md b/content/en/docs/concepts/architecture/nodes.md index 4f81dd9165..5a4d84dc17 100644 --- a/content/en/docs/concepts/architecture/nodes.md +++ b/content/en/docs/concepts/architecture/nodes.md @@ -84,7 +84,7 @@ A Pod that does not have any tolerations gets scheduled according to the old mod tolerates the taints of a particular Node can be scheduled on that Node. {{< caution >}} -**Caution:** Enabling this feature creates a small delay between the +Enabling this feature creates a small delay between the time when a condition is observed and when a taint is created. This delay is usually less than one second, but it can increase the number of Pods that are successfully scheduled but rejected by the kubelet. {{< /caution >}} @@ -128,7 +128,7 @@ services are running -- it is eligible to run a pod. Otherwise, it is ignored for any cluster activity until it becomes valid. {{< note >}} -**Note:** Kubernetes keeps the object for the invalid node and keeps checking to see whether it becomes valid. +Kubernetes keeps the object for the invalid node and keeps checking to see whether it becomes valid. You must explicitly delete the Node object to stop this process. {{< /note >}} @@ -241,7 +241,7 @@ kubectl cordon $NODENAME ``` {{< note >}} -**Note:** Pods created by a DaemonSet controller bypass the Kubernetes scheduler +Pods created by a DaemonSet controller bypass the Kubernetes scheduler and do not respect the unschedulable attribute on a node. This assumes that daemons belong on the machine even if it is being drained of applications while it prepares for a reboot. {{< /note >}} diff --git a/content/en/docs/concepts/cluster-administration/logging.md b/content/en/docs/concepts/cluster-administration/logging.md index f64e0e0aa3..d6aa8c45de 100644 --- a/content/en/docs/concepts/cluster-administration/logging.md +++ b/content/en/docs/concepts/cluster-administration/logging.md @@ -57,7 +57,9 @@ You can use `kubectl logs` to retrieve logs from a previous instantiation of a c Everything a containerized application writes to `stdout` and `stderr` is handled and redirected somewhere by a container engine. For example, the Docker container engine redirects those two streams to [a logging driver](https://docs.docker.com/engine/admin/logging/overview), which is configured in Kubernetes to write to a file in json format. -**Note:** The Docker json logging driver treats each line as a separate message. When using the Docker logging driver, there is no direct support for multi-line messages. You need to handle multi-line messages at the logging agent level or higher. +{{< note >}} +The Docker json logging driver treats each line as a separate message. When using the Docker logging driver, there is no direct support for multi-line messages. You need to handle multi-line messages at the logging agent level or higher. +{{< /note >}} By default, if a container restarts, the kubelet keeps one terminated container with its logs. If a pod is evicted from the node, all corresponding containers are also evicted, along with their logs. @@ -81,13 +83,15 @@ When you run [`kubectl logs`](/docs/reference/generated/kubectl/kubectl-commands the basic logging example, the kubelet on the node handles the request and reads directly from the log file, returning the contents in the response. -**Note:** Currently, if some external system has performed the rotation, +{{< note >}} +Currently, if some external system has performed the rotation, only the contents of the latest log file will be available through `kubectl logs`. E.g. if there's a 10MB file, `logrotate` performs the rotation and there are two files, one 10MB in size and one empty, `kubectl logs` will return an empty response. [cosConfigureHelper]: https://github.com/kubernetes/kubernetes/blob/{{< param "githubbranch" >}}/cluster/gce/gci/configure-helper.sh +{{< /note >}} ### System component logs @@ -215,10 +219,12 @@ If the node-level logging agent is not flexible enough for your situation, you can create a sidecar container with a separate logging agent that you have configured specifically to run with your application. -**Note**: Using a logging agent in a sidecar container can lead +{{< note >}} +Using a logging agent in a sidecar container can lead to significant resource consumption. Moreover, you won't be able to access those logs using `kubectl logs` command, because they are not controlled by the kubelet. +{{< /note >}} As an example, you could use [Stackdriver](/docs/tasks/debug-application-cluster/logging-stackdriver/), which uses fluentd as a logging agent. Here are two configuration files that @@ -227,9 +233,11 @@ a [ConfigMap](/docs/tasks/configure-pod-container/configure-pod-configmap/) to c {{< codenew file="admin/logging/fluentd-sidecar-config.yaml" >}} -**Note**: The configuration of fluentd is beyond the scope of this article. For +{{< note >}} +The configuration of fluentd is beyond the scope of this article. For information about configuring fluentd, see the [official fluentd documentation](http://docs.fluentd.org/). +{{< /note >}} The second file describes a pod that has a sidecar container running fluentd. The pod mounts a volume where fluentd can pick up its configuration data. diff --git a/content/en/docs/concepts/cluster-administration/manage-deployment.md b/content/en/docs/concepts/cluster-administration/manage-deployment.md index e32fe5b8fb..0288c73efa 100644 --- a/content/en/docs/concepts/cluster-administration/manage-deployment.md +++ b/content/en/docs/concepts/cluster-administration/manage-deployment.md @@ -331,7 +331,7 @@ Currently, resources are created without this annotation, so the first invocatio All subsequent calls to `kubectl apply`, and other commands that modify the configuration, such as `kubectl replace` and `kubectl edit`, will update the annotation, allowing subsequent calls to `kubectl apply` to detect and perform deletions using a three-way diff. {{< note >}} -**Note:** To use apply, always create resource initially with either `kubectl apply` or `kubectl create --save-config`. +To use apply, always create resource initially with either `kubectl apply` or `kubectl create --save-config`. {{< /note >}} ### kubectl edit diff --git a/content/en/docs/concepts/configuration/assign-pod-node.md b/content/en/docs/concepts/configuration/assign-pod-node.md index d1d9cffc53..5a0f861654 100644 --- a/content/en/docs/concepts/configuration/assign-pod-node.md +++ b/content/en/docs/concepts/configuration/assign-pod-node.md @@ -87,7 +87,7 @@ with a standard set of labels. As of Kubernetes v1.4 these labels are * `beta.kubernetes.io/arch` {{< note >}} -**Note:** The value of these labels is cloud provider specific and is not guaranteed to be reliable. +The value of these labels is cloud provider specific and is not guaranteed to be reliable. For example, the value of `kubernetes.io/hostname` may be the same as the Node name in some environments and a different value in other environments. {{< /note >}} @@ -173,11 +173,15 @@ like node, rack, cloud provider zone, cloud provider region, etc. You express it key for the node label that the system uses to denote such a topology domain, e.g. see the label keys listed above in the section [Interlude: built-in node labels](#interlude-built-in-node-labels). -**Note:** Inter-pod affinity and anti-affinity require substantial amount of +{{< note >}} +Inter-pod affinity and anti-affinity require substantial amount of processing which can slow down scheduling in large clusters significantly. We do not recommend using them in clusters larger than several hundred nodes. +{{< /note >}} -**Note:** Pod anti-affinity requires nodes to be consistently labelled, i.e. every node in the cluster must have an appropriate label matching `topologyKey`. If some or all nodes are missing the specified `topologyKey` label, it can lead to unintended behavior. +{{< note >}} +Pod anti-affinity requires nodes to be consistently labelled, i.e. every node in the cluster must have an appropriate label matching `topologyKey`. If some or all nodes are missing the specified `topologyKey` label, it can lead to unintended behavior. +{{< /note >}} As with node affinity, there are currently two types of pod affinity and anti-affinity, called `requiredDuringSchedulingIgnoredDuringExecution` and `preferredDuringSchedulingIgnoredDuringExecution` which denote "hard" vs. "soft" requirements. diff --git a/content/en/docs/concepts/configuration/manage-compute-resources-container.md b/content/en/docs/concepts/configuration/manage-compute-resources-container.md index 86c2faa1fe..b05b2e508d 100644 --- a/content/en/docs/concepts/configuration/manage-compute-resources-container.md +++ b/content/en/docs/concepts/configuration/manage-compute-resources-container.md @@ -149,7 +149,9 @@ When using Docker: multiplied by 100. The resulting value is the total amount of CPU time that a container can use every 100ms. A container cannot use more than its share of CPU time during this interval. - {{< note >}}**Note**: The default quota period is 100ms. The minimum resolution of CPU quota is 1ms.{{}} + {{< note >}} + The default quota period is 100ms. The minimum resolution of CPU quota is 1ms. + {{}} - The `spec.containers[].resources.limits.memory` is converted to an integer, and used as the value of the @@ -317,7 +319,7 @@ Kubernetes version 1.8 introduces a new resource, _ephemeral-storage_ for managi This partition is “ephemeral” and applications cannot expect any performance SLAs (Disk IOPS for example) from this partition. Local ephemeral storage management only applies for the root partition; the optional partition for image layer and writable layer is out of scope. {{< note >}} -**Note:** If an optional runtime partition is used, root partition will not hold any image layer or writable layers. +If an optional runtime partition is used, root partition will not hold any image layer or writable layers. {{< /note >}} ### Requests and limits setting for local ephemeral storage @@ -420,7 +422,7 @@ http://k8s-master:8080/api/v1/nodes/k8s-node-1/status ``` {{< note >}} -**Note**: In the preceding request, `~1` is the encoding for the character `/` +In the preceding request, `~1` is the encoding for the character `/` in the patch path. The operation path value in JSON-Patch is interpreted as a JSON-Pointer. For more details, see [IETF RFC 6901, section 3](https://tools.ietf.org/html/rfc6901#section-3). @@ -476,7 +478,7 @@ Examples of _valid_ quantities are `3`, `3000m` and `3Ki`. Examples of _invalid_ quantities are `0.5` and `1500m`. {{< note >}} -**Note:** Extended resources replace Opaque Integer Resources. +Extended resources replace Opaque Integer Resources. Users can use any domain name prefix other than `kubernetes.io` which is reserved. {{< /note >}} @@ -484,7 +486,7 @@ To consume an extended resource in a Pod, include the resource name as a key in the `spec.containers[].resources.limits` map in the container spec. {{< note >}} -**Note:** Extended resources cannot be overcommitted, so request and limit +Extended resources cannot be overcommitted, so request and limit must be equal if both are present in a container spec. {{< /note >}} diff --git a/content/en/docs/concepts/configuration/organize-cluster-access-kubeconfig.md b/content/en/docs/concepts/configuration/organize-cluster-access-kubeconfig.md index d48b600bef..8a77e153df 100644 --- a/content/en/docs/concepts/configuration/organize-cluster-access-kubeconfig.md +++ b/content/en/docs/concepts/configuration/organize-cluster-access-kubeconfig.md @@ -12,7 +12,7 @@ find the information it needs to choose a cluster and communicate with the API s of a cluster. {{< note >}} -**Note:** A file that is used to configure access to clusters is called +A file that is used to configure access to clusters is called a *kubeconfig file*. This is a generic way of referring to configuration files. It does not mean that there is a file named `kubeconfig`. {{< /note >}} diff --git a/content/en/docs/concepts/configuration/overview.md b/content/en/docs/concepts/configuration/overview.md index 932e0a93eb..b7d74b4abe 100644 --- a/content/en/docs/concepts/configuration/overview.md +++ b/content/en/docs/concepts/configuration/overview.md @@ -84,15 +84,15 @@ The [imagePullPolicy](/docs/concepts/containers/images/#updating-images) and the - `imagePullPolicy: Never`: the image is assumed to exist locally. No attempt is made to pull the image. {{< note >}} - **Note:** To make sure the container always uses the same version of the image, you can specify its [digest](https://docs.docker.com/engine/reference/commandline/pull/#pull-an-image-by-digest-immutable-identifier), for example `sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2`. The digest uniquely identifies a specific version of the image, so it is never updated by Kubernetes unless you change the digest value. +To make sure the container always uses the same version of the image, you can specify its [digest](https://docs.docker.com/engine/reference/commandline/pull/#pull-an-image-by-digest-immutable-identifier), for example `sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2`. The digest uniquely identifies a specific version of the image, so it is never updated by Kubernetes unless you change the digest value. {{< /note >}} {{< note >}} - **Note:** You should avoid using the `:latest` tag when deploying containers in production as it is harder to track which version of the image is running and more difficult to roll back properly. +You should avoid using the `:latest` tag when deploying containers in production as it is harder to track which version of the image is running and more difficult to roll back properly. {{< /note >}} {{< note >}} - **Note:** The caching semantics of the underlying image provider make even `imagePullPolicy: Always` efficient. With Docker, for example, if the image already exists, the pull attempt is fast because all image layers are cached and no image download is needed. +The caching semantics of the underlying image provider make even `imagePullPolicy: Always` efficient. With Docker, for example, if the image already exists, the pull attempt is fast because all image layers are cached and no image download is needed. {{< /note >}} ## Using kubectl diff --git a/content/en/docs/concepts/configuration/pod-priority-preemption.md b/content/en/docs/concepts/configuration/pod-priority-preemption.md index 6349a0b56a..c9b2ff7c6d 100644 --- a/content/en/docs/concepts/configuration/pod-priority-preemption.md +++ b/content/en/docs/concepts/configuration/pod-priority-preemption.md @@ -36,7 +36,7 @@ Kubernetes Version | Priority and Preemption State | Enabled by default 1.10 | alpha | no 1.11 | beta | yes -{{< warning >}} **Warning**: In a cluster where not all users are trusted, a +{{< warning >}}In a cluster where not all users are trusted, a malicious user could create pods at the highest possible priorities, causing other pods to be evicted/not get scheduled. To resolve this issue, [ResourceQuota](https://kubernetes.io/docs/concepts/policy/resource-quotas/) is @@ -71,24 +71,13 @@ Pods. ## How to disable preemption -{{< note >}} **Note**: In Kubernetes 1.11, critical pods (except DaemonSet pods, -which are still scheduled by the DaemonSet controller) rely on scheduler -preemption to be scheduled when a cluster is under resource pressure. For this -reason, you will need to run an older version of Rescheduler if you decide to -disable preemption. More on this is provided below. {{< /note >}} - -#### Option 1: Disable both Pod priority and preemption - -Disabling Pod priority disables preemption as well. In order to disable Pod -Priority, set the feature to false for API server, Scheduler, and Kubelet. -Disabling the feature on Kubelets is not vital. You can leave the feature on for -Kubelets if rolling out is hard. - -``` ---feature-gates=PodPriority=false -``` - -#### Option 2: Disable Preemption only +{{< note >}} +In Kubernetes 1.11, critical pods (except DaemonSet pods, which are +still scheduled by the DaemonSet controller) rely on scheduler preemption to be +scheduled when a cluster is under resource pressure. For this reason, you will +need to run an older version of Rescheduler if you decide to disable preemption. +More on this is provided below. +{{< /note >}} In Kubernetes 1.11 and later, preemption is controlled by a kube-scheduler flag `disablePreemption`, which is set to `false` by default. @@ -266,11 +255,13 @@ A Node is considered for preemption only when the answer to this question is yes: "If all the Pods with lower priority than the pending Pod are removed from the Node, can the pending Pod be scheduled on the Node?" -{{< note >}} **Note:** Preemption does not necessarily remove all lower-priority +{{< note >}} +Preemption does not necessarily remove all lower-priority Pods. If the pending Pod can be scheduled by removing fewer than all lower-priority Pods, then only a portion of the lower-priority Pods are removed. Even so, the answer to the preceding question must be yes. If the answer is no, -the Node is not considered for preemption. {{< /note >}} +the Node is not considered for preemption. +{{< /note >}} If a pending Pod has inter-pod affinity to one or more of the lower-priority Pods on the Node, the inter-Pod affinity rule cannot be satisfied in the absence diff --git a/content/en/docs/concepts/configuration/scheduler-perf-tuning.md b/content/en/docs/concepts/configuration/scheduler-perf-tuning.md index f0dcfa47ed..41ce9dfb1a 100644 --- a/content/en/docs/concepts/configuration/scheduler-perf-tuning.md +++ b/content/en/docs/concepts/configuration/scheduler-perf-tuning.md @@ -45,9 +45,11 @@ algorithmSource: percentageOfNodesToScore: 50 ``` -{{< note >}} **Note**: In clusters with zero or less than 50 feasible nodes, the +{{< note >}} +In clusters with zero or less than 50 feasible nodes, the scheduler still checks all the nodes, simply because there are not enough -feasible nodes to stop the scheduler's search early. {{< /note >}} +feasible nodes to stop the scheduler's search early. +{{< /note >}} **To disable this feature**, you can set `percentageOfNodesToScore` to 100. diff --git a/content/en/docs/concepts/configuration/secret.md b/content/en/docs/concepts/configuration/secret.md index b98137b871..c7ebe895c1 100644 --- a/content/en/docs/concepts/configuration/secret.md +++ b/content/en/docs/concepts/configuration/secret.md @@ -353,7 +353,7 @@ propagation delay, where cache propagation delay depends on the chosen cache typ (it equals to watch propagation delay, ttl of cache, or zero corespondingly). {{< note >}} -**Note:** A container using a Secret as a +A container using a Secret as a [subPath](/docs/concepts/storage/volumes#using-subpath) volume mount will not receive Secret updates. {{< /note >}} @@ -492,7 +492,7 @@ $ kubectl create secret generic ssh-key-secret --from-file=ssh-privatekey=/path/ ``` {{< caution >}} -**Caution:** Think carefully before sending your own ssh keys: other users of the cluster may have access to the secret. Use a service account which you want to be accessible to all the users with whom you share the Kubernetes cluster, and can revoke if they are compromised. +Think carefully before sending your own ssh keys: other users of the cluster may have access to the secret. Use a service account which you want to be accessible to all the users with whom you share the Kubernetes cluster, and can revoke if they are compromised. {{< /caution >}} @@ -544,7 +544,7 @@ $ kubectl create secret generic test-db-secret --from-literal=username=testuser secret "test-db-secret" created ``` {{< note >}} -**Note:** Special characters such as `$`, `\*`, and `!` require escaping. +Special characters such as `$`, `\*`, and `!` require escaping. If the password you are using has special characters, you need to escape them using the `\\` character. For example, if your actual password is `S!B\*d$zDsb`, you should execute the command this way: kubectl create secret generic dev-db-secret --from-literal=username=devuser --from-literal=password=S\\!B\\\*d\\$zDsb @@ -665,7 +665,7 @@ the `dotfile-test-container` will have this file present at the path `/etc/secret-volume/.secret-file`. {{< note >}} -**Note**: Files beginning with dot characters are hidden from the output of `ls -l`; +Files beginning with dot characters are hidden from the output of `ls -l`; you must use `ls -la` to see them when listing directory contents. {{< /note >}} @@ -774,7 +774,7 @@ Pod level](#use-case-secret-visible-to-one-container-in-a-pod). single node. {{< note >}} -**Note:** As of 1.7 [encryption of secret data at rest is supported](/docs/tasks/administer-cluster/encrypt-data/). +As of 1.7 [encryption of secret data at rest is supported](/docs/tasks/administer-cluster/encrypt-data/). {{< /note >}} {{% capture whatsnext %}} diff --git a/content/en/docs/concepts/configuration/taint-and-toleration.md b/content/en/docs/concepts/configuration/taint-and-toleration.md index bb41dca5f0..074cd82c02 100644 --- a/content/en/docs/concepts/configuration/taint-and-toleration.md +++ b/content/en/docs/concepts/configuration/taint-and-toleration.md @@ -69,7 +69,7 @@ A toleration "matches" a taint if the keys are the same and the effects are the `Operator` defaults to `Equal` if not specified. {{< note >}} -**Note:** There are two special cases: +There are two special cases: * An empty `key` with operator `Exists` matches all keys, values and effects which means this will tolerate everything. @@ -230,7 +230,7 @@ added by the NodeController (or kubelet) and the normal logic for evicting pods based on the Ready NodeCondition is disabled. {{< note >}} -**Note:** To maintain the existing [rate limiting](/docs/concepts/architecture/nodes/) +To maintain the existing [rate limiting](/docs/concepts/architecture/nodes/) behavior of pod evictions due to node problems, the system actually adds the taints in a rate-limited way. This prevents massive pod evictions in scenarios such as the master becoming partitioned from the nodes. diff --git a/content/en/docs/concepts/containers/images.md b/content/en/docs/concepts/containers/images.md index c35aad845b..ed590b50d3 100644 --- a/content/en/docs/concepts/containers/images.md +++ b/content/en/docs/concepts/containers/images.md @@ -44,7 +44,7 @@ https://cs.k8s.io/?q=docker%20manifest%20(create%7Cpush%7Cannotate)&i=nope&files These commands rely on and are implemented purely on the Docker CLI. You will need to either edit the `$HOME/.docker/config.json` and set `experimental` key to `enabled` or you can just set `DOCKER_CLI_EXPERIMENTAL` environment variable to `enabled` when you call the CLI commands. {{< note >}} -**Note:** Please use Docker *18.06 or above*, versions below that either have bugs or do not support the experimental command line option. Example https://github.com/docker/cli/issues/1135 causes problems under containerd. +Please use Docker *18.06 or above*, versions below that either have bugs or do not support the experimental command line option. Example https://github.com/docker/cli/issues/1135 causes problems under containerd. {{< /note >}} If you run into trouble with uploading stale manifests, just clean up the older manifests in `$HOME/.docker/manifests` to start fresh. @@ -156,16 +156,16 @@ You can use the IBM Cloud Container Registry to deploy containers from [IBM Clou ### Configuring Nodes to Authenticate to a Private Registry {{< note >}} -**Note:** If you are running on Google Kubernetes Engine, there will already be a `.dockercfg` on each node with credentials for Google Container Registry. You cannot use this approach. +If you are running on Google Kubernetes Engine, there will already be a `.dockercfg` on each node with credentials for Google Container Registry. You cannot use this approach. {{< /note >}} {{< note >}} -**Note:** If you are running on AWS EC2 and are using the EC2 Container Registry (ECR), the kubelet on each node will +If you are running on AWS EC2 and are using the EC2 Container Registry (ECR), the kubelet on each node will manage and update the ECR login credentials. You cannot use this approach. {{< /note >}} {{< note >}} -**Note:** This approach is suitable if you can control node configuration. It +This approach is suitable if you can control node configuration. It will not work reliably on GCE, and any other cloud provider that does automatic node replacement. {{< /note >}} @@ -183,7 +183,7 @@ in the search paths list below, kubelet uses it as the credential provider when * `/.dockercfg` {{< note >}} -**Note**: You may have to set `HOME=/root` explicitly in your environment file for kubelet. +You may have to set `HOME=/root` explicitly in your environment file for kubelet. {{< /note >}} Here are the recommended steps to configuring your nodes to use a private registry. In this @@ -240,11 +240,11 @@ registry keys are added to the `.docker/config.json`. ### Pre-pulling Images {{< note >}} -**Note:** If you are running on Google Kubernetes Engine, there will already be a `.dockercfg` on each node with credentials for Google Container Registry. You cannot use this approach. +If you are running on Google Kubernetes Engine, there will already be a `.dockercfg` on each node with credentials for Google Container Registry. You cannot use this approach. {{< /note >}} {{< note >}} -**Note:** This approach is suitable if you can control node configuration. It +This approach is suitable if you can control node configuration. It will not work reliably on GCE, and any other cloud provider that does automatic node replacement. {{< /note >}} @@ -263,7 +263,7 @@ All pods will have read access to any pre-pulled images. ### Specifying ImagePullSecrets on a Pod {{< note >}} -**Note:** This approach is currently the recommended approach for Google Kubernetes Engine, GCE, and any cloud-providers +This approach is currently the recommended approach for Google Kubernetes Engine, GCE, and any cloud-providers where node creation is automated. {{< /note >}} diff --git a/content/en/docs/concepts/containers/runtime-class.md b/content/en/docs/concepts/containers/runtime-class.md index 7d0484c256..861ce41d9e 100644 --- a/content/en/docs/concepts/containers/runtime-class.md +++ b/content/en/docs/concepts/containers/runtime-class.md @@ -57,7 +57,7 @@ corresponding documentation for your CRI implementation for how to configure. As feature, not all CRIs support multiple RuntimeClasses yet. {{< note >}} -**Note:** RuntimeClass currently assumes a homogeneous node configuration across the cluster +RuntimeClass currently assumes a homogeneous node configuration across the cluster (which means that all nodes are configured the same way with respect to container runtimes). Any heterogeneity (varying configurations) must be managed independently of RuntimeClass through scheduling features (see [Assigning Pods to Nodes](/docs/concepts/configuration/assign-pod-node/)). @@ -87,11 +87,9 @@ spec: {{< note >}} - -**Note:** It is recommended that RuntimeClass write operations (create/update/patch/delete) be +It is recommended that RuntimeClass write operations (create/update/patch/delete) be restricted to the cluster administrator. This is typically the default. See [Authorization Overview](https://kubernetes.io/docs/reference/access-authn-authz/authorization/) for more details. - {{< /note >}} ### Usage diff --git a/content/en/docs/concepts/example-concept-template.md b/content/en/docs/concepts/example-concept-template.md index 6bbd6a080b..26ce263ef4 100644 --- a/content/en/docs/concepts/example-concept-template.md +++ b/content/en/docs/concepts/example-concept-template.md @@ -8,7 +8,9 @@ toc_hide: true {{% capture overview %}} -**NOTE:** Be sure to also [create an entry in the table of contents](/docs/home/contribute/write-new-topic/#creating-an-entry-in-the-table-of-contents) for your new document. +{{< note >}} +Be sure to also [create an entry in the table of contents](/docs/home/contribute/write-new-topic/#creating-an-entry-in-the-table-of-contents) for your new document. +{{< /note >}} This page explains ... diff --git a/content/en/docs/concepts/extend-kubernetes/api-extension/custom-resources.md b/content/en/docs/concepts/extend-kubernetes/api-extension/custom-resources.md index 64a7bc5416..750f19361e 100644 --- a/content/en/docs/concepts/extend-kubernetes/api-extension/custom-resources.md +++ b/content/en/docs/concepts/extend-kubernetes/api-extension/custom-resources.md @@ -91,7 +91,7 @@ Use a ConfigMap if any of the following apply: * You want to perform rolling updates via Deployment, etc, when the file is updated. {{< note >}} -**Note:** Use a [secret](/docs/concepts/configuration/secret/) for sensitive data, which is similar to a configMap but more secure. +Use a [secret](/docs/concepts/configuration/secret/) for sensitive data, which is similar to a configMap but more secure. {{< /note >}} Use a custom resource (CRD or Aggregated API) if most of the following apply: @@ -131,7 +131,7 @@ for a demonstration of how to register a new custom resource, work with instance and setup a controller to handle events. {{< note >}} -**Note:** CRD is the successor to the deprecated *ThirdPartyResource* (TPR) API, and is available as of Kubernetes 1.7. +CRD is the successor to the deprecated *ThirdPartyResource* (TPR) API, and is available as of Kubernetes 1.7. {{< /note >}} ## API server aggregation diff --git a/content/en/docs/concepts/overview/object-management-kubectl/declarative-config.md b/content/en/docs/concepts/overview/object-management-kubectl/declarative-config.md index f0c63b64bd..48025a12e1 100644 --- a/content/en/docs/concepts/overview/object-management-kubectl/declarative-config.md +++ b/content/en/docs/concepts/overview/object-management-kubectl/declarative-config.md @@ -60,7 +60,7 @@ annotation on each object. The annotation contains the contents of the object configuration file that was used to create the object. {{< note >}} -**Note:** Add the `-R` flag to recursively process directories. +Add the `-R` flag to recursively process directories. {{< /note >}} Here's an example of an object configuration file: @@ -134,7 +134,7 @@ kubectl apply -f / ``` {{< note >}} -**Note:** Add the `-R` flag to recursively process directories. +Add the `-R` flag to recursively process directories. {{< /note >}} Here's an example configuration file: @@ -148,7 +148,7 @@ kubectl apply -f https://k8s.io/examples/application/simple_deployment.yaml ``` {{< note >}} -**Note:** For purposes of illustration, the preceding command refers to a single +For purposes of illustration, the preceding command refers to a single configuration file instead of a directory. {{< /note >}} @@ -322,7 +322,7 @@ spec: ``` {{< warning >}} -**Warning:** Mixing `kubectl apply` with the imperative object configuration commands +Mixing `kubectl apply` with the imperative object configuration commands `create` and `replace` is not supported. This is because `create` and `replace` do not retain the `kubectl.kubernetes.io/last-applied-configuration` that `kubectl apply` uses to compute updates. @@ -347,12 +347,12 @@ kubectl delete -f Only use this if you know what you are doing. {{< warning >}} -**Warning:** `kubectl apply --prune` is in alpha, and backwards incompatible +`kubectl apply --prune` is in alpha, and backwards incompatible changes might be introduced in subsequent releases. {{< /warning >}} {{< warning >}} -**Warning:** You must be careful when using this command, so that you +You must be careful when using this command, so that you do not delete objects unintentionally. {{< /warning >}} @@ -373,7 +373,7 @@ kubectl apply -f --prune -l ``` {{< warning >}} -**Warning:** Apply with prune should only be run against the root directory +Apply with prune should only be run against the root directory containing the object configuration files. Running against sub-directories can cause objects to be unintentionally deleted if they are returned by the label selector query specified with `-l ` and @@ -391,10 +391,9 @@ kubectl get -f -o yaml ## How apply calculates differences and merges changes {{< caution >}} -**Caution:** A *patch* is an update operation that is scoped to specific -fields of an object instead of the entire object. -This enables updating only a specific set of fields on an object without -reading the object first. +A *patch* is an update operation that is scoped to specific fields of an object +instead of the entire object. This enables updating only a specific set of fields +on an object without reading the object first. {{< /caution >}} When `kubectl apply` updates the live configuration for an object, @@ -546,7 +545,7 @@ and merged. Primitive fields are replaced or cleared. {{< note >}} -**Note:** '-' is used for "not applicable" because the value is not used. +`-` is used for "not applicable" because the value is not used. {{< /note >}} | Field in object configuration file | Field in live object configuration | Field in last-applied-configuration | Action | @@ -561,7 +560,7 @@ Primitive fields are replaced or cleared. Fields that represent maps are merged by comparing each of the subfields or elements of the map: {{< note >}} -**Note:** '-' is used for "not applicable" because the value is not used. +`-` is used for "not applicable" because the value is not used. {{< /note >}} | Key in object configuration file | Key in live object configuration | Field in last-applied-configuration | Action | @@ -689,7 +688,7 @@ by `name`. As of Kubernetes 1.5, merging lists of primitive elements is not supported. {{< note >}} -**Note:** Which of the above strategies is chosen for a given field is controlled by +Which of the above strategies is chosen for a given field is controlled by the `patchStrategy` tag in [types.go](https://git.k8s.io/api/core/v1/types.go#L2565) If no `patchStrategy` is specified for a field of type list, then the list is replaced. @@ -900,7 +899,7 @@ Kubernetes objects should be managed using only one method at a time. Switching from one method to another is possible, but is a manual process. {{< note >}} -**Note:** It is OK to use imperative deletion with declarative management. +It is OK to use imperative deletion with declarative management. {{< /note >}} {{< comment >}} @@ -924,8 +923,10 @@ configuration involves several manual steps: 1. Manually remove the `status` field from the configuration file. - {{< note >}}**Note:** This step is optional, as `kubectl apply` does not update the status field - even if it is present in the configuration file.{{< /note >}} + {{< note >}} + This step is optional, as `kubectl apply` does not update the status field + even if it is present in the configuration file. + {{< /note >}} 1. Set the `kubectl.kubernetes.io/last-applied-configuration` annotation on the object: @@ -952,7 +953,7 @@ TODO(pwittrock): Why doesn't export remove the status field? Seems like it shou ## Defining controller selectors and PodTemplate labels {{< warning >}} -**Warning:** Updating selectors on controllers is strongly discouraged. +Updating selectors on controllers is strongly discouraged. {{< /warning >}} The recommended approach is to define a single, immutable PodTemplate label diff --git a/content/en/docs/concepts/overview/object-management-kubectl/imperative-command.md b/content/en/docs/concepts/overview/object-management-kubectl/imperative-command.md index 583bb03f52..d0cbe8c839 100644 --- a/content/en/docs/concepts/overview/object-management-kubectl/imperative-command.md +++ b/content/en/docs/concepts/overview/object-management-kubectl/imperative-command.md @@ -76,8 +76,7 @@ Setting this aspect may set different fields for different object types: - `set` : Set an aspect of an object. {{< note >}} -**Note**: In Kubernetes version 1.5, not every verb-driven command has an -associated aspect-driven command. +In Kubernetes version 1.5, not every verb-driven command has an associated aspect-driven command. {{< /note >}} The `kubectl` tool supports these additional ways to update a live object directly, @@ -95,7 +94,7 @@ You can use the `delete` command to delete an object from a cluster: - `delete /` {{< note >}} -**Note**: You can use `kubectl delete` for both imperative commands and imperative object +You can use `kubectl delete` for both imperative commands and imperative object configuration. The difference is in the arguments passed to the command. To use `kubectl delete` as an imperative command, pass the object to be deleted as an argument. Here's an example that passes a Deployment object named nginx: diff --git a/content/en/docs/concepts/overview/object-management-kubectl/imperative-config.md b/content/en/docs/concepts/overview/object-management-kubectl/imperative-config.md index f0681fd9b6..45dca86b50 100644 --- a/content/en/docs/concepts/overview/object-management-kubectl/imperative-config.md +++ b/content/en/docs/concepts/overview/object-management-kubectl/imperative-config.md @@ -34,7 +34,7 @@ for details. ## How to update objects {{< warning >}} -**Warning:** Updating objects with the `replace` command drops all +Updating objects with the `replace` command drops all parts of the spec not specified in the configuration file. This should not be used with objects whose specs are partially managed by the cluster, such as Services of type `LoadBalancer`, where @@ -115,7 +115,7 @@ kubectl replace -f _.yaml ## Defining controller selectors and PodTemplate labels {{< warning >}} -**Warning:** Updating selectors on controllers is strongly discouraged. +Updating selectors on controllers is strongly discouraged. {{< /warning >}} The recommended approach is to define a single, immutable PodTemplate label diff --git a/content/en/docs/concepts/overview/object-management-kubectl/overview.md b/content/en/docs/concepts/overview/object-management-kubectl/overview.md index fe2baf4a5d..19c8a885f2 100644 --- a/content/en/docs/concepts/overview/object-management-kubectl/overview.md +++ b/content/en/docs/concepts/overview/object-management-kubectl/overview.md @@ -15,7 +15,7 @@ approaches. ## Management techniques {{< warning >}} -**Warning:** A Kubernetes object should be managed using only one technique. Mixing +A Kubernetes object should be managed using only one technique. Mixing and matching techniques for the same object results in undefined behavior. {{< /warning >}} @@ -74,7 +74,7 @@ See the [API reference](/docs/reference/generated/kubernetes-api/{{< param "vers for more details on object definitions. {{< warning >}} -**Warning:** The imperative `replace` command replaces the existing +The imperative `replace` command replaces the existing spec with the newly provided one, dropping all changes to the object missing from the configuration file. This approach should not be used with resource types whose specs are updated independently of the configuration file. @@ -135,7 +135,7 @@ are automatically detected per-object by `kubectl`. This enables working on directories, where different operations might be needed for different objects. {{< note >}} -**Note:** Declarative object configuration retains changes made by other +Declarative object configuration retains changes made by other writers, even if the changes are not merged back to the object configuration file. This is possible by using the `patch` API operation to write only observed differences, instead of using the `replace` diff --git a/content/en/docs/concepts/overview/working-with-objects/common-labels.md b/content/en/docs/concepts/overview/working-with-objects/common-labels.md index 314bbc7bb0..d0132d92b9 100644 --- a/content/en/docs/concepts/overview/working-with-objects/common-labels.md +++ b/content/en/docs/concepts/overview/working-with-objects/common-labels.md @@ -19,7 +19,7 @@ Instead, applications are informal and described with metadata. The definition o what an application contains is loose. {{< note >}} -**Note:** These are recommended labels. They make it easier to manage applications +These are recommended labels. They make it easier to manage applications but aren't required for any core tooling. {{< /note >}} diff --git a/content/en/docs/concepts/overview/working-with-objects/labels.md b/content/en/docs/concepts/overview/working-with-objects/labels.md index 65b6430ed2..46535ab44e 100644 --- a/content/en/docs/concepts/overview/working-with-objects/labels.md +++ b/content/en/docs/concepts/overview/working-with-objects/labels.md @@ -66,7 +66,7 @@ An empty label selector (that is, one with zero requirements) selects every obje A null label selector (which is only possible for optional selector fields) selects no objects. {{< note >}} -**Note**: the label selectors of two controllers must not overlap within a namespace, otherwise they will fight with each other. +The label selectors of two controllers must not overlap within a namespace, otherwise they will fight with each other. {{< /note >}} ### _Equality-based_ requirement diff --git a/content/en/docs/concepts/policy/pod-security-policy.md b/content/en/docs/concepts/policy/pod-security-policy.md index 08cec73817..447d048271 100644 --- a/content/en/docs/concepts/policy/pod-security-policy.md +++ b/content/en/docs/concepts/policy/pod-security-policy.md @@ -230,8 +230,8 @@ Create the rolebinding to grant `fake-user` the `use` verb on the example policy: {{< note >}} -**Note:** _This is not the recommended way! See the [next section](#run-another-pod) -for the preferred approach._ +This is not the recommended way! See the [next section](#run-another-pod) +for the preferred approach. {{< /note >}} ```shell @@ -442,7 +442,7 @@ allowedHostPaths: readOnly: true # only allow read-only mounts ``` -{{< warning >}}**Warning:** There are many ways a container with unrestricted access to the host +{{< warning >}}There are many ways a container with unrestricted access to the host filesystem can escalate privileges, including reading data from other containers, and abusing the credentials of system services, such as Kubelet. diff --git a/content/en/docs/concepts/policy/resource-quotas.md b/content/en/docs/concepts/policy/resource-quotas.md index 087961b418..3374593230 100644 --- a/content/en/docs/concepts/policy/resource-quotas.md +++ b/content/en/docs/concepts/policy/resource-quotas.md @@ -202,7 +202,7 @@ field in the quota spec. A quota is matched and consumed only if `scopeSelector` in the quota spec selects the pod. {{< note >}} -**Note:** You need to enable the feature gate `ResourceQuotaScopeSelectors`before using resource quotas +You need to enable the feature gate `ResourceQuotaScopeSelectors`before using resource quotas per PriorityClass. {{< /note >}} diff --git a/content/en/docs/concepts/services-networking/dns-pod-service.md b/content/en/docs/concepts/services-networking/dns-pod-service.md index 96a62abd48..268519e833 100644 --- a/content/en/docs/concepts/services-networking/dns-pod-service.md +++ b/content/en/docs/concepts/services-networking/dns-pod-service.md @@ -149,7 +149,7 @@ The Endpoints object can specify the `hostname` for any endpoint addresses, along with its IP. {{< note >}} -**Note:** Because A records are not created for Pod names, `hostname` is required for the Pod's A record to be created. A Pod with no `hostname` but with `subdomain` only will only create the A record for the headless service (`default-subdomain.my-namespace.svc.cluster.local`), pointing to the Pod's IP address. +Because A records are not created for Pod names, `hostname` is required for the Pod's A record to be created. A Pod with no `hostname` but with `subdomain` only will only create the A record for the headless service (`default-subdomain.my-namespace.svc.cluster.local`), pointing to the Pod's IP address. {{< /note >}} ### Pod's DNS Policy @@ -176,7 +176,7 @@ following pod-specific DNS policies. These policies are specified in the See [DNS config](#dns-config) subsection below. {{< note >}} -**NOTE:** "Default" is not the default DNS policy. If `dnsPolicy` is not +"Default" is not the default DNS policy. If `dnsPolicy` is not explicitly specified, then “ClusterFirst” is used. {{< /note >}} diff --git a/content/en/docs/concepts/services-networking/ingress.md b/content/en/docs/concepts/services-networking/ingress.md index 2eb745c867..6aed8a8b8f 100644 --- a/content/en/docs/concepts/services-networking/ingress.md +++ b/content/en/docs/concepts/services-networking/ingress.md @@ -99,7 +99,7 @@ In order for the Ingress resource to work, the cluster must have an Ingress cont * [Istio](https://istio.io/) based ingress controller [Control Ingress Traffic](https://istio.io/docs/tasks/traffic-management/ingress/) {{< note >}} -**Note:** Review the documentation for your controller to find its specific support policy. +Review the documentation for your controller to find its specific support policy. {{< /note >}} ## Before you begin @@ -107,7 +107,7 @@ In order for the Ingress resource to work, the cluster must have an Ingress cont The following document describes a set of cross-platform features exposed through the Ingress resource. Ideally, all Ingress controllers should fulfill this specification, but we're not there yet. We currently support and maintain [GCE](https://git.k8s.io/ingress-gce/README.md) and [nginx](https://git.k8s.io/ingress-nginx/README.md) controllers. If you use the F5 BIG-IP Controller, see [Use the BIG-IP Controller as a Kubernetes Ingress Controller](http://clouddocs.f5.com/containers/latest/kubernetes/kctlr-k8s-ingress-ctlr.html). {{< note >}} -**Note:** Make sure you review your controller's specific docs so you understand the caveats. +Make sure you review your controller's specific docs so you understand the caveats. {{< /note >}} ## Types of Ingress @@ -202,7 +202,7 @@ When it has done so, you will see the address of the loadbalancer at the Address field. {{< note >}} -**Note:** You need to create a default-http-backend [Service](/docs/concepts/services-networking/service/) if necessary. +You need to create a default-http-backend [Service](/docs/concepts/services-networking/service/) if necessary. {{< /note >}} ### Name based virtual hosting diff --git a/content/en/docs/concepts/services-networking/service.md b/content/en/docs/concepts/services-networking/service.md index 9fc2bb79b4..7b747a6a79 100644 --- a/content/en/docs/concepts/services-networking/service.md +++ b/content/en/docs/concepts/services-networking/service.md @@ -87,7 +87,7 @@ Kubernetes `Services` support `TCP`, `UDP` and `SCTP` for protocols. The defaul is `TCP`. {{< note >}} -**Note:** SCTP support is an alpha feature since Kubernetes 1.12 +SCTP support is an alpha feature since Kubernetes 1.12 {{< /note >}} ### Services without selectors @@ -132,7 +132,7 @@ subsets: ``` {{< note >}} -**Note:** The endpoint IPs may not be loopback (127.0.0.0/8), link-local +The endpoint IPs may not be loopback (127.0.0.0/8), link-local (169.254.0.0/16), or link-local multicast (224.0.0.0/24). They cannot be the cluster IPs of other Kubernetes services either because the `kube-proxy` component doesn't support virtual IPs as destination yet. @@ -212,10 +212,12 @@ options for load balancing algorithm, such as: - `sed`: shortest expected delay - `nq`: never queue -**Note:** ipvs mode assumes IPVS kernel modules are installed on the node +{{< note >}} +ipvs mode assumes IPVS kernel modules are installed on the node before running kube-proxy. When kube-proxy starts with ipvs proxy mode, kube-proxy would validate if IPVS modules are installed on the node, if it's not installed kube-proxy will fall back to iptables proxy mode. +{{< /note >}} ![Services overview diagram for ipvs proxy](/images/docs/services-ipvs-overview.svg) @@ -459,7 +461,7 @@ public IP address resource needs to be created first, and it should be in the sa group of the other automatically created resources of the cluster. For example, `MC_myResourceGroup_myAKSCluster_eastus`. Specify the assigned IP address as loadBalancerIP. Ensure that you have updated the securityGroupName in the cloud provider configuration file. For information about troubleshooting `CreatingLoadBalancerFailed` permission issues see, [Use a static IP address with the Azure Kubernetes Service (AKS) load balancer](https://docs.microsoft.com/en-us/azure/aks/static-ip) or [CreatingLoadBalancerFailed on AKS cluster with advanced networking](https://github.com/Azure/AKS/issues/357). {{< note >}} -**Note:** The support of SCTP in the cloud provider's load balancer is up to the cloud provider's +he support of SCTP in the cloud provider's load balancer is up to the cloud provider's load balancer implementation. If SCTP is not supported by the cloud provider's load balancer the Service creation request is accepted but the creation of the load balancer fails. {{< /note >}} @@ -693,7 +695,9 @@ There are other annotations to manage Classic Elastic Load Balancers that are de #### Network Load Balancer support on AWS [alpha] -**Warning:** This is an alpha feature and not recommended for production clusters yet. +{{< warning >}} +This is an alpha feature and not recommended for production clusters yet. +{{< /warning >}} Starting in version 1.9.0, Kubernetes supports Network Load Balancer (NLB). To use a Network Load Balancer on AWS, use the annotation `service.beta.kubernetes.io/aws-load-balancer-type` @@ -747,13 +751,15 @@ spec: - "143.231.0.0/16" ``` -**Note:** NLB only works with certain instance classes, see the [AWS documentation](http://docs.aws.amazon.com/elasticloadbalancing/latest/network/target-group-register-targets.html#register-deregister-targets) +{{< note >}} +NLB only works with certain instance classes, see the [AWS documentation](http://docs.aws.amazon.com/elasticloadbalancing/latest/network/target-group-register-targets.html#register-deregister-targets) for supported instance types. +{{< /note >}} ### Type ExternalName {#externalname} {{< note >}} -**NOTE:** ExternalName Services are available only with `kube-dns` version 1.7 and later. +ExternalName Services are available only with `kube-dns` version 1.7 and later. {{< /note >}} Services of type ExternalName map a service to a DNS name (specified using diff --git a/content/en/docs/concepts/storage/persistent-volumes.md b/content/en/docs/concepts/storage/persistent-volumes.md index 28fc8b4f1a..227097ba04 100644 --- a/content/en/docs/concepts/storage/persistent-volumes.md +++ b/content/en/docs/concepts/storage/persistent-volumes.md @@ -85,7 +85,7 @@ Once a user has a claim and that claim is bound, the bound PV belongs to the use The purpose of the Storage Object in Use Protection feature is to ensure that Persistent Volume Claims (PVCs) in active use by a pod and Persistent Volume (PVs) that are bound to PVCs are not removed from the system as this may result in data loss. {{< note >}} -**Note:** PVC is in active use by a pod when the pod status is `Pending` and the pod is assigned to a node or the pod status is `Running`. +PVC is in active use by a pod when the pod status is `Pending` and the pod is assigned to a node or the pod status is `Running`. {{< /note >}} When the [Storage Object in Use Protection feature](/docs/tasks/administer-cluster/storage-object-in-use-protection/) is enabled, if a user deletes a PVC in active use by a pod, the PVC is not removed immediately. PVC removal is postponed until the PVC is no longer actively used by any pods, and also if admin deletes a PV that is bound to a PVC, the PV is not removed immediately. PV removal is postponed until the PV is not bound to a PVC any more. @@ -147,7 +147,7 @@ For volume plugins that support the `Delete` reclaim policy, deletion removes bo #### Recycle {{< warning >}} -**Warning:** The `Recycle` reclaim policy is deprecated. Instead, the recommended approach is to use dynamic provisioning. +The `Recycle` reclaim policy is deprecated. Instead, the recommended approach is to use dynamic provisioning. {{< /warning >}} If supported by the underlying volume plugin, the `Recycle` reclaim policy performs a basic scrub (`rm -rf /thevolume/*`) on the volume and makes it available again for a new claim. @@ -238,7 +238,7 @@ This feature has no effect on PVCs that are not in use by a Pod or deployment. Y uses the PVC before the expansion can complete. {{< note >}} -**Note:** Expanding EBS volumes is a time consuming operation. Also, there is a per-volume quota of one modification every 6 hours. +Expanding EBS volumes is a time consuming operation. Also, there is a per-volume quota of one modification every 6 hours. {{< /note >}} @@ -377,7 +377,7 @@ Currently, only NFS and HostPath support recycling. AWS EBS, GCE PD, Azure Disk, A Kubernetes administrator can specify additional mount options for when a Persistent Volume is mounted on a node. {{< note >}} -**Note:** Not all Persistent volume types support mount options. +Not all Persistent volume types support mount options. {{< /note >}} The following volume types support mount options: @@ -495,7 +495,7 @@ the requirements are ANDed together: only a PV of the requested class and with the requested labels may be bound to the PVC. {{< note >}} -**Note:** Currently, a PVC with a non-empty `selector` can't have a PV dynamically provisioned for it. +Currently, a PVC with a non-empty `selector` can't have a PV dynamically provisioned for it. {{< /note >}} In the past, the annotation `volume.beta.kubernetes.io/storage-class` was used instead @@ -547,7 +547,7 @@ applicable. * RBD (Ceph Block Device) {{< note >}} -**Note**: Only FC and iSCSI volumes supported raw block volumes in Kubernetes 1.9. +Only FC and iSCSI volumes supported raw block volumes in Kubernetes 1.9. Support for the additional plugins was added in 1.10. {{< /note >}} @@ -605,7 +605,7 @@ spec: ``` {{< note >}} -**Note:** When adding a raw block device for a Pod, we specify the device path in the container instead of a mount path. +When adding a raw block device for a Pod, we specify the device path in the container instead of a mount path. {{< /note >}} ### Binding Block Volumes @@ -627,7 +627,7 @@ Volume binding matrix for statically provisioned volumes: | Filesystem | unspecified | BIND | {{< note >}} -**Note:** Only statically provisioned volumes are supported for alpha release. Administrators should take care to consider these values when working with raw block devices. +Only statically provisioned volumes are supported for alpha release. Administrators should take care to consider these values when working with raw block devices. {{< /note >}} ## Volume Snapshot and Restore Volume from Snapshot Support diff --git a/content/en/docs/concepts/storage/storage-classes.md b/content/en/docs/concepts/storage/storage-classes.md index 0cd7d0afbc..3aba1eee67 100644 --- a/content/en/docs/concepts/storage/storage-classes.md +++ b/content/en/docs/concepts/storage/storage-classes.md @@ -123,8 +123,10 @@ the class or PV, so mount of the PV will simply fail if one is invalid. {{< feature-state for_k8s_version="v1.12" state="beta" >}} -**Note:** This feature requires the `VolumeScheduling` feature gate to be +{{< note >}} +This feature requires the `VolumeScheduling` feature gate to be enabled. +{{< /note >}} The `volumeBindingMode` field controls when [volume binding and dynamic provisioning](/docs/concepts/storage/persistent-volumes/#provisioning) should occur. @@ -159,8 +161,10 @@ The following plugins support `WaitForFirstConsumer` with pre-created Persistent ### Allowed Topologies {{< feature-state for_k8s_version="v1.12" state="beta" >}} -**Note:** This feature requires the `VolumeScheduling` feature gate to be +{{< note >}} +This feature requires the `VolumeScheduling` feature gate to be enabled. +{{< /note >}} When a cluster operactor specifies the `WaitForFirstConsumer` volume binding mode, it is no longer necessary to restrict provisioning to specific topologies in most situations. However, @@ -232,8 +236,10 @@ parameters: encrypting the volume. If none is supplied but `encrypted` is true, a key is generated by AWS. See AWS docs for valid ARN value. -**Note:** `zone` and `zones` parameters are deprecated and replaced with +{{< note >}} +`zone` and `zones` parameters are deprecated and replaced with [allowedTopologies](#allowed-topologies) +{{< /note >}} ### GCE PD @@ -269,8 +275,10 @@ specified, Kubernetes will arbitrarily choose among the specified zones. If the `zones` parameter is omitted, Kubernetes will arbitrarily choose among zones managed by the cluster. -**Note:** `zone` and `zones` parameters are deprecated and replaced with +{{< note >}} +`zone` and `zones` parameters are deprecated and replaced with [allowedTopologies](#allowed-topologies) +{{< /note >}} ### Glusterfs diff --git a/content/en/docs/concepts/storage/volumes.md b/content/en/docs/concepts/storage/volumes.md index 5f16c2b464..7ce8c092db 100644 --- a/content/en/docs/concepts/storage/volumes.md +++ b/content/en/docs/concepts/storage/volumes.md @@ -105,7 +105,7 @@ EBS volume can be pre-populated with data, and that data can be "handed off" between Pods. {{< caution >}} -**Important:** You must create an EBS volume using `aws ec2 create-volume` or the AWS API before you can use it. +You must create an EBS volume using `aws ec2 create-volume` or the AWS API before you can use it. {{< /caution >}} There are some restrictions when using an `awsElasticBlockStore` volume: @@ -170,7 +170,7 @@ that data can be "handed off" between Pods. CephFS can be mounted by multiple writers simultaneously. {{< caution >}} -**Important:** You must have your own Ceph server running with the share exported before you can use it. +You must have your own Ceph server running with the share exported before you can use it. {{< /caution >}} See the [CephFS example](https://github.com/kubernetes/examples/tree/{{< param "githubbranch" >}}/staging/volumes/cephfs/) for more details. @@ -215,11 +215,11 @@ Note that this path is derived from the volume's `mountPath` and the `path` keyed with `log_level`. {{< caution >}} -**Important:** You must create a [ConfigMap](/docs/tasks/configure-pod-container/configure-pod-configmap/) before you can use it. +You must create a [ConfigMap](/docs/tasks/configure-pod-container/configure-pod-configmap/) before you can use it. {{< /caution >}} {{< note >}} -**Note:** A Container using a ConfigMap as a [subPath](#using-subpath) volume mount will not +A Container using a ConfigMap as a [subPath](#using-subpath) volume mount will not receive ConfigMap updates. {{< /note >}} @@ -229,7 +229,7 @@ A `downwardAPI` volume is used to make downward API data available to applicatio It mounts a directory and writes the requested data in plain text files. {{< note >}} -**Note:** A Container using Downward API as a [subPath](#using-subpath) volume mount will not +A Container using Downward API as a [subPath](#using-subpath) volume mount will not receive Downward API updates. {{< /note >}} @@ -245,7 +245,7 @@ or different paths in each Container. When a Pod is removed from a node for any reason, the data in the `emptyDir` is deleted forever. {{< note >}} -**Note:** A Container crashing does *NOT* remove a Pod from a node, so the data in an `emptyDir` volume is safe across Container crashes. +A Container crashing does *NOT* remove a Pod from a node, so the data in an `emptyDir` volume is safe across Container crashes. {{< /note >}} Some uses for an `emptyDir` are: @@ -290,7 +290,7 @@ You can specify single or multiple target World Wide Names using the parameter targetWWNs expect that those WWNs are from multi-path connections. {{< caution >}} -**Important:** You must configure FC SAN Zoning to allocate and mask those LUNs (volumes) to the target WWNs beforehand so that Kubernetes hosts can access them. +You must configure FC SAN Zoning to allocate and mask those LUNs (volumes) to the target WWNs beforehand so that Kubernetes hosts can access them. {{< /caution >}} See the [FC example](https://github.com/kubernetes/examples/tree/{{< param "githubbranch" >}}/staging/volumes/fibre_channel) for more details. @@ -307,7 +307,7 @@ reattached by Flocker to the node that the Pod is scheduled. This means data can be "handed off" between Pods as required. {{< caution >}} -**Important:** You must have your own Flocker installation running before you can use it. +You must have your own Flocker installation running before you can use it. {{< /caution >}} See the [Flocker example](https://github.com/kubernetes/examples/tree/{{< param "githubbranch" >}}/staging/volumes/flocker) for more details. @@ -321,7 +321,7 @@ preserved and the volume is merely unmounted. This means that a PD can be pre-populated with data, and that data can be "handed off" between Pods. {{< caution >}} -**Important:** You must create a PD using `gcloud` or the GCE API or UI before you can use it. +You must create a PD using `gcloud` or the GCE API or UI before you can use it. {{< /caution >}} There are some restrictions when using a `gcePersistentDisk`: @@ -403,7 +403,7 @@ spec: ### gitRepo (deprecated) {#gitrepo} {{< warning >}} -**Warning:** The gitRepo volume type is deprecated. To provision a container with a git repo, mount an [EmptyDir](#emptydir) into an InitContainer that clones the repo using git, then mount the [EmptyDir](#emptydir) into the Pod's container. +The gitRepo volume type is deprecated. To provision a container with a git repo, mount an [EmptyDir](#emptydir) into an InitContainer that clones the repo using git, then mount the [EmptyDir](#emptydir) into the Pod's container. {{< /warning >}} A `gitRepo` volume is an example of what can be done as a volume plugin. It @@ -443,7 +443,7 @@ be "handed off" between Pods. GlusterFS can be mounted by multiple writers simultaneously. {{< caution >}} -**Important:** You must have your own GlusterFS installation running before you can use it. +You must have your own GlusterFS installation running before you can use it. {{< /caution >}} See the [GlusterFS example](https://github.com/kubernetes/examples/tree/{{< param "githubbranch" >}}/staging/volumes/glusterfs) for more details. @@ -521,7 +521,7 @@ unmounted. This means that an iscsi volume can be pre-populated with data, and that data can be "handed off" between Pods. {{< caution >}} -**Important:** You must have your own iSCSI server running with the volume created before you can use it. +You must have your own iSCSI server running with the volume created before you can use it. {{< /caution >}} A feature of iSCSI is that it can be mounted as read-only by multiple consumers @@ -537,7 +537,7 @@ See the [iSCSI example](https://github.com/kubernetes/examples/tree/{{< param "g {{< feature-state for_k8s_version="v1.10" state="beta" >}} {{< note >}} -**Note:** The alpha PersistentVolume NodeAffinity annotation has been deprecated +The alpha PersistentVolume NodeAffinity annotation has been deprecated and will be removed in a future release. Existing PersistentVolumes using this annotation must be updated by the user to use the new PersistentVolume `NodeAffinity` field. @@ -610,7 +610,7 @@ provisioning yet. For an example on how to run an external local provisioner, see the [local volume provisioner user guide](https://github.com/kubernetes-incubator/external-storage/tree/master/local-volume). {{< note >}} -**Note:** The local PersistentVolume requires manual cleanup and deletion by the +The local PersistentVolume requires manual cleanup and deletion by the user if the external static provisioner is not used to manage the volume lifecycle. {{< /note >}} @@ -625,7 +625,7 @@ that data can be "handed off" between Pods. NFS can be mounted by multiple writers simultaneously. {{< caution >}} -**Important:** You must have your own NFS server running with the share exported before you can use it. +You must have your own NFS server running with the share exported before you can use it. {{< /caution >}} See the [NFS example](https://github.com/kubernetes/examples/tree/{{< param "githubbranch" >}}/staging/volumes/nfs) for more details. @@ -782,7 +782,7 @@ option for the API server. The `path` field specifies a relative path to the mou of the projected volume. {{< note >}} -**Note:** A Container using a projected volume source as a [subPath](#using-subpath) volume mount will not +A Container using a projected volume source as a [subPath](#using-subpath) volume mount will not receive updates for those volume sources. {{< /note >}} @@ -818,7 +818,7 @@ spec: ``` {{< caution >}} -**Important:** Make sure you have an existing PortworxVolume with name `pxvol` +Make sure you have an existing PortworxVolume with name `pxvol` before using it in the Pod. {{< /caution >}} @@ -830,7 +830,7 @@ A `quobyte` volume allows an existing [Quobyte](http://www.quobyte.com) volume t be mounted into your Pod. {{< caution >}} -**Important:** You must have your own Quobyte setup running with the volumes +You must have your own Quobyte setup running with the volumes created before you can use it. {{< /caution >}} @@ -846,7 +846,7 @@ means that a RBD volume can be pre-populated with data, and that data can be "handed off" between Pods. {{< caution >}} -**Important:** You must have your own Ceph installation running before you can use RBD. +You must have your own Ceph installation running before you can use RBD. {{< /caution >}} A feature of RBD is that it can be mounted as read-only by multiple consumers @@ -866,7 +866,7 @@ volumes (or it can dynamically provision new volumes for persistent volume claim [ScaleIO Persistent Volumes](/docs/concepts/storage/persistent-volumes/#scaleio)). {{< caution >}} -**Important:** You must have an existing ScaleIO cluster already setup and +You must have an existing ScaleIO cluster already setup and running with the volumes created before you can use them. {{< /caution >}} @@ -908,11 +908,11 @@ backed by tmpfs (a RAM-backed filesystem) so they are never written to non-volatile storage. {{< caution >}} -**Important:** You must create a secret in the Kubernetes API before you can use it. +You must create a secret in the Kubernetes API before you can use it. {{< /caution >}} {{< note >}} -**Note:** A Container using a Secret as a [subPath](#using-subpath) volume mount will not +A Container using a Secret as a [subPath](#using-subpath) volume mount will not receive Secret updates. {{< /note >}} @@ -934,7 +934,7 @@ The StorageOS Container requires 64-bit Linux and has no additional dependencies A free developer license is available. {{< caution >}} -**Important:** You must run the StorageOS Container on each node that wants to +You must run the StorageOS Container on each node that wants to access StorageOS volumes or that will contribute storage capacity to the pool. For installation instructions, consult the [StorageOS documentation](https://docs.storageos.com). @@ -974,7 +974,7 @@ For more information including Dynamic Provisioning and Persistent Volume Claims ### vsphereVolume {#vspherevolume} {{< note >}} -**Prerequisite:** Kubernetes with vSphere Cloud Provider configured. For cloudprovider +Prerequisite: Kubernetes with vSphere Cloud Provider configured. For cloudprovider configuration please refer [vSphere getting started guide](https://vmware.github.io/vsphere-storage-for-kubernetes/documentation/). {{< /note >}} @@ -982,7 +982,7 @@ A `vsphereVolume` is used to mount a vSphere VMDK Volume into your Pod. The con of a volume are preserved when it is unmounted. It supports both VMFS and VSAN datastore. {{< caution >}} -**Important:** You must create VMDK using one of the following method before using with Pod. +You must create VMDK using one of the following method before using with Pod. {{< /caution >}} #### Creating a VMDK volume @@ -1274,7 +1274,7 @@ Its values are: [Linux kernel documentation](https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt) {{< caution >}} -**Caution:** `Bidirectional` mount propagation can be dangerous. It can damage +`Bidirectional` mount propagation can be dangerous. It can damage the host operating system and therefore it is allowed only in privileged Containers. Familiarity with Linux kernel behavior is strongly recommended. In addition, any volume mounts created by Containers in Pods must be destroyed diff --git a/content/en/docs/concepts/workloads/controllers/cron-jobs.md b/content/en/docs/concepts/workloads/controllers/cron-jobs.md index 3169cb13bf..602bf0d581 100644 --- a/content/en/docs/concepts/workloads/controllers/cron-jobs.md +++ b/content/en/docs/concepts/workloads/controllers/cron-jobs.md @@ -14,8 +14,9 @@ A _Cron Job_ creates [Jobs](/docs/concepts/workloads/controllers/jobs-run-to-com One CronJob object is like one line of a _crontab_ (cron table) file. It runs a job periodically on a given schedule, written in [Cron](https://en.wikipedia.org/wiki/Cron) format. + {{< note >}} -**Note:** All **CronJob** `schedule:` times are denoted in UTC. +All **CronJob** `schedule:` times are denoted in UTC. {{< /note >}} For instructions on creating and working with cron jobs, and for an example of a spec file for a cron job, see [Running automated tasks with cron jobs](/docs/tasks/job/automated-tasks-with-cron-jobs). diff --git a/content/en/docs/concepts/workloads/controllers/jobs-run-to-completion.md b/content/en/docs/concepts/workloads/controllers/jobs-run-to-completion.md index 0fc09ad537..0dbbfaabf0 100644 --- a/content/en/docs/concepts/workloads/controllers/jobs-run-to-completion.md +++ b/content/en/docs/concepts/workloads/controllers/jobs-run-to-completion.md @@ -206,7 +206,7 @@ back-off count is reset if no new failed Pods appear before the Job's next status check. {{< note >}} -**Note:** Issue [#54870](https://github.com/kubernetes/kubernetes/issues/54870) still exists for versions of Kubernetes prior to version 1.12 +Issue [#54870](https://github.com/kubernetes/kubernetes/issues/54870) still exists for versions of Kubernetes prior to version 1.12 {{< /note >}} ## Job Termination and Cleanup diff --git a/content/en/docs/concepts/workloads/controllers/replicationcontroller.md b/content/en/docs/concepts/workloads/controllers/replicationcontroller.md index d6dcb84249..daf0dfd59a 100644 --- a/content/en/docs/concepts/workloads/controllers/replicationcontroller.md +++ b/content/en/docs/concepts/workloads/controllers/replicationcontroller.md @@ -16,7 +16,7 @@ weight: 20 {{% capture overview %}} {{< note >}} -**NOTE:** A [`Deployment`](/docs/concepts/workloads/controllers/deployment/) that configures a [`ReplicaSet`](/docs/concepts/workloads/controllers/replicaset/) is now the recommended way to set up replication. +A [`Deployment`](/docs/concepts/workloads/controllers/deployment/) that configures a [`ReplicaSet`](/docs/concepts/workloads/controllers/replicaset/) is now the recommended way to set up replication. {{< /note >}} A _ReplicationController_ ensures that a specified number of pod replicas are running at any one diff --git a/content/en/docs/concepts/workloads/controllers/statefulset.md b/content/en/docs/concepts/workloads/controllers/statefulset.md index 480988cb09..0e3a4e8569 100644 --- a/content/en/docs/concepts/workloads/controllers/statefulset.md +++ b/content/en/docs/concepts/workloads/controllers/statefulset.md @@ -16,7 +16,7 @@ weight: 40 StatefulSet is the workload API object used to manage stateful applications. {{< note >}} -**Note:** StatefulSets are stable (GA) in 1.9. +StatefulSets are stable (GA) in 1.9. {{< /note >}} {{< glossary_definition term_id="statefulset" length="all" >}} @@ -144,7 +144,7 @@ Cluster Domain | Service (ns/name) | StatefulSet (ns/name) | StatefulSet Domain kube.local | foo/nginx | foo/web | nginx.foo.svc.kube.local | web-{0..N-1}.nginx.foo.svc.kube.local | web-{0..N-1} | {{< note >}} -**Note:** Cluster Domain will be set to `cluster.local` unless +Cluster Domain will be set to `cluster.local` unless [otherwise configured](/docs/concepts/services-networking/dns-pod-service/#how-it-works). {{< /note >}} diff --git a/content/en/docs/concepts/workloads/pods/pod-overview.md b/content/en/docs/concepts/workloads/pods/pod-overview.md index d08433ef39..97efcb8c8c 100644 --- a/content/en/docs/concepts/workloads/pods/pod-overview.md +++ b/content/en/docs/concepts/workloads/pods/pod-overview.md @@ -55,7 +55,7 @@ A Pod can specify a set of shared storage *volumes*. All containers in the Pod c You'll rarely create individual Pods directly in Kubernetes--even singleton Pods. This is because Pods are designed as relatively ephemeral, disposable entities. When a Pod gets created (directly by you, or indirectly by a Controller), it is scheduled to run on a Node in your cluster. The Pod remains on that Node until the process is terminated, the pod object is deleted, the pod is *evicted* for lack of resources, or the Node fails. {{< note >}} -**Note:** Restarting a container in a Pod should not be confused with restarting the Pod. The Pod itself does not run, but is an environment the containers run in and persists until it is deleted. +Restarting a container in a Pod should not be confused with restarting the Pod. The Pod itself does not run, but is an environment the containers run in and persists until it is deleted. {{< /note >}} Pods do not, by themselves, self-heal. If a Pod is scheduled to a Node that fails, or if the scheduling operation itself fails, the Pod is deleted; likewise, a Pod won't survive an eviction due to a lack of resources or Node maintenance. Kubernetes uses a higher-level abstraction, called a *Controller*, that handles the work of managing the relatively disposable Pod instances. Thus, while it is possible to use Pod directly, it's far more common in Kubernetes to manage your pods using a Controller. See [Pods and Controllers](#pods-and-controllers) for more information on how Kubernetes uses Controllers to implement Pod scaling and healing. diff --git a/content/en/docs/concepts/workloads/pods/podpreset.md b/content/en/docs/concepts/workloads/pods/podpreset.md index 6711ba2ffe..dfae21fd4f 100644 --- a/content/en/docs/concepts/workloads/pods/podpreset.md +++ b/content/en/docs/concepts/workloads/pods/podpreset.md @@ -51,7 +51,7 @@ Pods, Kubernetes modifies the Pod Spec. For changes to `Env`, `EnvFrom`, and the Pod; for changes to `Volume`, Kubernetes modifies the Pod Spec. {{< note >}} -**Note:** A Pod Preset is capable of modifying the `.spec.containers` field in a +A Pod Preset is capable of modifying the `.spec.containers` field in a Pod spec when appropriate. *No* resource definition from the Pod Preset will be applied to the `initContainers` field. {{< /note >}} diff --git a/content/en/docs/contribute/generate-ref-docs/kubectl.md b/content/en/docs/contribute/generate-ref-docs/kubectl.md index 6793c6e6b9..39fc14cf08 100644 --- a/content/en/docs/contribute/generate-ref-docs/kubectl.md +++ b/content/en/docs/contribute/generate-ref-docs/kubectl.md @@ -9,7 +9,6 @@ This page shows how to automatically generate reference pages for the commands provided by the `kubectl` tool. {{< note >}} -**Note:** This topic shows how to generate reference documentation for [kubectl commands](/docs/reference/generated/kubectl/kubectl-commands) like @@ -132,7 +131,6 @@ on how to do this, see Monitor your cherry-pick pull request until it is merged into the release branch. {{< note >}} -**Note:** Proposing a cherry pick requires that you have permission to set a label and a milestone in your pull request. If you don’t have those permissions, you will need to work with someone who can set the label and milestone for you. diff --git a/content/en/docs/contribute/generate-ref-docs/kubernetes-api.md b/content/en/docs/contribute/generate-ref-docs/kubernetes-api.md index f61e62f5cb..7dc9e813bd 100644 --- a/content/en/docs/contribute/generate-ref-docs/kubernetes-api.md +++ b/content/en/docs/contribute/generate-ref-docs/kubernetes-api.md @@ -98,7 +98,7 @@ or more comments in the Kubernetes source code. ### Making changes to comments in the source code {{< note >}} -**Note**: The following steps are an example, not a general procedure. Details +The following steps are an example, not a general procedure. Details will be different in your situation. {{< /note >}} @@ -184,7 +184,7 @@ to monitor your pull request until it has been merged. is an example of a pull request that fixes a typo in the Kubernetes source code. {{< note >}} -**Note**: It can be tricky to determine the correct source file to be changed. In the +It can be tricky to determine the correct source file to be changed. In the preceding example, the authoritative source file is under the `staging` directory in the `kubernetes/kubernetes` repository. But in your situation,the `staging` directory might not be the place to find the authoritative source. For guidance, check the @@ -208,9 +208,11 @@ commit into the release-1.9 branch. The idea is to cherry pick the commit that e the commit that has the results of running the scripts. For instructions, see [Propose a Cherry Pick](https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md). -**Note:** Proposing a cherry pick requires that you have permission to set a label and a milestone in your +{{< note >}} +Proposing a cherry pick requires that you have permission to set a label and a milestone in your pull request. If you don't have those permissions, you will need to work with someone who can set the label and milestone for you. +{{< /note >}} When you have a pull request in place for cherry picking your one commit into the release-1.9 branch, the next step is to run these scripts in the release-1.9 branch of your local environment. diff --git a/content/en/docs/contribute/generate-ref-docs/kubernetes-components.md b/content/en/docs/contribute/generate-ref-docs/kubernetes-components.md index b4f03c1e33..0ec38e8de6 100644 --- a/content/en/docs/contribute/generate-ref-docs/kubernetes-components.md +++ b/content/en/docs/contribute/generate-ref-docs/kubernetes-components.md @@ -71,7 +71,6 @@ your base directory is `$GOPATH/src/github.com/kubernetes/kubernetes.` The remaining steps refer to your base directory as ``. {{< note >}} -**Note:** If you only need to generate, but not change, the reference docs, you don't need to manually get the `kubernetes/kubernetes` repository. When you run the `update-imported-docs` tool, it automatically clones the `kubernetes/kubernetes` repository. @@ -109,7 +108,7 @@ to do this, see Monitor your cherry-pick pull request until it is merged into the release branch. {{< note >}} -**Note:** Proposing a cherry pick requires that you have permission to set a label +Proposing a cherry pick requires that you have permission to set a label and a milestone in your pull request. If you don’t have those permissions, you will need to work with someone who can set the label and milestone for you. {{< /note >}} diff --git a/content/en/docs/contribute/intermediate.md b/content/en/docs/contribute/intermediate.md index 3fed21a05b..52a9f10af3 100644 --- a/content/en/docs/contribute/intermediate.md +++ b/content/en/docs/contribute/intermediate.md @@ -12,8 +12,7 @@ This page assumes that you've read and mastered the tasks in the learn about more ways to contribute. {{< note >}} -**Note:** Some tasks require you to use the Git command line client and other -tools. +Some tasks require you to use the Git command line client and other tools. {{< /note >}} {{% /capture %}} @@ -387,11 +386,11 @@ most up-to-date version of that branch. ``` {{< note >}} -**Note:** Do not reference a Github issue or pull request by ID or URL in the -commit message. If you do, it will cause that issue or pull request to get -a notification every time the commit shows up in a new Git branch. You can -link issues and pull requests together later, in the Github UI. -{{< /note >}} + Do not reference a Github issue or pull request by ID or URL in the + commit message. If you do, it will cause that issue or pull request to get + a notification every time the commit shows up in a new Git branch. You can + link issues and pull requests together later, in the Github UI. + {{< /note >}} 5. Optionally, you can test your change by staging the site locally using the `hugo` command. See [View your changes locally](#view-your-changes-locally). diff --git a/content/en/docs/contribute/localization.md b/content/en/docs/contribute/localization.md index 7120607d2e..a586bc5410 100644 --- a/content/en/docs/contribute/localization.md +++ b/content/en/docs/contribute/localization.md @@ -29,6 +29,10 @@ Localizations must meet some requirements for workflow (*how* to localize) and o To add a new localization of the Kubernetes documentation, you'll need to update the website by modifying the [site configuration](#modify-the-site-configuration) and [directory structure](#add-a-new-localization-directory). Then you can start [translating documents](#translating-documents)! +{{< note >}} +For an example localization-related [pull request](../create-pull-request), see [this pull request](https://github.com/kubernetes/website/pull/8636) to the [Kubernetes website repo](https://github.com/kubernetes/website) adding Korean localization to the Kubernetes docs. +{{< /note >}} + Let Kubernetes SIG Docs know you're interested in creating a localization! Join the [SIG Docs Slack channel](https://kubernetes.slack.com/messages/C1J0BPD2M/). We're happy to help you get started and answer any questions you have. All localization teams must be self-sustaining with their own resources. We're happy to host your work, but we can't translate it for you. diff --git a/content/en/docs/contribute/start.md b/content/en/docs/contribute/start.md index 2ebf585efa..5d205db0d2 100644 --- a/content/en/docs/contribute/start.md +++ b/content/en/docs/contribute/start.md @@ -213,7 +213,7 @@ documentation. include more detail if appropriate. {{< note >}} -**Note**: Do not include references to other Github issues or pull +Do not include references to other Github issues or pull requests in your commit message. You can add those to the pull request description later. {{< /note >}} @@ -231,7 +231,7 @@ description later. **Create pull request**. {{< note >}} -**Note**: If you don't want to create the pull request now, you can do it +If you don't want to create the pull request now, you can do it later, by browsing to the main URL of the Kubernetes website repository or your fork's repository. The Github website will prompt you to create the pull request if it detects that you pushed a new branch to your fork. diff --git a/content/en/docs/contribute/style/content-organization.md b/content/en/docs/contribute/style/content-organization.md index 61ee7d9a3b..a89e686ac9 100644 --- a/content/en/docs/contribute/style/content-organization.md +++ b/content/en/docs/contribute/style/content-organization.md @@ -32,7 +32,7 @@ weight: 10 {{% note %}} -**Note:** For page weights, it can be smart not to use 1, 2, 3 ..., but some other interval, say 10, 20, 30... This allows you to insert pages where you want later. +For page weights, it can be smart not to use 1, 2, 3 ..., but some other interval, say 10, 20, 30... This allows you to insert pages where you want later. {{% /note %}} @@ -56,7 +56,7 @@ linkTitle: Title used in links {{% note %}} -**Note:** The above needs to be done per language. If you don't see your section in the menu, it is probably because it is not identified as a section by Hugo. Create a `_index.md` content file in the section folder. +The above needs to be done per language. If you don't see your section in the menu, it is probably because it is not identified as a section by Hugo. Create a `_index.md` content file in the section folder. {{% /note %}} ### Documentation Side Menu diff --git a/content/en/docs/contribute/style/hugo-shortcodes/example1.md b/content/en/docs/contribute/style/hugo-shortcodes/example1.md index 9ee1a0b313..fbe21a1457 100644 --- a/content/en/docs/contribute/style/hugo-shortcodes/example1.md +++ b/content/en/docs/contribute/style/hugo-shortcodes/example1.md @@ -5,5 +5,5 @@ title: Example #1 This is an **example** content file inside the **includes** leaf bundle. {{< note >}} -**Note:** Included content files can also contain shortcodes. +Included content files can also contain shortcodes. {{< /note >}} \ No newline at end of file diff --git a/content/en/docs/contribute/style/hugo-shortcodes/index.md b/content/en/docs/contribute/style/hugo-shortcodes/index.md index 8d826a4c69..9d5dc7a30e 100644 --- a/content/en/docs/contribute/style/hugo-shortcodes/index.md +++ b/content/en/docs/contribute/style/hugo-shortcodes/index.md @@ -154,7 +154,9 @@ println "This is tab 2." {{}} {{% tab name="Markdown" %}} This is **some markdown.** -{{< note >}}**Note:** It can even contain shortcodes.{{< /note >}} +{{< note >}} +It can even contain shortcodes. +{{< /note >}} {{% /tab %}} {{< tab name="HTML" >}}
@@ -170,7 +172,11 @@ Will be rendered as: {{< tabs name="tab_with_md" >}} {{% tab name="Markdown" %}} This is **some markdown.** -{{< note >}}**Note:** It can even contain shortcodes.{{< /note >}} + +{{< note >}} +It can even contain shortcodes. +{{< /note >}} + {{% /tab %}} {{< tab name="HTML" >}}
diff --git a/content/en/docs/contribute/style/page-templates.md b/content/en/docs/contribute/style/page-templates.md index 147e8f5ec7..e8563eae52 100644 --- a/content/en/docs/contribute/style/page-templates.md +++ b/content/en/docs/contribute/style/page-templates.md @@ -15,7 +15,7 @@ directory of the [`kubernetes/website`](https://github.com/kubernetes/website) repository. {{< note >}} -**Note**: Every new topic needs to use a template. If you are unsure which +Every new topic needs to use a template. If you are unsure which template to use for a new topic, start with the [concept template](#concept-template). {{< /note >}} diff --git a/content/en/docs/contribute/style/style-guide.md b/content/en/docs/contribute/style/style-guide.md index 516b57a208..8cd5e14337 100644 --- a/content/en/docs/contribute/style/style-guide.md +++ b/content/en/docs/contribute/style/style-guide.md @@ -19,7 +19,7 @@ docs, follow the instructions on {{% capture body %}} {{< note >}} -**Note:** Kubernetes documentation uses [Blackfriday Markdown Renderer](https://github.com/russross/blackfriday) along with a few [Hugo Shortcodes](/docs/home/contribute/includes/) to support glossary entries, tabs, +Kubernetes documentation uses [Blackfriday Markdown Renderer](https://github.com/russross/blackfriday) along with a few [Hugo Shortcodes](/docs/home/contribute/includes/) to support glossary entries, tabs, and representing feature state. {{< /note >}} @@ -189,7 +189,8 @@ A list of Kubernetes-specific terms and words to be used consistently across the ## Shortcodes -Hugo [Shortcodes](https://gohugo.io/content-management/shortcodes) help create different rhetorical appeal levels. Our documentation supports three different shortcodes in this category: **Note:** {{}}, **Caution:** {{}}, and **Warning:** {{}}. + +Hugo [Shortcodes](https://gohugo.io/content-management/shortcodes) help create different rhetorical appeal levels. Our documentation supports three different shortcodes in this category: **Note** {{}}, **Caution** {{}}, and **Warning** {{}}. 1. Surround the text with an opening and closing shortcode. @@ -197,7 +198,7 @@ Hugo [Shortcodes](https://gohugo.io/content-management/shortcodes) help create d ``` {{}} - **Note:** The prefix you use is the same text you use in the tag. + No need to include a prefix; the shortcode automatically provides on (Note:, Caution:, etc.). {{}} ``` @@ -205,7 +206,7 @@ Hugo [Shortcodes](https://gohugo.io/content-management/shortcodes) help create d The output is: {{< note >}} -**Note:** The prefix you choose is the same text for the tag. +The prefix you choose is the same text for the tag. {{< /note >}} ### Note @@ -216,14 +217,14 @@ For example: ``` {{}} -**Note:** You can _still_ use Markdown inside these callouts. +You can _still_ use Markdown inside these callouts. {{}} ``` The output is: {{< note >}} -**Note:** You can _still_ use Markdown inside these callouts. +You can _still_ use Markdown inside these callouts. {{< /note >}} ### Caution @@ -234,14 +235,14 @@ For example: ``` {{}} -**Caution:** The callout style only applies to the line directly above the tag. +The callout style only applies to the line directly above the tag. {{}} ``` The output is: {{< caution >}} -**Caution:** The callout style only applies to the line directly above the tag. +The callout style only applies to the line directly above the tag. {{< /caution >}} ### Warning @@ -252,7 +253,7 @@ For example: ``` {{}} -**Warning:** Beware. +Beware. {{}} ``` @@ -260,7 +261,7 @@ For example: The output is: {{< warning >}} -**Warning:** Beware. +Beware. {{< /warning >}} ### Katacoda Embedded Live Environment @@ -273,7 +274,7 @@ The Embedded Live Environment is configured to run `minikube start` and lets use as the documentation. {{< caution >}} -**Caution:** The session is limited to 15 minutes. +The session is limited to 15 minutes. {{< /caution >}} For example: @@ -306,7 +307,8 @@ The output is: 1. Preheat oven to 350˚F 1. Prepare the batter, and pour into springform pan. - {{< note >}}**Note:** Grease the pan for best results.{{< /note >}} + + {{< note >}}Grease the pan for best results.{{< /note >}} 1. Bake for 20-25 minutes or until set. diff --git a/content/en/docs/contribute/style/write-new-topic.md b/content/en/docs/contribute/style/write-new-topic.md index 5980b0d24e..4c92eb25f3 100644 --- a/content/en/docs/contribute/style/write-new-topic.md +++ b/content/en/docs/contribute/style/write-new-topic.md @@ -137,7 +137,7 @@ file located at `/content/en/examples/pods/storage/gce-volume.yaml`. ``` {{< note >}} -**Note**: To show raw Hugo shortcodes as in the above example and prevent Hugo +To show raw Hugo shortcodes as in the above example and prevent Hugo from interpreting them, use C-style comments directly after the `<` and before the `>` characters. View the code for this page for an example. {{< /note >}} @@ -155,7 +155,7 @@ kubectl create -f https://k8s.io/examples/pods/storage/gce-volume.yaml ``` {{< note >}} -**Note**: When adding new YAML files to the `/examples` directory, make +When adding new YAML files to the `/examples` directory, make sure the file is also included into the `/examples_test.go` file. The Travis CI for the Website automatically runs this test case when PRs are submitted to ensure all examples pass the tests. diff --git a/content/en/docs/doc-contributor-tools/snippets/atom-snippets.cson b/content/en/docs/doc-contributor-tools/snippets/atom-snippets.cson index 0f7b78f030..5d4573938b 100644 --- a/content/en/docs/doc-contributor-tools/snippets/atom-snippets.cson +++ b/content/en/docs/doc-contributor-tools/snippets/atom-snippets.cson @@ -90,7 +90,7 @@ 'prefix': 'anote' 'body': """ {{< note >}} - **Note**: $1 + $1 {{< /note >}} """ @@ -99,14 +99,14 @@ 'prefix': 'acaution' 'body': """ {{< caution >}} - **Caution**: $1 + $1 {{< /caution >}} """ 'Insert warning': 'prefix': 'awarning' 'body': """ {{< warning >}} - **Warning**: $1 + $1 {{< /warning >}} """ diff --git a/content/en/docs/getting-started-guides/fedora/flannel_multi_node_cluster.md b/content/en/docs/getting-started-guides/fedora/flannel_multi_node_cluster.md index 12a032bbbc..88ef0615fd 100644 --- a/content/en/docs/getting-started-guides/fedora/flannel_multi_node_cluster.md +++ b/content/en/docs/getting-started-guides/fedora/flannel_multi_node_cluster.md @@ -31,7 +31,9 @@ You need 2 or more machines with Fedora installed. } ``` -**NOTE:** Choose an IP range that is *NOT* part of the public IP address range. +{{< note >}} +Choose an IP range that is *NOT* part of the public IP address range. +{{< /note >}} Add the configuration to the etcd server on fed-master. @@ -71,7 +73,9 @@ FLANNEL_ETCD_KEY="/coreos.com/network" FLANNEL_OPTIONS="" ``` -**Note:** By default, flannel uses the interface for the default route. If you have multiple interfaces and would like to use an interface other than the default route one, you could add "-iface=" to FLANNEL_OPTIONS. For additional options, run `flanneld --help` on command line. +{{< note >}} +By default, flannel uses the interface for the default route. If you have multiple interfaces and would like to use an interface other than the default route one, you could add "-iface=" to FLANNEL_OPTIONS. For additional options, run `flanneld --help` on command line. +{{< /note >}} Enable the flannel service. diff --git a/content/en/docs/getting-started-guides/ubuntu/backups.md b/content/en/docs/getting-started-guides/ubuntu/backups.md index 226072ceb3..164949d24b 100644 --- a/content/en/docs/getting-started-guides/ubuntu/backups.md +++ b/content/en/docs/getting-started-guides/ubuntu/backups.md @@ -117,6 +117,7 @@ juju run-action new-etcd/0 restore {{% /capture %}} {{% capture discussion %}} + ## Known Limitations #### Loss of PKI warning @@ -126,10 +127,9 @@ all TLS pki will be lost. No PKI migration occurs outside of the units requesting and registering the certificates. {{< caution >}} -**Caution:** Mismanaging this configuration will result in locking yourself -out of the cluster, and can potentially break existing deployments in very -strange ways relating to x509 validation of certificates, which affects both -servers and clients. +Mismanaging this configuration will result in locking yourself out of the cluster, +and can potentially break existing deployments in very strange ways relating to x509 +validation of certificates, which affects both servers and clients. {{< /caution >}} #### Restoring from snapshot on a scaled cluster diff --git a/content/en/docs/getting-started-guides/ubuntu/decommissioning.md b/content/en/docs/getting-started-guides/ubuntu/decommissioning.md index 6eaa3c3391..04f5210251 100644 --- a/content/en/docs/getting-started-guides/ubuntu/decommissioning.md +++ b/content/en/docs/getting-started-guides/ubuntu/decommissioning.md @@ -12,7 +12,7 @@ This page shows you how to properly decommission a cluster. This page assumes you have a working Juju deployed cluster. {{< warning >}} -**Warning:** By the time you've reached this step you should have backed up your workloads and pertinent data; this section is for the complete destruction of a cluster. +By the time you've reached this step you should have backed up your workloads and pertinent data; this section is for the complete destruction of a cluster. {{< /warning >}} {{% /capture %}} diff --git a/content/en/docs/getting-started-guides/ubuntu/networking.md b/content/en/docs/getting-started-guides/ubuntu/networking.md index 843dd5f6e9..e3afca9e87 100644 --- a/content/en/docs/getting-started-guides/ubuntu/networking.md +++ b/content/en/docs/getting-started-guides/ubuntu/networking.md @@ -14,7 +14,7 @@ This page shows how the various network portions of a cluster work and how to co This page assumes you have a working Juju deployed cluster. {{< note >}} -**Note:** Note that if you deploy a cluster via conjure-up or the CDK bundles, manually deploying CNI plugins is unnecessary. +Note that if you deploy a cluster via conjure-up or the CDK bundles, manually deploying CNI plugins is unnecessary. {{< /note >}} {{% /capture %}} diff --git a/content/en/docs/getting-started-guides/ubuntu/storage.md b/content/en/docs/getting-started-guides/ubuntu/storage.md index 008df52219..8a93e53a45 100644 --- a/content/en/docs/getting-started-guides/ubuntu/storage.md +++ b/content/en/docs/getting-started-guides/ubuntu/storage.md @@ -43,8 +43,11 @@ loop loop rootfs rootfs tmpfs tmpfs ``` -> **Note**: This listing is for the Amazon Web Services public cloud. -> Different clouds may have different pool names. + +{{< note >}} +This listing is for the Amazon Web Services public cloud. Different clouds may have +different pool names. +{{< /note >}} Add a storage pool to the ceph-osd charm by NAME,SIZE,COUNT: diff --git a/content/en/docs/getting-started-guides/ubuntu/upgrades.md b/content/en/docs/getting-started-guides/ubuntu/upgrades.md index 0af5398ba2..b34108c2c0 100644 --- a/content/en/docs/getting-started-guides/ubuntu/upgrades.md +++ b/content/en/docs/getting-started-guides/ubuntu/upgrades.md @@ -11,7 +11,7 @@ This page will outline how to manage and execute a Kubernetes upgrade. This page assumes you have a working deployed cluster. {{< warning >}} -**Warning:** You should always back up all your data before attempting an upgrade. +You should always back up all your data before attempting an upgrade. Don't forget to include the workload inside your cluster! Refer to the [backup documentation](/docs/getting-started-guides/ubuntu/backups). {{< /warning >}} @@ -83,7 +83,7 @@ First you need to upgrade the masters: juju upgrade-charm kubernetes-master {{< note >}} -**Note:** Always upgrade the masters before the workers. +Always upgrade the masters before the workers. {{< /note >}} Once the latest charm is deployed, the channel for Kubernetes can be selected by issuing the following: diff --git a/content/en/docs/getting-started-guides/ubuntu/validation.md b/content/en/docs/getting-started-guides/ubuntu/validation.md index 611eed8222..c61c1ec4be 100644 --- a/content/en/docs/getting-started-guides/ubuntu/validation.md +++ b/content/en/docs/getting-started-guides/ubuntu/validation.md @@ -90,7 +90,7 @@ a deployed cluster. The following example will skip the `Flaky`, `Slow`, and juju run-action kubernetes-e2e/0 test skip='\[(Flaky|Slow|Feature:.*)\]' {{< note >}} -**Note:** The escaping of the regex due to how bash handles brackets. +The escaping of the regex due to how bash handles brackets. {{< /note >}} To see the different types of tests the Kubernetes end-to-end charm has access @@ -112,7 +112,7 @@ command, as well as a flat file on disk on the `kubernetes-e2e` unit that executed the test. {{< note >}} -**Note:** The results will only be available once the action has +The results will only be available once the action has completed the test run. End-to-end testing can be quite time consuming, often taking more than 1 hour, depending on configuration. {{< /note >}} diff --git a/content/en/docs/getting-started-guides/windows/_index.md b/content/en/docs/getting-started-guides/windows/_index.md index 5efb00af98..022e86fda3 100644 --- a/content/en/docs/getting-started-guides/windows/_index.md +++ b/content/en/docs/getting-started-guides/windows/_index.md @@ -3,7 +3,7 @@ title: Using Windows Server Containers in Kubernetes toc_hide: true --- {{< note >}} -**Note:** These instructions were recently updated based on Windows Server platform enhancements and the Kubernetes v1.9 release +These instructions were recently updated based on Windows Server platform enhancements and the Kubernetes v1.9 release {{< /note >}} Kubernetes version 1.5 introduced Alpha support for Windows Server @@ -23,7 +23,7 @@ Containers on Kubernetes include: The Kubernetes control plane (API Server, Scheduler, Controller Manager, etc) continue to run on Linux, while the kubelet and kube-proxy can be run on Windows Server 2016 or later {{< note >}} -**Note:** Windows Server Containers on Kubernetes is a Beta feature in Kubernetes v1.9 +Windows Server Containers on Kubernetes is a Beta feature in Kubernetes v1.9 {{< /note >}} ## Get Windows Binaries @@ -159,7 +159,7 @@ Note: this file assumes that a user previous created 'l2bridge' host networks on #### For 3. Open vSwitch (OVS) & Open Virtual Network (OVN) with Overlay {{< note >}} -**Note:** Fully automated setup via Ansible playbooks is [available](https://github.com/openvswitch/ovn-kubernetes/tree/master/contrib). +Fully automated setup via Ansible playbooks is [available](https://github.com/openvswitch/ovn-kubernetes/tree/master/contrib). {{< /note >}} For manual setup, continue the following steps. @@ -264,7 +264,7 @@ Because your cluster has both Linux and Windows nodes, you must explicitly set t {{< codenew file="windows/simple-pod.yaml" >}} {{< note >}} -**Note:** This example assumes you are running on Windows Server 1709, so uses the image tag to support that. If you are on a different version, you will need to update the tag. For example, if on Windows Server 2016, update to use `"image": "microsoft/iis"` which will default to that OS version. +This example assumes you are running on Windows Server 1709, so uses the image tag to support that. If you are on a different version, you will need to update the tag. For example, if on Windows Server 2016, update to use `"image": "microsoft/iis"` which will default to that OS version. {{< /note >}} ### Secrets and ConfigMaps diff --git a/content/en/docs/reference/access-authn-authz/abac.md b/content/en/docs/reference/access-authn-authz/abac.md index 67ab051408..9174027776 100644 --- a/content/en/docs/reference/access-authn-authz/abac.md +++ b/content/en/docs/reference/access-authn-authz/abac.md @@ -49,12 +49,14 @@ properties: - `/foo/*` matches all subpaths of `/foo/`. - `readonly`, type boolean, when true, means that the Resource-matching policy only applies to get, list, and watch operations, Non-resource-matching policy only applies to get operation. -**NOTES:** An unset property is the same as a property set to the zero value for its type +{{< note >}} +An unset property is the same as a property set to the zero value for its type (e.g. empty string, 0, false). However, unset should be preferred for readability. In the future, policies may be expressed in a JSON format, and managed via a REST interface. +{{< /note >}} ## Authorization Algorithm diff --git a/content/en/docs/reference/access-authn-authz/admission-controllers.md b/content/en/docs/reference/access-authn-authz/admission-controllers.md index 9eee5a89e8..95a29497eb 100644 --- a/content/en/docs/reference/access-authn-authz/admission-controllers.md +++ b/content/en/docs/reference/access-authn-authz/admission-controllers.md @@ -66,11 +66,11 @@ kube-apiserver --enable-admission-plugins=NamespaceLifecycle,LimitRanger ... ``` {{< note >}} -**Note**: Depending on the way your Kubernetes cluster is deployed and how the -API server is started, you may need to apply the settings in different ways. -For example, you may have to modify the systemd unit file if the API server is -deployed as a systemd service, you may modify the manifest file for the API -server if Kubernetes is deployed in a self-hosted way. +Depending on the way your Kubernetes cluster is deployed and how the API server is +started, you may need to apply the settings in different ways. For example, you may +have to modify the systemd unit file if the API server is deployed as a systemd +service, you may modify the manifest file for the API server if Kubernetes is deployed +in a self-hosted way. {{< /note >}} ## How do I turn off an admission controller? @@ -489,7 +489,7 @@ plugin configuration file as the node selector. Conflicts result in rejection. {{< note >}} -**Note:** PodNodeSelector allows forcing pods to run on specifically labeled nodes. Also see the PodTolerationRestriction +PodNodeSelector allows forcing pods to run on specifically labeled nodes. Also see the PodTolerationRestriction admission plugin, which allows preventing pods from running on specifically tainted nodes. {{< /note >}} @@ -498,7 +498,7 @@ admission plugin, which allows preventing pods from running on specifically tain This admission controller implements additional validations for checking incoming `PersistentVolumeClaim` resize requests. {{< note >}} -**Note:** Support for volume resizing is available as an alpha feature. Admins must set the feature gate `ExpandPersistentVolumes` +Support for volume resizing is available as an alpha feature. Admins must set the feature gate `ExpandPersistentVolumes` to `true` to enable resizing. {{< /note >}} @@ -610,7 +610,7 @@ Yes. For Kubernetes version 1.10 and later, we recommend running the following set of admission controllers using the `--enable-admission-plugins` flag (**order doesn't matter**). {{< note >}} -**Note:** `--admission-control` was deprecated in 1.10 and replaced with `--enable-admission-plugins`. +`--admission-control` was deprecated in 1.10 and replaced with `--enable-admission-plugins`. {{< /note >}} ```shell diff --git a/content/en/docs/reference/access-authn-authz/authentication.md b/content/en/docs/reference/access-authn-authz/authentication.md index 9159b7c68d..26174c0bb4 100644 --- a/content/en/docs/reference/access-authn-authz/authentication.md +++ b/content/en/docs/reference/access-authn-authz/authentication.md @@ -97,7 +97,7 @@ The token file is a csv file with a minimum of 3 columns: token, user name, user followed by optional group names. {{< note >}} -**Note:** If you have more than one group the column must be double quoted e.g. +If you have more than one group the column must be double quoted e.g. ```conf token,user,uid,"group1,group2,group3" @@ -190,7 +190,7 @@ talk to the API server. Accounts may be explicitly associated with pods using th `serviceAccountName` field of a `PodSpec`. {{< note >}} -**Note:** `serviceAccountName` is usually omitted because this is done automatically. +`serviceAccountName` is usually omitted because this is done automatically. {{< /note >}} ```yaml @@ -246,7 +246,7 @@ type: kubernetes.io/service-account-token ``` {{< note >}} -**Note:** Values are base64 encoded because secrets are always base64 encoded. +Values are base64 encoded because secrets are always base64 encoded. {{< /note >}} The signed JWT can be used as a bearer token to authenticate as the given service @@ -510,8 +510,9 @@ It is designed for use in combination with an authenticating proxy, which sets t * `--requestheader-username-headers` Required, case-insensitive. Header names to check, in order, for the user identity. The first header containing a value is used as the username. * `--requestheader-group-headers` 1.6+. Optional, case-insensitive. "X-Remote-Group" is suggested. Header names to check, in order, for the user's groups. All values in all specified headers are used as group names. * `--requestheader-extra-headers-prefix` 1.6+. Optional, case-insensitive. "X-Remote-Extra-" is suggested. Header prefixes to look for to determine extra information about the user (typically used by the configured authorization plugin). Any headers beginning with any of the specified prefixes have the prefix removed. The remainder of the header name is lowercased and [percent-decoded](https://tools.ietf.org/html/rfc3986#section-2.1) and becomes the extra key, and the header value is the extra value. + {{< note >}} -**Note:** Prior to 1.11.3 (and 1.10.7, 1.9.11), the extra key could only contain characters which were [legal in HTTP header labels](https://tools.ietf.org/html/rfc7230#section-3.2.6). +Prior to 1.11.3 (and 1.10.7, 1.9.11), the extra key could only contain characters which were [legal in HTTP header labels](https://tools.ietf.org/html/rfc7230#section-3.2.6). {{< /note >}} For example, with this configuration: @@ -601,7 +602,7 @@ The following HTTP headers can be used to performing an impersonation request: * `Impersonate-Extra-( extra name )`: A dynamic header used to associate extra fields with the user. Optional. Requires "Impersonate-User". In order to be preserved consistently, `( extra name )` should be lower-case, and any characters which aren't [legal in HTTP header labels](https://tools.ietf.org/html/rfc7230#section-3.2.6) MUST be utf8 and [percent-encoded](https://tools.ietf.org/html/rfc3986#section-2.1). {{< note >}} -**Note:** Prior to 1.11.3 (and 1.10.7, 1.9.11), `( extra name )` could only contain characters which were [legal in HTTP header labels](https://tools.ietf.org/html/rfc7230#section-3.2.6). +Prior to 1.11.3 (and 1.10.7, 1.9.11), `( extra name )` could only contain characters which were [legal in HTTP header labels](https://tools.ietf.org/html/rfc7230#section-3.2.6). {{< /note >}} An example set of headers: diff --git a/content/en/docs/reference/access-authn-authz/authorization.md b/content/en/docs/reference/access-authn-authz/authorization.md index 09212d0a63..366fbefe21 100644 --- a/content/en/docs/reference/access-authn-authz/authorization.md +++ b/content/en/docs/reference/access-authn-authz/authorization.md @@ -168,12 +168,11 @@ secrets the user cannot themselves read, or that run under a service account with different/greater permissions. {{< caution >}} -**Caution:** System administrators, use care when granting access to pod -creation. A user granted permission to create pods (or controllers that create -pods) in the namespace can: read all secrets in the namespace; read all config -maps in the namespace; and impersonate any service account in the namespace and -take any action the account could take. This applies regardless of authorization -mode. +System administrators, use care when granting access to pod creation. A user +granted permission to create pods (or controllers that create pods) in the +namespace can: read all secrets in the namespace; read all config maps in the +namespace; and impersonate any service account in the namespace and take any +action the account could take. This applies regardless of authorization mode. {{< /caution >}} {{% /capture %}} diff --git a/content/en/docs/reference/access-authn-authz/bootstrap-tokens.md b/content/en/docs/reference/access-authn-authz/bootstrap-tokens.md index 736461481d..a4b0e5073d 100644 --- a/content/en/docs/reference/access-authn-authz/bootstrap-tokens.md +++ b/content/en/docs/reference/access-authn-authz/bootstrap-tokens.md @@ -179,7 +179,7 @@ verify the JWS using the `HS256` scheme (HMAC-SHA256) with the full token (e.g. is used. {{< warning >}} -**Warning:** Any party with a bootstrapping token can create a valid signature for that +Any party with a bootstrapping token can create a valid signature for that token. When using ConfigMap signing it's discouraged to share the same token with many clients, since a compromised client can potentially man-in-the middle another client relying on the signature to bootstrap TLS trust. diff --git a/content/en/docs/reference/access-authn-authz/extensible-admission-controllers.md b/content/en/docs/reference/access-authn-authz/extensible-admission-controllers.md index 518e57ef89..4d6fde6a00 100644 --- a/content/en/docs/reference/access-authn-authz/extensible-admission-controllers.md +++ b/content/en/docs/reference/access-authn-authz/extensible-admission-controllers.md @@ -120,7 +120,7 @@ webhooks: ``` {{< note >}} -**Note:** When using `clientConfig.service`, the server cert must be valid for +When using `clientConfig.service`, the server cert must be valid for `..svc`. {{< /note >}} @@ -132,7 +132,7 @@ After you create the webhook configuration, the system will take a few seconds to honor the new configuration. {{< note >}} -**Note:** When the webhook plugin is deployed into the Kubernetes cluster as a +When the webhook plugin is deployed into the Kubernetes cluster as a service, it has to expose its service on the 443 port. The communication between the API server and the webhook service may fail if a different port is used. @@ -228,7 +228,7 @@ admission controller), or to inject defaults (e.g., the admission controller), etc. {{< note >}} -**Note:** If your use case does not involve mutating objects, consider using +If your use case does not involve mutating objects, consider using external admission webhooks, as they have better performance. {{< /note >}} diff --git a/content/en/docs/reference/access-authn-authz/rbac.md b/content/en/docs/reference/access-authn-authz/rbac.md index ca674e9343..719164c5ec 100644 --- a/content/en/docs/reference/access-authn-authz/rbac.md +++ b/content/en/docs/reference/access-authn-authz/rbac.md @@ -807,7 +807,7 @@ In order from most secure to least secure, the approaches are: If an application does not specify a `serviceAccountName`, it uses the "default" service account. - {{< note >}}**Note:** Permissions given to the "default" service + {{< note >}}Permissions given to the "default" service account are available to any pod in the namespace that does not specify a `serviceAccountName`.{{< /note >}} @@ -823,7 +823,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 >}}**Note:** Enabling this means the `kube-system` + {{< note >}}Enabling this means the `kube-system` namespace contains secrets that grant super-user access to the API.{{< /note >}} @@ -863,9 +863,11 @@ In order from most secure to least secure, the approaches are: If you don't care about partitioning permissions at all, you can grant super-user access to all service accounts. - {{< warning >}}**Warning:** This allows any user with read access + {{< warning >}} + This allows any user with read access to secrets or the ability to create a pod to access super-user - credentials.{{< /warning >}} + credentials. + {{< /warning >}} ```shell kubectl create clusterrolebinding serviceaccounts-cluster-admin \ @@ -909,7 +911,7 @@ in the server logs, you can remove the ABAC authorizer. You can replicate a permissive policy using RBAC role bindings. {{< warning >}} -**Warning:** The following policy allows **ALL** service accounts to act as cluster administrators. +The following policy allows **ALL** service accounts to act as cluster administrators. Any application running in a container receives service account credentials automatically, and could perform any action against the API, including viewing secrets and modifying permissions. This is not a recommended policy. diff --git a/content/en/docs/reference/command-line-tools-reference/feature-gates.md b/content/en/docs/reference/command-line-tools-reference/feature-gates.md index e001488653..99ac76530e 100644 --- a/content/en/docs/reference/command-line-tools-reference/feature-gates.md +++ b/content/en/docs/reference/command-line-tools-reference/feature-gates.md @@ -147,7 +147,7 @@ A *Beta* feature means: that can be upgraded independently, you may be able to relax this restriction. {{< note >}} -**Note:** Please do try *Beta* features and give feedback on them! +Please do try *Beta* features and give feedback on them! After they exit beta, it may not be practical for us to make more changes. {{< /note >}} diff --git a/content/en/docs/reference/command-line-tools-reference/kubelet-tls-bootstrapping.md b/content/en/docs/reference/command-line-tools-reference/kubelet-tls-bootstrapping.md index 192cf963d2..551726cf10 100644 --- a/content/en/docs/reference/command-line-tools-reference/kubelet-tls-bootstrapping.md +++ b/content/en/docs/reference/command-line-tools-reference/kubelet-tls-bootstrapping.md @@ -221,7 +221,7 @@ specified by `--kubeconfig`. The certificate and key file will be placed in the directory specified by `--cert-dir`. {{< note >}} -**Note:** The following flags are required to enable this bootstrapping when starting the kubelet: +The following flags are required to enable this bootstrapping when starting the kubelet: ``` --bootstrap-kubeconfig="/path/to/bootstrap/kubeconfig" @@ -251,7 +251,7 @@ certificate. To enable this feature pass the following flag to the kubelet: ``` {{< note >}} -**Note:** The CSR approving controllers implemented in core Kubernetes do not +The CSR approving controllers implemented in core Kubernetes do not approve node serving certificates for [security reasons](https://github.com/kubernetes/community/pull/1982). To use `RotateKubeletServerCertificate` operators need to run a custom approving diff --git a/content/en/docs/reference/glossary/cluster-operator.md b/content/en/docs/reference/glossary/cluster-operator.md index f006ebe319..c897343830 100755 --- a/content/en/docs/reference/glossary/cluster-operator.md +++ b/content/en/docs/reference/glossary/cluster-operator.md @@ -16,5 +16,7 @@ tags: Their primary responsibility is keeping a cluster up and running, which may involve periodic maintenance activities or upgrades.
-**NOTE:** Cluster operators are different from the [Operator pattern](https://coreos.com/operators) that extends the Kubernetes API. +{{< note >}} +Cluster operators are different from the [Operator pattern](https://coreos.com/operators) that extends the Kubernetes API. +{{< /note >}} diff --git a/content/en/docs/reference/kubectl/conventions.md b/content/en/docs/reference/kubectl/conventions.md index 05ae60a048..47890bf6fc 100644 --- a/content/en/docs/reference/kubectl/conventions.md +++ b/content/en/docs/reference/kubectl/conventions.md @@ -50,12 +50,14 @@ If you do not specify a generator flag, other flags prompt you to use a specific | Job | `--restart=OnFailure` | `--restart=OnFailure` | `--restart=OnFailure` OR `--restart=Never` | N/A | | Cron Job | `--schedule=` | N/A | N/A | N/A | -**Note:** These flags use a default generator only when you have not specified -any flag. This means that when you combine `--generator` with other flags the generator that you specified later does not change. For example, in a cluster v1.4, if you initially specify +{{< note >}} +These flags use a default generator only when you have not specified any flag. +This means that when you combine `--generator` with other flags the generator that you specified later does not change. For example, in a cluster v1.4, if you initially specify `--restart=Always`, a Deployment is created; if you later specify `--restart=Always` and `--generator=run/v1`, a Replication Controller is created. This enables you to pin to a specific behavior with the generator, even when the default generator is changed later. +{{< /note >}} The flags set the generator in the following order: first the schedule flag then restart policy and finally the generator. diff --git a/content/en/docs/reference/kubectl/docker-cli-to-kubectl.md b/content/en/docs/reference/kubectl/docker-cli-to-kubectl.md index 6373155102..25c91e374e 100644 --- a/content/en/docs/reference/kubectl/docker-cli-to-kubectl.md +++ b/content/en/docs/reference/kubectl/docker-cli-to-kubectl.md @@ -36,7 +36,7 @@ deployment "nginx-app" created ``` {{< note >}} -**Note:** `kubectl` commands print the type and name of the resource created or mutated, which can then be used in subsequent commands. You can expose a new Service after a Deployment is created. +`kubectl` commands print the type and name of the resource created or mutated, which can then be used in subsequent commands. You can expose a new Service after a Deployment is created. {{< /note >}} ```shell @@ -222,7 +222,7 @@ $ kubectl get po -l run=nginx-app ``` {{< note >}} -**Note:** When you use kubectl, you don't delete the pod directly.You have to first delete the Deployment that owns the pod. If you delete the pod directly, the Deployment recreates the pod. +When you use kubectl, you don't delete the pod directly.You have to first delete the Deployment that owns the pod. If you delete the pod directly, the Deployment recreates the pod. {{< /note >}} ## docker login diff --git a/content/en/docs/reference/kubectl/overview.md b/content/en/docs/reference/kubectl/overview.md index 76f208f40e..4d67d8f897 100644 --- a/content/en/docs/reference/kubectl/overview.md +++ b/content/en/docs/reference/kubectl/overview.md @@ -45,7 +45,10 @@ where `command`, `TYPE`, `NAME`, and `flags` are: 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.
-**Important**: Flags that you specify from the command line override default values and any corresponding environment variables. + +{{< caution >}} +Flags that you specify from the command line override default values and any corresponding environment variables. +{{< /caution >}} If you need help, just run `kubectl help` from the terminal window. @@ -299,7 +302,7 @@ $ kubectl describe pods --include-uninitialized=false ``` {{< note >}} -**Note:** The `kubectl get` command is usually used for retrieving one or more +The `kubectl get` command is usually used for retrieving one or more resources of the same resource type. It features a rich set of flags that allows you to customize the output format using the `-o` or `--output` flag, for example. You can specify the `-w` or `--watch` flag to start watching updates to a particular diff --git a/content/en/docs/reference/setup-tools/kubeadm/kubeadm-alpha.md b/content/en/docs/reference/setup-tools/kubeadm/kubeadm-alpha.md index ba29459a2a..68c14d99d4 100644 --- a/content/en/docs/reference/setup-tools/kubeadm/kubeadm-alpha.md +++ b/content/en/docs/reference/setup-tools/kubeadm/kubeadm-alpha.md @@ -145,7 +145,7 @@ You can install all the available addons with the `all` subcommand, or install them selectively. {{< note >}} -**Note:** If `kubeadm` is invoked with `--feature-gates=CoreDNS=false`, kube-dns is installed. +If `kubeadm` is invoked with `--feature-gates=CoreDNS=false`, kube-dns is installed. {{< /note >}} {{< tabs name="tab-addon" >}} @@ -158,7 +158,7 @@ install them selectively. ## kubeadm alpha phase self-hosting {#cmd-phase-self-hosting} {{< caution >}} -**Caution:** Self-hosting is an alpha feature. See [kubeadm init](/docs/reference/setup-tools/kubeadm/kubeadm-init/) documentation for self-hosting limitations. +Self-hosting is an alpha feature. See [kubeadm init](/docs/reference/setup-tools/kubeadm/kubeadm-init/) documentation for self-hosting limitations. {{< /caution >}} {{< tabs name="tab-self-hosting" >}} diff --git a/content/en/docs/reference/setup-tools/kubeadm/kubeadm-init.md b/content/en/docs/reference/setup-tools/kubeadm/kubeadm-init.md index 69eba78cfb..ad95ac1e83 100644 --- a/content/en/docs/reference/setup-tools/kubeadm/kubeadm-init.md +++ b/content/en/docs/reference/setup-tools/kubeadm/kubeadm-init.md @@ -92,8 +92,7 @@ following steps: ### Using kubeadm init with a configuration file {#config-file} {{< caution >}} -**Caution:** The config file is -still considered alpha and may change in future versions. +The config file is still considered alpha and may change in future versions. {{< /caution >}} It's possible to configure `kubeadm init` with a configuration file instead of command @@ -284,14 +283,10 @@ configured in the kubelet via static files. To create a self-hosted cluster, pass the flag `--feature-gates=SelfHosting=true` to `kubeadm init`. {{< caution >}} -**Caution:** `SelfHosting` is an alpha feature. It is deprecated in 1.12 +`SelfHosting` is an alpha feature. It is deprecated in 1.12 and will be removed in 1.13. {{< /caution >}} -{{< warning >}} -**Warning:** See self-hosted caveats and limitations. -{{< /warning >}} - #### Caveats Self-hosting in 1.8 has some important limitations. In particular, a @@ -309,7 +304,7 @@ authorization configuration for your cluster, and may not be appropriate for your environment. {{< caution >}} -**Caution:** `StoreCertsInSecrets` is an alpha feature. It is deprecated in 1.12 +`StoreCertsInSecrets` is an alpha feature. It is deprecated in 1.12 and will be removed in 1.13. {{< /caution >}} diff --git a/content/en/docs/reference/setup-tools/kubeadm/kubeadm-join.md b/content/en/docs/reference/setup-tools/kubeadm/kubeadm-join.md index c0882d0b01..2fb074626b 100644 --- a/content/en/docs/reference/setup-tools/kubeadm/kubeadm-join.md +++ b/content/en/docs/reference/setup-tools/kubeadm/kubeadm-join.md @@ -204,8 +204,7 @@ These commands should be run after `kubeadm init` but before `kubeadm join`. ### Using kubeadm join with a configuration file {#config-file} {{< caution >}} -**Caution:** The config file is -still considered alpha and may change in future versions. +The config file is still considered alpha and may change in future versions. {{< /caution >}} It's possible to configure `kubeadm join` with a configuration file instead of command diff --git a/content/en/docs/reference/using-api/api-overview.md b/content/en/docs/reference/using-api/api-overview.md index 2d38030e3f..38baa5aa92 100644 --- a/content/en/docs/reference/using-api/api-overview.md +++ b/content/en/docs/reference/using-api/api-overview.md @@ -40,7 +40,7 @@ The version is set at the API level rather than at the resource or field level t The JSON and Protobuf serialization schemas follow the same guidelines for schema changes. The following descriptions cover both formats. {{< note >}} -**Note:** The API versioning and software versioning are indirectly related. The [API and release +The API versioning and software versioning are indirectly related. The [API and release versioning proposal](https://git.k8s.io/community/contributors/design-proposals/release/versioning.md) describes the relationship between API versioning and software versioning. {{< /note >}} @@ -64,7 +64,7 @@ Here's a summary of each level: - The software is recommended for only non-business-critical uses because of potential for incompatible changes in subsequent releases. If you have multiple clusters which can be upgraded independently, you may be able to relax this restriction. {{< note >}} -**Note:** Try the beta features and provide feedback. After the features exit beta, it may not be practical to make more changes. +Try the beta features and provide feedback. After the features exit beta, it may not be practical to make more changes. {{< /note >}} - Stable: @@ -97,7 +97,7 @@ on the apiserver. `--runtime-config` accepts comma separated values. For example The flag accepts comma separated set of key=value pairs describing runtime configuration of the apiserver. {{< note >}} -**Note:** When you enable or disable groups or resources, you need to restart the apiserver and controller-manager +When you enable or disable groups or resources, you need to restart the apiserver and controller-manager to pick up the `--runtime-config` changes. {{< /note >}} diff --git a/content/en/docs/reference/using-api/deprecation-policy.md b/content/en/docs/reference/using-api/deprecation-policy.md index 565eb038ea..31cc4a6db2 100644 --- a/content/en/docs/reference/using-api/deprecation-policy.md +++ b/content/en/docs/reference/using-api/deprecation-policy.md @@ -57,7 +57,7 @@ can not be removed from that version or have its behavior significantly changed, regardless of track. {{< note >}} -**Note:** For historical reasons, there are 2 "monolithic" API groups - "core" (no +For historical reasons, there are 2 "monolithic" API groups - "core" (no group name) and "extensions". Resources will incrementally be moved from these legacy API groups into more domain-specific API groups. {{< /note >}} @@ -90,7 +90,7 @@ no less than:** This covers the maximum supported version skew of 2 releases. {{< note >}} -**Note:** Until [#52185](https://github.com/kubernetes/kubernetes/issues/52185) is +Until [#52185](https://github.com/kubernetes/kubernetes/issues/52185) is resolved, no API versions that have been persisted to storage may be removed. Serving REST endpoints for those versions may be disabled (subject to the deprecation timelines in this document), but the API server must remain capable diff --git a/content/en/docs/setup/certificates.md b/content/en/docs/setup/certificates.md index 3fffec6fcc..dc93af997f 100644 --- a/content/en/docs/setup/certificates.md +++ b/content/en/docs/setup/certificates.md @@ -30,7 +30,7 @@ Kubernetes requires PKI for the following operations: * Client and server certificates for the [front-proxy][proxy] {{< note >}} -**Note:** `front-proxy` certificates are required only if you run kube-proxy to support [an extension API server](/docs/tasks/access-kubernetes-api/setup-extension-api-server/). +`front-proxy` certificates are required only if you run kube-proxy to support [an extension API server](/docs/tasks/access-kubernetes-api/setup-extension-api-server/). {{< /note >}} etcd also implements mutual TLS to authenticate clients and peers. diff --git a/content/en/docs/setup/custom-cloud/kubespray.md b/content/en/docs/setup/custom-cloud/kubespray.md index 11671b501c..b181b087e9 100644 --- a/content/en/docs/setup/custom-cloud/kubespray.md +++ b/content/en/docs/setup/custom-cloud/kubespray.md @@ -103,7 +103,7 @@ You can upgrade your cluster by running the upgrade-cluster playbook. For more i You can reset your nodes and wipe out all components installed with Kubespray via the [reset playbook](https://github.com/kubernetes-incubator/kubespray/blob/master/reset.yml). {{< caution >}} -**Caution:** When running the reset playbook, be sure not to accidentally target your production cluster! +When running the reset playbook, be sure not to accidentally target your production cluster! {{< /caution >}} ## Feedback diff --git a/content/en/docs/setup/independent/create-cluster-kubeadm.md b/content/en/docs/setup/independent/create-cluster-kubeadm.md index 8ff6ae7e97..1b40c1acca 100644 --- a/content/en/docs/setup/independent/create-cluster-kubeadm.md +++ b/content/en/docs/setup/independent/create-cluster-kubeadm.md @@ -99,7 +99,7 @@ timeframe; which also applies to `kubeadm`. See ["Installing kubeadm"](/docs/setup/independent/install-kubeadm/). {{< note >}} -**Note:** If you have already installed kubeadm, run `apt-get update && +If you have already installed kubeadm, run `apt-get update && apt-get upgrade` or `yum update` to get the latest version of kubeadm. When you upgrade, the kubelet restarts every few seconds as it waits in a crashloop for @@ -228,7 +228,7 @@ created, and deleted with the `kubeadm token` command. See the ### Installing a pod network add-on {#pod-network} {{< caution >}} -**Caution:** This section contains important information about installation and deployment order. Read it carefully before proceeding. +This section contains important information about installation and deployment order. Read it carefully before proceeding. {{< /caution >}} You must install a pod network add-on so that your pods can communicate with @@ -465,7 +465,7 @@ The output is similar to this: ``` {{< note >}} -**Note:** To specify an IPv6 tuple for `:`, IPv6 address must be enclosed in square brackets, for example: `[fd00::101]:2073`. +To specify an IPv6 tuple for `:`, IPv6 address must be enclosed in square brackets, for example: `[fd00::101]:2073`. {{< /note >}} The output should look something like: @@ -498,7 +498,7 @@ kubectl --kubeconfig ./admin.conf get nodes ``` {{< note >}} -**Note:** The example above assumes SSH access is enabled for root. If that is not the +The example above assumes SSH access is enabled for root. If that is not the case, you can copy the `admin.conf` file to be accessible by some other user and `scp` using that other user instead. diff --git a/content/en/docs/setup/independent/high-availability.md b/content/en/docs/setup/independent/high-availability.md index 226409b48f..d88e419269 100644 --- a/content/en/docs/setup/independent/high-availability.md +++ b/content/en/docs/setup/independent/high-availability.md @@ -22,9 +22,9 @@ with upgrading your clusters, for example. We encourage you to try either approa and provide feedback. {{< caution >}} -**Caution**: This page does not address running your cluster on a cloud provider. -In a cloud environment, neither approach documented here works with Service objects -of type LoadBalancer, or with dynamic PersistentVolumes. +This page does not address running your cluster on a cloud provider. In a cloud +environment, neither approach documented here works with Service objects of type +LoadBalancer, or with dynamic PersistentVolumes. {{< /caution >}} {{% /capture %}} @@ -49,9 +49,8 @@ For the external etcd cluster only, you also need: - Three additional machines for etcd members {{< note >}} -**Note**: The following examples run Calico as the Pod networking provider. If -you run another networking provider, make sure to replace any default values as -needed. +The following examples run Calico as the Pod networking provider. If you run another +networking provider, make sure to replace any default values as needed. {{< /note >}} {{% /capture %}} @@ -61,8 +60,7 @@ needed. ## First steps for both methods {{< note >}} -**Note**: All commands in this guide on any control plane or etcd node should be -run as root. +All commands in this guide on any control plane or etcd node should be run as root. {{< /note >}} - Find your pod CIDR. For details, see [the CNI network @@ -102,9 +100,8 @@ run as root. ### Create load balancer for kube-apiserver {{< note >}} -**Note**: There are many configurations for load balancers. The following -example is only one option. Your cluster requirements may need a -different configuration. +There are many configurations for load balancers. The following example is only one +option. Your cluster requirements may need a different configuration. {{< /note >}} 1. Create a kube-apiserver load balancer with a name that resolves to DNS. @@ -140,7 +137,7 @@ different configuration. ### Bootstrap the first stacked control plane node {{< note >}} -**Note**: Optionally replace `stable` with a different version of Kubernetes, for example `v1.12.0`. +Optionally replace `stable` with a different version of Kubernetes, for example `v1.12.0`. {{< /note >}} 1. Create a `kubeadm-config.yaml` template file: @@ -217,7 +214,7 @@ done ``` {{< note >}} -**Note**: Remember that your config may differ from this example. +Remember that your config may differ from this example. {{< /note >}} ### Add the second stacked control plane node @@ -439,7 +436,7 @@ done 1. Create a `kubeadm-config.yaml`: {{< note >}} -**Note**: Optionally replace `stable` with a different version of Kubernetes, for example `v1.11.3`. +Optionally replace `stable` with a different version of Kubernetes, for example `v1.11.3`. {{< /note >}} apiVersion: kubeadm.k8s.io/v1alpha3 diff --git a/content/en/docs/setup/independent/setup-ha-etcd-with-kubeadm.md b/content/en/docs/setup/independent/setup-ha-etcd-with-kubeadm.md index 9e312d5464..2d5ea7c059 100644 --- a/content/en/docs/setup/independent/setup-ha-etcd-with-kubeadm.md +++ b/content/en/docs/setup/independent/setup-ha-etcd-with-kubeadm.md @@ -38,7 +38,7 @@ The general approach is to generate all certs on one node and only distribute the *necessary* files to the other nodes. {{< note >}} -**Note:** kubeadm contains all the necessary crytographic machinery to generate +kubeadm contains all the necessary crytographic machinery to generate the certificates described below; no other cryptographic tooling is required for this example. {{< /note >}} diff --git a/content/en/docs/setup/independent/troubleshooting-kubeadm.md b/content/en/docs/setup/independent/troubleshooting-kubeadm.md index 1f5878efac..70a29a3f94 100644 --- a/content/en/docs/setup/independent/troubleshooting-kubeadm.md +++ b/content/en/docs/setup/independent/troubleshooting-kubeadm.md @@ -259,7 +259,7 @@ kubectl -n kube-system get deployment coredns -o yaml | \ ``` {{< warning >}} -**Warning**: Disabling SELinux or setting `allowPrivilegeEscalation` to `true` can compromise +Disabling SELinux or setting `allowPrivilegeEscalation` to `true` can compromise the security of your cluster. {{< /warning >}} diff --git a/content/en/docs/setup/minikube.md b/content/en/docs/setup/minikube.md index 8e763c777d..aa2143e4c3 100644 --- a/content/en/docs/setup/minikube.md +++ b/content/en/docs/setup/minikube.md @@ -337,7 +337,9 @@ 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. +{{< note >}} +Host folder sharing is not implemented in the KVM driver yet. +{{< /note >}} | Driver | OS | HostFolder | VM | | --- | --- | --- | --- | diff --git a/content/en/docs/setup/multiple-zones.md b/content/en/docs/setup/multiple-zones.md index 5256d703b0..81d4a32ded 100644 --- a/content/en/docs/setup/multiple-zones.md +++ b/content/en/docs/setup/multiple-zones.md @@ -199,12 +199,14 @@ kubectl create -f - <}} +For version 1.3+ Kubernetes will distribute dynamic PV claims across the configured zones. For version 1.2, dynamic persistent volumes were always created in the zone of the cluster master (here us-central1-a / us-west-2a); that issue ([#23330](https://github.com/kubernetes/kubernetes/issues/23330)) was addressed in 1.3+. +{{< /note >}} Now lets validate that Kubernetes automatically labeled the zone & region the PV was created in. diff --git a/content/en/docs/setup/on-premises-metal/krib.md b/content/en/docs/setup/on-premises-metal/krib.md index e37376e464..4438b6a7e0 100644 --- a/content/en/docs/setup/on-premises-metal/krib.md +++ b/content/en/docs/setup/on-premises-metal/krib.md @@ -11,7 +11,7 @@ This guide helps to install a Kubernetes cluster hosted on bare metal with [Digi Digital Rebar Provision (DRP) is an integrated Golang DHCP, bare metal provisioning (PXE/iPXE) and workflow automation platform. While [DRP can be used to invoke](https://provision.readthedocs.io/en/tip/doc/integrations/ansible.html) [kubespray](../kubespray), it also offers a self-contained Kubernetes installation known as [KRIB (Kubernetes Rebar Integrated Bootstrap)](https://github.com/digitalrebar/provision-content/tree/master/krib). {{< note >}} -**Note:** KRIB is not a _stand-alone_ installer: Digital Rebar templates drive a standard *[kubeadm](/docs/admin/kubeadm/)* configuration that manages the Kubernetes installation with the [Digital Rebar cluster pattern](https://provision.readthedocs.io/en/tip/doc/arch/cluster.html#rs-cluster-pattern) to elect leaders _without external supervision_. +KRIB is not a _stand-alone_ installer: Digital Rebar templates drive a standard *[kubeadm](/docs/admin/kubeadm/)* configuration that manages the Kubernetes installation with the [Digital Rebar cluster pattern](https://provision.readthedocs.io/en/tip/doc/arch/cluster.html#rs-cluster-pattern) to elect leaders _without external supervision_. {{< /note >}} @@ -43,7 +43,7 @@ Upload the KRIB Content bundle (or build from [source](https://github.com/digita ### (3/5) Start your cluster deployment {{< note >}} -**Note:** KRIB documentation is dynamically generated from the source and will be more up to date than this guide. +KRIB documentation is dynamically generated from the source and will be more up to date than this guide. {{< /note >}} Following the [KRIB documentation](https://provision.readthedocs.io/en/tip/doc/content-packages/krib.html), create a Profile for your cluster and assign your target servers into the cluster Profile. The Profile must set `krib\cluster-name` and `etcd\cluster-name` Params to be the name of the Profile. Cluster configuration choices can be made by adding additional Params to the Profile; however, safe defaults are provided for all Params. @@ -86,7 +86,7 @@ You can add servers into your cluster by adding the cluster Profile to the serve You can reset your cluster and wipe out all configuration and TLS certificates using the `krib-reset-cluster` Workflow on any of the servers in the cluster. {{< caution >}} -**Caution:** When running the reset Workflow, be sure not to accidentally target your production cluster! +When running the reset Workflow, be sure not to accidentally target your production cluster! {{< /caution >}} ## Feedback diff --git a/content/en/docs/setup/pick-right-solution.md b/content/en/docs/setup/pick-right-solution.md index 1686f43f4c..1fed1a600c 100644 --- a/content/en/docs/setup/pick-right-solution.md +++ b/content/en/docs/setup/pick-right-solution.md @@ -226,9 +226,8 @@ Agile Stacks | Terraform | CoreOS | multi-support | [docs](https://www.a IBM Cloud Kubernetes Service | | Ubuntu | calico | [docs](https://console.bluemix.net/docs/containers/container_index.html) | Commercial Digital Rebar | kubeadm | any | metal | [docs](/docs/setup/on-premises-metal/krib/) | Community ([@digitalrebar](https://github.com/digitalrebar)) - {{< note >}} -**Note:** The above table is ordered by version test/used in nodes, followed by support level. +The above table is ordered by version test/used in nodes, followed by support level. {{< /note >}} ### Definition of columns diff --git a/content/en/docs/setup/release/notes.md b/content/en/docs/setup/release/notes.md index 45f6f83ae1..b834dbb885 100644 --- a/content/en/docs/setup/release/notes.md +++ b/content/en/docs/setup/release/notes.md @@ -556,7 +556,7 @@ filename | sha256 hash * The PodShareProcessNamespace feature to configure PID namespace sharing within a pod has been promoted to beta. ([#66507](https://github.com/kubernetes/kubernetes/pull/66507), [@verb](https://github.com/verb)) * `kubectl create {clusterrole,role}`'s `--resources` flag supports asterisk to specify all resources. ([#62945](https://github.com/kubernetes/kubernetes/pull/62945), [@nak3](https://github.com/nak3)) * Bump up version number of debian-base, debian-hyperkube-base and debian-iptables. ([#67026](https://github.com/kubernetes/kubernetes/pull/67026), [@satyasm](https://github.com/satyasm)) - * Also updates dependencies of users of debian-base. + * Also updates dependencies of users of debian-base. * debian-base version 0.3.1 is already available. * DynamicProvisioningScheduling and VolumeScheduling is now supported for Azure managed disks. Feature gates DynamicProvisioningScheduling and VolumeScheduling should be enabled before using this feature. ([#67121](https://github.com/kubernetes/kubernetes/pull/67121), [@feiskyer](https://github.com/feiskyer)) * kube-apiserver now includes all registered API groups in discovery, including registered extension API group/versions for unavailable extension API servers. ([#66932](https://github.com/kubernetes/kubernetes/pull/66932), [@nilebox](https://github.com/nilebox)) diff --git a/content/en/docs/setup/scratch.md b/content/en/docs/setup/scratch.md index 8645a487ab..3068e24865 100644 --- a/content/en/docs/setup/scratch.md +++ b/content/en/docs/setup/scratch.md @@ -487,11 +487,11 @@ You will need to run one or more instances of etcd. - Not highly available, but easy to restore - Run one etcd instance, with its log written to a directory backed by durable storage (RAID, GCE PD). - {{< note >}}**Note:** May result in operations outages in case of + {{< note >}}May result in operations outages in case of instance outage. {{< /note >}} - Highly available - Run 3 or 5 etcd instances with non durable storage. - {{< note >}}**Note:** Log can be written to non-durable storage + {{< note >}}Log can be written to non-durable storage because storage is replicated.{{< /note >}} See [cluster-troubleshooting](/docs/admin/cluster-troubleshooting/) for more discussion on factors affecting cluster diff --git a/content/en/docs/setup/turnkey/gce.md b/content/en/docs/setup/turnkey/gce.md index 85d659c47e..90618e1dac 100644 --- a/content/en/docs/setup/turnkey/gce.md +++ b/content/en/docs/setup/turnkey/gce.md @@ -96,7 +96,7 @@ gcloud components install kubectl ``` {{< note >}} -**Note:** The kubectl version bundled with `gcloud` may be older than the one +The kubectl version bundled with `gcloud` may be older than the one downloaded by the get.k8s.io install script. See [Installing kubectl](/docs/tasks/kubectl/install/) document to see how you can set up the latest `kubectl` on your workstation. {{< /note >}} diff --git a/content/en/docs/tasks/access-application-cluster/configure-access-multiple-clusters.md b/content/en/docs/tasks/access-application-cluster/configure-access-multiple-clusters.md index 236e91bc8d..ee4bd7a8c3 100644 --- a/content/en/docs/tasks/access-application-cluster/configure-access-multiple-clusters.md +++ b/content/en/docs/tasks/access-application-cluster/configure-access-multiple-clusters.md @@ -13,7 +13,7 @@ one or more configuration files, you can quickly switch between clusters by usin `kubectl config use-context` command. {{< note >}} -**Note:** A file that is used to configure access to a cluster is sometimes called +A file that is used to configure access to a cluster is sometimes called a *kubeconfig file*. This is a generic way of referring to configuration files. It does not mean that there is a file named `kubeconfig`. {{< /note >}} diff --git a/content/en/docs/tasks/access-application-cluster/configure-cloud-provider-firewall.md b/content/en/docs/tasks/access-application-cluster/configure-cloud-provider-firewall.md index 4684387872..1c9e130aee 100644 --- a/content/en/docs/tasks/access-application-cluster/configure-cloud-provider-firewall.md +++ b/content/en/docs/tasks/access-application-cluster/configure-cloud-provider-firewall.md @@ -84,12 +84,11 @@ gcloud compute firewall-rules create my-rule --allow=tcp: ``` {{< note >}} -**Note**: GCE firewalls are defined per-vm, rather than per-ip -address. This means that when you open a firewall for a service's ports, -anything that serves on that port on that VM's host IP address may potentially -serve traffic. Note that this is not a problem for other Kubernetes services, -as they listen on IP addresses that are different than the host node's external -IP address. +GCE firewalls are defined per-vm, rather than per-ip address. This means that +when you open a firewall for a service's ports, anything that serves on that +port on that VM's host IP address may potentially serve traffic. Note that this +is not a problem for other Kubernetes services, as they listen on IP addresses +that are different than the host node's external IP address. Consider: diff --git a/content/en/docs/tasks/access-application-cluster/connecting-frontend-backend.md b/content/en/docs/tasks/access-application-cluster/connecting-frontend-backend.md index c1e7b4a2ba..a447e85d16 100644 --- a/content/en/docs/tasks/access-application-cluster/connecting-frontend-backend.md +++ b/content/en/docs/tasks/access-application-cluster/connecting-frontend-backend.md @@ -148,11 +148,13 @@ deployment.apps/frontend created service/frontend created ``` -{{< note >}}**Note:** The nginx configuration is baked into the -[container image](/examples/service/access/Dockerfile). -A better way to do this would be to use a -[ConfigMap](/docs/tasks/configure-pod-container/configure-pod-configmap/), so -you can change the configuration more easily.{{< /note >}} +{{< note >}} +The nginx configuration is baked into the [container +image](/examples/service/access/Dockerfile). A better way to do this would +be to use a +[ConfigMap](/docs/tasks/configure-pod-container/configure-pod-configmap/), +so that you can change the configuration more easily. +{{< /note >}} ### Interact with the frontend Service diff --git a/content/en/docs/tasks/access-application-cluster/create-external-load-balancer.md b/content/en/docs/tasks/access-application-cluster/create-external-load-balancer.md index b79dcb02ed..22c601d3d1 100644 --- a/content/en/docs/tasks/access-application-cluster/create-external-load-balancer.md +++ b/content/en/docs/tasks/access-application-cluster/create-external-load-balancer.md @@ -108,8 +108,9 @@ which should produce output like this: The IP address is listed next to `LoadBalancer Ingress`. {{< note >}} -**Note**: If you are running your service on Minikube, you can find the assigned IP address and port with: +If you are running your service on Minikube, you can find the assigned IP address and port with: {{< /note >}} + ```bash minikube service example-service --url ``` @@ -181,7 +182,7 @@ compared to the `service.spec.externalTrafficPolicy` field. The values match as * "Global" for annotation <-> "Cluster" for field {{< note >}} -**Note:** This feature is not currently implemented for all cloudproviders/environments. +This feature is not currently implemented for all cloudproviders/environments. {{< /note >}} Known issues: diff --git a/content/en/docs/tasks/access-application-cluster/list-all-running-container-images.md b/content/en/docs/tasks/access-application-cluster/list-all-running-container-images.md index 0b6c1fb8e4..caf20d7f2e 100644 --- a/content/en/docs/tasks/access-application-cluster/list-all-running-container-images.md +++ b/content/en/docs/tasks/access-application-cluster/list-all-running-container-images.md @@ -63,7 +63,7 @@ The jsonpath is interpreted as follows: - `.image`: get the image {{< note >}} -**Note:** When fetching a single Pod by name, e.g. `kubectl get pod nginx`, +When fetching a single Pod by name, e.g. `kubectl get pod nginx`, the `.items[*]` portion of the path should be omitted because a single Pod is returned instead of a list of items. {{< /note >}} diff --git a/content/en/docs/tasks/access-application-cluster/load-balance-access-application-cluster.md b/content/en/docs/tasks/access-application-cluster/load-balance-access-application-cluster.md index d45cf2493d..29058660b8 100644 --- a/content/en/docs/tasks/access-application-cluster/load-balance-access-application-cluster.md +++ b/content/en/docs/tasks/access-application-cluster/load-balance-access-application-cluster.md @@ -71,7 +71,7 @@ load-balanced access to an application running in a cluster. command. {{< note >}} - **Note:** If you are using Minikube, you don't get an external IP address. The + If you are using Minikube, you don't get an external IP address. The external IP address remains in the pending state. {{< /note >}} @@ -90,7 +90,7 @@ load-balanced access to an application running in a cluster. Hello Kubernetes! {{< note >}} - **Note:** If you are using Minikube, enter these commands: + If you are using Minikube, enter these commands: {{< /note >}} kubectl cluster-info diff --git a/content/en/docs/tasks/access-application-cluster/port-forward-access-application-cluster.md b/content/en/docs/tasks/access-application-cluster/port-forward-access-application-cluster.md index 8c3fda3cea..a303b9a878 100644 --- a/content/en/docs/tasks/access-application-cluster/port-forward-access-application-cluster.md +++ b/content/en/docs/tasks/access-application-cluster/port-forward-access-application-cluster.md @@ -137,7 +137,7 @@ is running the Redis server. With this connection in place you can use your local workstation to debug the database that is running in the pod. {{< warning >}} -**Warning**: Due to known limitations, port forward today only works for TCP protocol. +Due to known limitations, port forward today only works for TCP protocol. The support to UDP protocol is being tracked in [issue 47862](https://github.com/kubernetes/kubernetes/issues/47862). {{< /warning >}} diff --git a/content/en/docs/tasks/access-kubernetes-api/configure-aggregation-layer.md b/content/en/docs/tasks/access-kubernetes-api/configure-aggregation-layer.md index 2781881e1b..87fa9bd717 100644 --- a/content/en/docs/tasks/access-kubernetes-api/configure-aggregation-layer.md +++ b/content/en/docs/tasks/access-kubernetes-api/configure-aggregation-layer.md @@ -19,7 +19,7 @@ Configuring the [aggregation layer](/docs/concepts/api-extension/apiserver-aggre {{< include "task-tutorial-prereqs.md" >}} {{< version-check >}} {{< note >}} -**Note:** There are a few setup requirements for getting the aggregation layer working in your environment to support mutual TLS auth between the proxy and extension apiservers. Kubernetes and the kube-apiserver have multiple CAs, so make sure that the proxy is signed by the aggregation layer CA and not by something else, like the master CA. +There are a few setup requirements for getting the aggregation layer working in your environment to support mutual TLS auth between the proxy and extension apiservers. Kubernetes and the kube-apiserver have multiple CAs, so make sure that the proxy is signed by the aggregation layer CA and not by something else, like the master CA. {{< /note >}} {{% /capture %}} diff --git a/content/en/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definition-versioning.md b/content/en/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definition-versioning.md index 11d22745c7..ecf3ec0038 100644 --- a/content/en/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definition-versioning.md +++ b/content/en/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definition-versioning.md @@ -15,8 +15,8 @@ level of your CustomResourceDefinitions. It also describes how to upgrade an object from one version to another. {{< note >}} -**Note**: All specified versions must use the same schema. The is no schema -conversion between versions. +All specified versions must use the same schema. There is no schema conversion +between versions. {{< /note >}} {{% /capture %}} diff --git a/content/en/docs/tasks/administer-cluster/configure-upgrade-etcd.md b/content/en/docs/tasks/administer-cluster/configure-upgrade-etcd.md index bd0f59d948..0e5a553571 100644 --- a/content/en/docs/tasks/administer-cluster/configure-upgrade-etcd.md +++ b/content/en/docs/tasks/administer-cluster/configure-upgrade-etcd.md @@ -105,7 +105,7 @@ For example, consider key pairs `k8sclient.key` and `k8sclient.cert` that are tr Once etcd is configured correctly, only clients with valid certificates can access it. To give Kubernetes API server the access, configure it with the flags `--etcd-certfile=k8sclient.cert`,`--etcd-keyfile=k8sclient.key` and `--etcd-cafile=ca.cert`. {{< note >}} -**Note**: etcd authentication is not currently supported by Kubernetes. For more information, see the related issue [Support Basic Auth for Etcd v2](https://github.com/kubernetes/kubernetes/issues/23398). +etcd authentication is not currently supported by Kubernetes. For more information, see the related issue [Support Basic Auth for Etcd v2](https://github.com/kubernetes/kubernetes/issues/23398). {{< /note >}} ## Replacing a failed etcd member @@ -212,7 +212,7 @@ The upgrade procedure described in this document assumes that either: etcd cluster. During the time the etcd cluster is shut down, the Kubernetes API Server will be read only. {{< warning >}} -**Warning**: Deviations from the assumptions are untested by continuous +Deviations from the assumptions are untested by continuous integration, and deviations might create undesirable consequences. Additional information about operating an etcd cluster is available [from the etcd maintainers](https://github.com/coreos/etcd/tree/master/Documentation). {{< /warning >}} @@ -264,7 +264,7 @@ but the rollback tool has these limitations: * Rollback doesn’t preserve resource versions of objects stored in etcd. {{< warning >}} -**Warning**: If the data is not kept in `application/json` format (see [Upgrade +If the data is not kept in `application/json` format (see [Upgrade Procedure](#upgrade-procedure)), you will lose the option to roll back to etcd 2.2. {{< /warning >}} @@ -276,7 +276,7 @@ resource versions. Since both the kubelet and kube-proxy use the watch API, a rollback might require restarting all Kubernetes components on all nodes. {{< note >}} -**Note**: At the time of writing, both Kubelet and KubeProxy are using “resource +At the time of writing, both Kubelet and KubeProxy are using “resource version” only for watching (i.e. are not using resource versions for anything else). And both are using reflector and/or informer frameworks for watching (i.e. they don’t send watch requests themselves). Both those frameworks if they @@ -390,7 +390,7 @@ STORAGE_MEDIA_TYPE=application/json ``` {{< note >}} -**Note:** This procedure upgrades from 2.x to 3.x. Version `3.0.17` is not recommended for running in production (see [prerequisites](#prerequisites) for minimum recommended etcd versions). +This procedure upgrades from 2.x to 3.x. Version `3.0.17` is not recommended for running in production (see [prerequisites](#prerequisites) for minimum recommended etcd versions). {{< /note >}} ## Notes for etcd Version 2.2.1 diff --git a/content/en/docs/tasks/administer-cluster/coredns.md b/content/en/docs/tasks/administer-cluster/coredns.md index e0d6c30e3b..e314f490e7 100644 --- a/content/en/docs/tasks/administer-cluster/coredns.md +++ b/content/en/docs/tasks/administer-cluster/coredns.md @@ -52,7 +52,7 @@ your existing Corefile will be retained. ## Installing kube-dns instead of CoreDNS with kubeadm {{< note >}} -**Note:** In Kubernetes 1.11, CoreDNS has graduated to General Availability (GA) +In Kubernetes 1.11, CoreDNS has graduated to General Availability (GA) and is installed by default. {{< /note >}} diff --git a/content/en/docs/tasks/administer-cluster/cpu-management-policies.md b/content/en/docs/tasks/administer-cluster/cpu-management-policies.md index c5b2a029d8..313e468636 100644 --- a/content/en/docs/tasks/administer-cluster/cpu-management-policies.md +++ b/content/en/docs/tasks/administer-cluster/cpu-management-policies.md @@ -75,16 +75,16 @@ The `static` policy allows containers in `Guaranteed` pods with integer CPU using the [cpuset cgroup controller](https://www.kernel.org/doc/Documentation/cgroup-v1/cpusets.txt). {{< note >}} -**Note:** System services such as the container runtime and the kubelet itself can continue to run on these exclusive CPUs.  The exclusivity only extends to other pods. +System services such as the container runtime and the kubelet itself can continue to run on these exclusive CPUs.  The exclusivity only extends to other pods. {{< /note >}} {{< note >}} -**Note:** The alpha version of this policy does not guarantee static +The alpha version of this policy does not guarantee static exclusive allocations across Kubelet restarts. {{< /note >}} {{< note >}} -**Note:** CPU Manager doesn't support offlining and onlining of +CPU Manager doesn't support offlining and onlining of CPUs at runtime. Also, if the set of online CPUs changes on the node, the node must be drained and CPU manager manually reset by deleting the state file `cpu_manager_state` in the kubelet root directory. @@ -102,7 +102,7 @@ both part of a `Guaranteed` pod and have integer CPU `requests` are assigned exclusive CPUs. {{< note >}} -**Note:** The kubelet requires a CPU reservation greater than zero be made +The kubelet requires a CPU reservation greater than zero be made using either `--kube-reserved` and/or `--system-reserved` when the static policy is enabled. This is because zero CPU reservation would allow the shared pool to become empty. diff --git a/content/en/docs/tasks/administer-cluster/declare-network-policy.md b/content/en/docs/tasks/administer-cluster/declare-network-policy.md index db27d97ce5..3ea02e0ed4 100644 --- a/content/en/docs/tasks/administer-cluster/declare-network-policy.md +++ b/content/en/docs/tasks/administer-cluster/declare-network-policy.md @@ -21,7 +21,9 @@ Make sure you've configured a network provider with network policy support. Ther * [Romana](/docs/tasks/administer-cluster/network-policy-provider/romana-network-policy/) * [Weave Net](/docs/tasks/administer-cluster/network-policy-provider/weave-network-policy/) -**Note**: The above list is sorted alphabetically by product name, not by recommendation or preference. This example is valid for a Kubernetes cluster using any of these providers. +{{< note >}} +The above list is sorted alphabetically by product name, not by recommendation or preference. This example is valid for a Kubernetes cluster using any of these providers. +{{< /note >}} {{% /capture %}} {{% capture steps %}} diff --git a/content/en/docs/tasks/administer-cluster/encrypt-data.md b/content/en/docs/tasks/administer-cluster/encrypt-data.md index b7b5eec380..e06ceda9f8 100644 --- a/content/en/docs/tasks/administer-cluster/encrypt-data.md +++ b/content/en/docs/tasks/administer-cluster/encrypt-data.md @@ -66,9 +66,11 @@ resources from storage each provider that matches the stored data attempts to de order. If no provider can read the stored data due to a mismatch in format or secret key, an error is returned which prevents clients from accessing that resource. -**IMPORTANT:** If any resource is not readable via the encryption config (because keys were changed), +{{< caution >}} +If any resource is not readable via the encryption config (because keys were changed), the only recourse is to delete that key from the underlying etcd directly. Calls that attempt to read that resource will fail until it is deleted or a valid decryption key is provided. +{{< /caution >}} ### Providers: @@ -113,7 +115,9 @@ To create a new secret perform the following steps: 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. +{{< caution >}} +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. +{{< /caution >}} ## Verifying that data is encrypted diff --git a/content/en/docs/tasks/administer-cluster/extended-resource-node.md b/content/en/docs/tasks/administer-cluster/extended-resource-node.md index 7eb65c3251..6b65cd875f 100644 --- a/content/en/docs/tasks/administer-cluster/extended-resource-node.md +++ b/content/en/docs/tasks/administer-cluster/extended-resource-node.md @@ -74,10 +74,12 @@ curl --header "Content-Type: application/json-patch+json" \ http://localhost:8001/api/v1/nodes//status ``` -**Note**: In the preceding request, `~1` is the encoding for the character / in +{{< note >}} +In the preceding request, `~1` is the encoding for the character / in the patch path. The operation path value in JSON-Patch is interpreted as a JSON-Pointer. For more details, see [IETF RFC 6901](https://tools.ietf.org/html/rfc6901), section 3. +{{< /note >}} The output shows that the Node has a capacity of 4 dongles: diff --git a/content/en/docs/tasks/administer-cluster/ip-masq-agent.md b/content/en/docs/tasks/administer-cluster/ip-masq-agent.md index 25d114d139..6133d160c4 100644 --- a/content/en/docs/tasks/administer-cluster/ip-masq-agent.md +++ b/content/en/docs/tasks/administer-cluster/ip-masq-agent.md @@ -73,14 +73,16 @@ kubectl label nodes my-node beta.kubernetes.io/masq-agent-ds-ready=true More information can be found in the ip-masq-agent documentation [here](https://github.com/kubernetes-incubator/ip-masq-agent) In most cases, the default set of rules should be sufficient; however, if this is not the case for your cluster, you can create and apply a [ConfigMap](/docs/tasks/configure-pod-container/configure-pod-configmap/) to customize the IP ranges that are affected. For example, to allow only 10.0.0.0/8 to be considered by the ip-masq-agent, you can create the following [ConfigMap](/docs/tasks/configure-pod-container/configure-pod-configmap/) in a file called "config". -**Note:** It is important that the file is called config since, by default, that will be used as the key for lookup by the ip-masq-agent: + +{{< note >}} +It is important that the file is called config since, by default, that will be used as the key for lookup by the ip-masq-agent: ``` nonMasqueradeCIDRs: - 10.0.0.0/8 resyncInterval: 60s - ``` +{{< /note >}} Run the following command to add the config map to your cluster: diff --git a/content/en/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-ha.md b/content/en/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-ha.md index 9e08a7262b..de9296644f 100644 --- a/content/en/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-ha.md +++ b/content/en/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-ha.md @@ -24,8 +24,7 @@ Before proceeding: - Check the prerequisites for [Upgrading/downgrading kubeadm clusters between v1.11 to v1.12](/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-1-12/). {{< note >}} -**Note**: All commands on any control plane or etcd node should be -run as root. +All commands on any control plane or etcd node should be run as root. {{< /note >}} {{% /capture %}} diff --git a/content/en/docs/tasks/administer-cluster/manage-resources/cpu-constraint-namespace.md b/content/en/docs/tasks/administer-cluster/manage-resources/cpu-constraint-namespace.md index d840b61371..249265300f 100644 --- a/content/en/docs/tasks/administer-cluster/manage-resources/cpu-constraint-namespace.md +++ b/content/en/docs/tasks/administer-cluster/manage-resources/cpu-constraint-namespace.md @@ -82,7 +82,7 @@ CPU request and limit to the Container. * Verify that the Container specifies a CPU limit that is less than or equal to 800 millicpu. {{< note >}} -**Note:** When creating a `LimitRange` object, you can specify limits on huge-pages +When creating a `LimitRange` object, you can specify limits on huge-pages or GPUs as well. However, when both `default` and `defaultRequest` are specified on these resources, the two values must be the same. {{< /note >}} diff --git a/content/en/docs/tasks/administer-cluster/namespaces.md b/content/en/docs/tasks/administer-cluster/namespaces.md index 0e24a21dc9..ce1ebbce3d 100644 --- a/content/en/docs/tasks/administer-cluster/namespaces.md +++ b/content/en/docs/tasks/administer-cluster/namespaces.md @@ -106,7 +106,9 @@ More information on `finalizers` can be found in the namespace [design doc](http $ kubectl delete namespaces ``` -**WARNING, this deletes _everything_ under the namespace!** +{{< warning >}} +This deletes _everything_ under the namespace! +{{< /warning >}} This delete is asynchronous, so for a time you will see the namespace in the `Terminating` state. diff --git a/content/en/docs/tasks/administer-cluster/reconfigure-kubelet.md b/content/en/docs/tasks/administer-cluster/reconfigure-kubelet.md index 5d2a1f615d..f984c4c5fd 100644 --- a/content/en/docs/tasks/administer-cluster/reconfigure-kubelet.md +++ b/content/en/docs/tasks/administer-cluster/reconfigure-kubelet.md @@ -14,7 +14,7 @@ allows you to change the configuration of each Kubelet in a live Kubernetes cluster by deploying a ConfigMap and configuring each Node to use it. {{< warning >}} -**Warning:** All Kubelet configuration parameters can be changed dynamically, +All Kubelet configuration parameters can be changed dynamically, but this is unsafe for some parameters. Before deciding to change a parameter dynamically, you need a strong understanding of how that change will affect your cluster's behavior. Always carefully test configuration changes on a small set @@ -69,7 +69,7 @@ This document only describes a single Node consuming each ConfigMap. Keep in mind that it is also valid for multiple Nodes to consume the same ConfigMap. {{< warning >}} -**Warning:** While it is *possible* to change the configuration by +While it is *possible* to change the configuration by updating the ConfigMap in-place, this causes all Kubelets configured with that ConfigMap to update simultaneously. It is much safer to treat ConfigMaps as immutable by convention, aided by `kubectl`'s `--append-hash` option, diff --git a/content/en/docs/tasks/administer-cluster/safely-drain-node.md b/content/en/docs/tasks/administer-cluster/safely-drain-node.md index cea4c00af0..2cb77e3149 100644 --- a/content/en/docs/tasks/administer-cluster/safely-drain-node.md +++ b/content/en/docs/tasks/administer-cluster/safely-drain-node.md @@ -37,10 +37,12 @@ hardware maintenance, etc.). Safe evictions allow the pod's containers to [gracefully terminate](/docs/concepts/workloads/pods/pod/#termination-of-pods) and will respect the `PodDisruptionBudgets` you have specified. -**Note:** By default `kubectl drain` will ignore certain system pods on the node +{{< note >}} +By default `kubectl drain` will ignore certain system pods on the node that cannot be killed; see the [kubectl drain](/docs/reference/generated/kubectl/kubectl-commands/#drain) documentation for more details. +{{< /note >}} When `kubectl drain` returns successfully, that indicates that all of the pods (except the ones excluded as described in the previous paragraph) diff --git a/content/en/docs/tasks/administer-cluster/securing-a-cluster.md b/content/en/docs/tasks/administer-cluster/securing-a-cluster.md index 0512f8b09a..36de25de82 100644 --- a/content/en/docs/tasks/administer-cluster/securing-a-cluster.md +++ b/content/en/docs/tasks/administer-cluster/securing-a-cluster.md @@ -165,10 +165,12 @@ credentials from the API servers to their etcd server, such as mutual auth via T and it is often recommended to isolate the etcd servers behind a firewall that only the API servers may access. -**CAUTION:** Allowing other components within the cluster to access the master etcd instance with +{{< caution >}} +Allowing other components within the cluster to access the master etcd instance with read or write access to the full keyspace is equivalent to granting cluster-admin access. Using separate etcd instances for non-master components or using etcd ACLs to restrict read and write access to a subset of the keyspace is strongly recommended. +{{< /caution >}} ### Enable audit logging diff --git a/content/en/docs/tasks/administer-cluster/static-pod.md b/content/en/docs/tasks/administer-cluster/static-pod.md index 87dad377cd..1499c6b14a 100644 --- a/content/en/docs/tasks/administer-cluster/static-pod.md +++ b/content/en/docs/tasks/administer-cluster/static-pod.md @@ -100,11 +100,10 @@ Labels from the static pod are propagated into the mirror-pod and can be used as Notice we cannot delete the pod with the API server (e.g. via [`kubectl`](/docs/user-guide/kubectl/) command), kubelet simply won't remove it. -{{}} -**Note**: Make sure the kubelet has permission to create the mirror pod in the API server. -If not, the creation request is rejected by the API server. See +{{< note >}} +Make sure the kubelet has permission to create the mirror pod in the API server. If not, the creation request is rejected by the API server. See [PodSecurityPolicy](/docs/concepts/policy/pod-security-policy/). -{{}} +{{< /note >}} ```shell [joe@my-master ~] $ kubectl delete pod static-web-my-node1 diff --git a/content/en/docs/tasks/administer-cluster/sysctl-cluster.md b/content/en/docs/tasks/administer-cluster/sysctl-cluster.md index 46dc23cdf1..3fadc04540 100644 --- a/content/en/docs/tasks/administer-cluster/sysctl-cluster.md +++ b/content/en/docs/tasks/administer-cluster/sysctl-cluster.md @@ -58,7 +58,7 @@ The following sysctls are supported in the _safe_ set: - `net.ipv4.tcp_syncookies`. {{< note >}} -**Note**: The example `net.ipv4.tcp_syncookies` is not namespaced on Linux kernel version 4.4 or lower. +The example `net.ipv4.tcp_syncookies` is not namespaced on Linux kernel version 4.4 or lower. {{< /note >}} This list will be extended in future Kubernetes versions when the kubelet @@ -141,7 +141,7 @@ spec: {{% capture discussion %}} {{< warning >}} -**Warning**: Due to their nature of being _unsafe_, the use of _unsafe_ sysctls +Due to their nature of being _unsafe_, the use of _unsafe_ sysctls is at-your-own-risk and can lead to severe problems like wrong behavior of containers, resource shortage or complete breakage of a node. {{< /warning >}} @@ -184,7 +184,7 @@ Do not configure these two fields such that there is overlap, meaning that a given sysctl is both allowed and forbidden. {{< warning >}} -**Warning**: If you whitelist unsafe sysctls via the `allowedUnsafeSysctls` field +If you whitelist unsafe sysctls via the `allowedUnsafeSysctls` field in a PodSecurityPolicy, any pod using such a sysctl will fail to start if the sysctl is not whitelisted via the `--allowed-unsafe-sysctls` kubelet flag as well on that node. diff --git a/content/en/docs/tasks/administer-federation/configmap.md b/content/en/docs/tasks/administer-federation/configmap.md index cae4847081..4123b4ab22 100644 --- a/content/en/docs/tasks/administer-federation/configmap.md +++ b/content/en/docs/tasks/administer-federation/configmap.md @@ -81,7 +81,7 @@ kubectl --context=federation-cluster delete configmap ``` {{< note >}} -**Note:** Deleting a Federated ConfigMap does not delete the corresponding ConfigMaps from underlying clusters. You must delete the underlying ConfigMaps manually. +Deleting a Federated ConfigMap does not delete the corresponding ConfigMaps from underlying clusters. You must delete the underlying ConfigMaps manually. {{< /note >}} {{% /capture %}} diff --git a/content/en/docs/tasks/administer-federation/hpa.md b/content/en/docs/tasks/administer-federation/hpa.md index 5ca0363e1c..496a7032a6 100644 --- a/content/en/docs/tasks/administer-federation/hpa.md +++ b/content/en/docs/tasks/administer-federation/hpa.md @@ -87,7 +87,7 @@ max replicas on the federated HPA object, and the sum of minimum replicas will b than or equal to the minimum specified on the federated HPA object. {{< note >}} -**Note:** A particular cluster cannot have a minimum replica sum of 0. +A particular cluster cannot have a minimum replica sum of 0. {{< /note >}} ### Spreading HPA min and max replicas in underlying clusters @@ -125,8 +125,9 @@ in the previous section. You can delete a federated HPA as you would delete a Kubernetes HPA; however, for a federated HPA, you must send the request to the federation API server instead of to a specific Kubernetes cluster. + {{< note >}} -**Note:** For the federated resource to be deleted from all underlying clusters, [cascading deletion](/docs/concepts/cluster-administration/federation/#cascading-deletion) should be used. +For the federated resource to be deleted from all underlying clusters, [cascading deletion](/docs/concepts/cluster-administration/federation/#cascading-deletion) should be used. {{< /note >}} For example, you can do that using `kubectl` by running: diff --git a/content/en/docs/tasks/administer-federation/job.md b/content/en/docs/tasks/administer-federation/job.md index cf631f5154..d495d1e42e 100644 --- a/content/en/docs/tasks/administer-federation/job.md +++ b/content/en/docs/tasks/administer-federation/job.md @@ -99,7 +99,7 @@ kubectl --context=federation-cluster delete job myjob ``` {{< note >}} -**Note:** Deleting a federated job will not delete the +Deleting a federated job will not delete the corresponding jobs from underlying clusters. You must delete the underlying jobs manually. {{< /note >}} diff --git a/content/en/docs/tasks/administer-federation/namespaces.md b/content/en/docs/tasks/administer-federation/namespaces.md index df60610814..bf8cd84c35 100644 --- a/content/en/docs/tasks/administer-federation/namespaces.md +++ b/content/en/docs/tasks/administer-federation/namespaces.md @@ -84,7 +84,7 @@ As in Kubernetes, deleting a federated Namespace will delete all resources in th Namespace from the federation control plane. {{< note >}} -**Note:** At this point, deleting a federated Namespace will not delete the corresponding Namespace, or resources in those Namespaces, from underlying clusters. Users must delete them manually. We intend to fix this in the future. +At this point, deleting a federated Namespace will not delete the corresponding Namespace, or resources in those Namespaces, from underlying clusters. Users must delete them manually. We intend to fix this in the future. {{< /note >}} {{% /capture %}} diff --git a/content/en/docs/tasks/administer-federation/replicaset.md b/content/en/docs/tasks/administer-federation/replicaset.md index 7741f8a85c..932abd7095 100644 --- a/content/en/docs/tasks/administer-federation/replicaset.md +++ b/content/en/docs/tasks/administer-federation/replicaset.md @@ -124,7 +124,7 @@ kubectl --context=federation-cluster delete rs myrs ``` {{< note >}} -**Note:** At this point, deleting a federated ReplicaSet will not delete the corresponding ReplicaSets from underlying clusters. You must delete the underlying ReplicaSets manually. We intend to fix this in the future. +At this point, deleting a federated ReplicaSet will not delete the corresponding ReplicaSets from underlying clusters. You must delete the underlying ReplicaSets manually. We intend to fix this in the future. {{< /note >}} {{% /capture %}} diff --git a/content/en/docs/tasks/administer-federation/secret.md b/content/en/docs/tasks/administer-federation/secret.md index dc5b0e3d6c..a553e0562e 100644 --- a/content/en/docs/tasks/administer-federation/secret.md +++ b/content/en/docs/tasks/administer-federation/secret.md @@ -87,7 +87,7 @@ kubectl --context=federation-cluster delete secret mysecret ``` {{< note >}} -**Note:** At this point, deleting a federated secret will not delete the corresponding secrets from underlying clusters. You must delete the underlying secrets manually. We intend to fix this in the future. +At this point, deleting a federated secret will not delete the corresponding secrets from underlying clusters. You must delete the underlying secrets manually. We intend to fix this in the future. {{< /note >}} {{% /capture %}} diff --git a/content/en/docs/tasks/configure-pod-container/assign-cpu-resource.md b/content/en/docs/tasks/configure-pod-container/assign-cpu-resource.md index 3fac646141..516e33d1ed 100644 --- a/content/en/docs/tasks/configure-pod-container/assign-cpu-resource.md +++ b/content/en/docs/tasks/configure-pod-container/assign-cpu-resource.md @@ -120,7 +120,7 @@ cpu-demo 974m Recall that by setting `-cpu "2"`, you configured the Container to attempt to use 2 CPUs, but the Container is only being allowed to use about 1 CPU. The Container CPU use is being throttled, because the Container is attempting to use more CPU resources than its limit. {{< note >}} -**Note:** Another possible explanation for the CPU throttling is that the Node might not have +Another possible explanation for the CPU throttling is that the Node might not have enough CPU resources available. Recall that the prerequisites for this exercise require each of your Nodes to have at least 1 CPU. If your Container runs 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. diff --git a/content/en/docs/tasks/configure-pod-container/attach-handler-lifecycle-event.md b/content/en/docs/tasks/configure-pod-container/attach-handler-lifecycle-event.md index 85dc63d6ab..3c461a2ecb 100644 --- a/content/en/docs/tasks/configure-pod-container/attach-handler-lifecycle-event.md +++ b/content/en/docs/tasks/configure-pod-container/attach-handler-lifecycle-event.md @@ -77,7 +77,7 @@ unless the Pod's grace period expires. For more details, see [Termination of Pods](/docs/user-guide/pods/#termination-of-pods). {{< note >}} -**Note**: Kubernetes only sends the preStop event when a Pod is *terminated*. +Kubernetes only sends the preStop event when a Pod is *terminated*. This means that the preStop hook is not invoked when the Pod is *completed*. This limitation is tracked in [issue #55087](https://github.com/kubernetes/kubernetes/issues/55807). {{< /note >}} diff --git a/content/en/docs/tasks/configure-pod-container/configure-persistent-volume-storage.md b/content/en/docs/tasks/configure-pod-container/configure-persistent-volume-storage.md index f770eacfbc..cc3f7a3fde 100644 --- a/content/en/docs/tasks/configure-pod-container/configure-persistent-volume-storage.md +++ b/content/en/docs/tasks/configure-pod-container/configure-persistent-volume-storage.md @@ -189,7 +189,7 @@ annotation or the Pod’s specification, is applied to the first process run in each Container. {{< note >}} -**Note**: When a Pod consumes a PersistentVolume, the GIDs associated with the +When a Pod consumes a PersistentVolume, the GIDs associated with the PersistentVolume are not present on the Pod resource itself. {{< /note >}} diff --git a/content/en/docs/tasks/configure-pod-container/configure-pod-configmap.md b/content/en/docs/tasks/configure-pod-container/configure-pod-configmap.md index 651b72e65d..a34de6eb45 100644 --- a/content/en/docs/tasks/configure-pod-container/configure-pod-configmap.md +++ b/content/en/docs/tasks/configure-pod-container/configure-pod-configmap.md @@ -388,7 +388,7 @@ metadata: ## Configure all key-value pairs in a ConfigMap as container environment variables {{< note >}} - **Note:** This functionality is available in Kubernetes v1.6 and later. + This functionality is available in Kubernetes v1.6 and later. {{< /note >}} 1. Create a ConfigMap containing multiple key-value pairs. @@ -516,7 +516,7 @@ special.type ``` {{< caution >}} -**Caution:** If there are some files in the `/etc/config/` directory, they will be deleted. +If there are some files in the `/etc/config/` directory, they will be deleted. {{< /caution >}} ### Add ConfigMap data to a specific path in the Volume @@ -563,7 +563,7 @@ basis. The [Secrets](/docs/concepts/configuration/secret/#using-secrets-as-files When a ConfigMap already being consumed in a volume is updated, projected keys are eventually updated as well. Kubelet is checking whether the mounted ConfigMap is fresh on every periodic sync. However, it is using its local ttl-based cache for getting the current value of the ConfigMap. As a result, the total delay from the moment when the ConfigMap is updated to the moment when new keys are projected to the pod can be as long as kubelet sync period + ttl of ConfigMaps cache in kubelet. {{< note >}} -**Note:** A container using a ConfigMap as a +A container using a ConfigMap as a [subPath](/docs/concepts/storage/volumes/#using-subpath) volume will not receive ConfigMap updates. {{< /note >}} @@ -577,7 +577,7 @@ ConfigMap updates. 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 >}} -**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. +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`. @@ -618,7 +618,7 @@ data: This includes pods created via the Kubelet's --manifest-url flag, --config flag, or the Kubelet REST API. {{< note >}} - **Note:** These are not commonly-used ways to create pods. + These are not commonly-used ways to create pods. {{< /note >}} {{% /capture %}} diff --git a/content/en/docs/tasks/configure-pod-container/configure-service-account.md b/content/en/docs/tasks/configure-pod-container/configure-service-account.md index 62992829cd..1777b5e41a 100644 --- a/content/en/docs/tasks/configure-pod-container/configure-service-account.md +++ b/content/en/docs/tasks/configure-pod-container/configure-service-account.md @@ -15,7 +15,7 @@ A service account provides an identity for processes that run in a Pod. [Cluster Admin Guide to Service Accounts](/docs/reference/access-authn-authz/service-accounts-admin/).* {{< note >}} -**Note:** This document describes how service accounts behave in a cluster set up +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. @@ -175,7 +175,7 @@ token: ... ``` {{< note >}} -**Note:** The content of `token` is elided here. +The content of `token` is elided here. {{< /note >}} ## Add ImagePullSecrets to a service account @@ -254,7 +254,7 @@ TODO: Test and explain how to use additional non-K8s secrets with an existing se {{< feature-state for_k8s_version="v1.12" state="beta" >}} {{< note >}} -**Note:** This ServiceAccountTokenVolumeProjection is __beta__ in 1.12 and +This ServiceAccountTokenVolumeProjection is __beta__ in 1.12 and enabled by passing all of the following flags to the API server: * `--service-account-issuer` diff --git a/content/en/docs/tasks/configure-pod-container/pull-image-private-registry.md b/content/en/docs/tasks/configure-pod-container/pull-image-private-registry.md index e998baa6a1..836d89c0c4 100644 --- a/content/en/docs/tasks/configure-pod-container/pull-image-private-registry.md +++ b/content/en/docs/tasks/configure-pod-container/pull-image-private-registry.md @@ -53,7 +53,7 @@ The output contains a section similar to this: ``` {{< note >}} -**Note:** If you use a Docker credentials store, you won't see that `auth` entry but a `credsStore` entry with the name of the store as value. +If you use a Docker credentials store, you won't see that `auth` entry but a `credsStore` entry with the name of the store as value. {{< /note >}} ## Create a Secret in the cluster that holds your authorization token diff --git a/content/en/docs/tasks/configure-pod-container/quality-service-pod.md b/content/en/docs/tasks/configure-pod-container/quality-service-pod.md index 9062515fa2..8b344a9c6b 100644 --- a/content/en/docs/tasks/configure-pod-container/quality-service-pod.md +++ b/content/en/docs/tasks/configure-pod-container/quality-service-pod.md @@ -84,7 +84,7 @@ spec: ``` {{< note >}} -**Note:** If a Container specifies its own memory limit, but does not specify a memory request, Kubernetes +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. diff --git a/content/en/docs/tasks/configure-pod-container/security-context.md b/content/en/docs/tasks/configure-pod-container/security-context.md index a89e0dfa53..e7a3f6dd99 100644 --- a/content/en/docs/tasks/configure-pod-container/security-context.md +++ b/content/en/docs/tasks/configure-pod-container/security-context.md @@ -299,7 +299,7 @@ See [capability.h](https://github.com/torvalds/linux/blob/master/include/uapi/li for definitions of the capability constants. {{< note >}} -**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. +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 @@ -318,7 +318,7 @@ securityContext: ``` {{< note >}} -**Note:** To assign SELinux labels, the SELinux security module must be loaded on the host operating system. +To assign SELinux labels, the SELinux security module must be loaded on the host operating system. {{< /note >}} ## Discussion @@ -339,7 +339,7 @@ need to set the `level` section. This sets the label given to all Containers in the Pod as well as the Volumes. {{< warning >}} -**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. +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 >}} {{% /capture %}} diff --git a/content/en/docs/tasks/configure-pod-container/translate-compose-kubernetes.md b/content/en/docs/tasks/configure-pod-container/translate-compose-kubernetes.md index 316854b476..5713c69c53 100644 --- a/content/en/docs/tasks/configure-pod-container/translate-compose-kubernetes.md +++ b/content/en/docs/tasks/configure-pod-container/translate-compose-kubernetes.md @@ -296,7 +296,9 @@ INFO OpenShift file "foo-imagestream.yaml" created INFO OpenShift file "foo-buildconfig.yaml" created ``` -**Note**: If you are manually pushing the Openshift artifacts using ``oc create -f``, you need to ensure that you push the imagestream artifact before the buildconfig artifact, to workaround this Openshift issue: https://github.com/openshift/origin/issues/4518 . +{{< note >}} +If you are manually pushing the Openshift artifacts using ``oc create -f``, you need to ensure that you push the imagestream artifact before the buildconfig artifact, to workaround this Openshift issue: https://github.com/openshift/origin/issues/4518 . +{{< /note >}} ## `kompose up` @@ -335,6 +337,7 @@ pod/frontend-2768218532-cs5t5 1/1 Running 0 4m pod/redis-master-1432129712-63jn8 1/1 Running 0 4m pod/redis-slave-2504961300-nve7b 1/1 Running 0 4m ``` + **Note**: - You must have a running Kubernetes cluster with a pre-configured kubectl context. @@ -550,7 +553,9 @@ The currently supported options are: | kompose.service.type | nodeport / clusterip / loadbalancer | | kompose.service.expose| true / hostname | -**Note**: `kompose.service.type` label should be defined with `ports` only, otherwise `kompose` will fail. +{{< note >}} +The `kompose.service.type` label should be defined with `ports` only, otherwise `kompose` will fail. +{{< /note >}} ## Restart @@ -563,7 +568,9 @@ If you want to create normal pods without controllers you can use `restart` cons | `on-failure` | Pod | `OnFailure` | | `no` | Pod | `Never` | -**Note**: controller object could be `deployment` or `replicationcontroller`, etc. +{{< note >}} +The controller object could be `deployment` or `replicationcontroller`, etc. +{{< /note >}} For e.g. `pival` service will become pod down here. This container calculated value of `pi`. diff --git a/content/en/docs/tasks/debug-application-cluster/audit.md b/content/en/docs/tasks/debug-application-cluster/audit.md index 10f8161f26..a46fec98e9 100644 --- a/content/en/docs/tasks/debug-application-cluster/audit.md +++ b/content/en/docs/tasks/debug-application-cluster/audit.md @@ -46,8 +46,8 @@ Each request can be recorded with an associated "stage". The known stages are: - `Panic` - Events generated when a panic occurred. {{< note >}} -**Note** The audit logging feature increases the memory consumption of the API -server because some context required for auditing is stored for each request. +The audit logging feature increases the memory consumption of the API server +because some context required for auditing is stored for each request. Additionally, memory consumption depends on the audit logging configuration. {{< /note >}} @@ -102,7 +102,7 @@ In both cases, audit events structure is defined by the API in the [`v1`][auditing-api]. {{< note >}} -**Note:** In case of patches, request body is a JSON array with patch operations, not a JSON object +In case of patches, request body is a JSON array with patch operations, not a JSON object with an appropriate Kubernetes API object. For example, the following request body is a valid patch request to `/apis/batch/v1/namespaces/some-namespace/jobs/some-job-name`. @@ -216,7 +216,7 @@ In this example, we will use fluentd to split audit events by different namespac 1. install [fluentd][fluentd_install_doc], fluent-plugin-forest and fluent-plugin-rewrite-tag-filter in the kube-apiserver node {{< note >}} -**Note:** Fluent-plugin-forest and fluent-plugin-rewrite-tag-filter are plugins for fluentd. You can get details about plugin installation from [fluentd plugin-management][fluentd_plugin_management_doc]. +Fluent-plugin-forest and fluent-plugin-rewrite-tag-filter are plugins for fluentd. You can get details about plugin installation from [fluentd plugin-management][fluentd_plugin_management_doc]. {{< /note >}} 1. create a config file for fluentd diff --git a/content/en/docs/tasks/debug-application-cluster/core-metrics-pipeline.md b/content/en/docs/tasks/debug-application-cluster/core-metrics-pipeline.md index e44f98c90d..18033665e9 100644 --- a/content/en/docs/tasks/debug-application-cluster/core-metrics-pipeline.md +++ b/content/en/docs/tasks/debug-application-cluster/core-metrics-pipeline.md @@ -34,7 +34,7 @@ The API is defined in [k8s.io/metrics](https://github.com/kubernetes/metrics/blo repository. You can find more information about the API there. {{< note >}} -**Note:** The API requires metrics server to be deployed in the cluster. Otherwise it will be not available. +The API requires metrics server to be deployed in the cluster. Otherwise it will be not available. {{< /note >}} ## Metrics Server diff --git a/content/en/docs/tasks/debug-application-cluster/crictl.md b/content/en/docs/tasks/debug-application-cluster/crictl.md index 7c8afeee5a..4f91efb8a4 100644 --- a/content/en/docs/tasks/debug-application-cluster/crictl.md +++ b/content/en/docs/tasks/debug-application-cluster/crictl.md @@ -67,7 +67,7 @@ debug: true The following examples show some `crictl` commands and example output. {{< warning >}} -**Warning:** If you use `crictl` to create pod sandboxes or containers on a running +If you use `crictl` to create pod sandboxes or containers on a running Kubernetes cluster, the Kubelet will eventually delete them. `crictl` is not a general purpose workflow tool, but a tool that is useful for debugging. {{< /warning >}} diff --git a/content/en/docs/tasks/debug-application-cluster/debug-application.md b/content/en/docs/tasks/debug-application-cluster/debug-application.md index cedfa0384c..94adc0578c 100644 --- a/content/en/docs/tasks/debug-application-cluster/debug-application.md +++ b/content/en/docs/tasks/debug-application-cluster/debug-application.md @@ -84,7 +84,7 @@ $ kubectl exec ${POD_NAME} -c ${CONTAINER_NAME} -- ${CMD} ${ARG1} ${ARG2} ... ${ ``` {{< note >}} -**Note:** `-c ${CONTAINER_NAME}` is optional. You can omit it for Pods that only contain a single container. +`-c ${CONTAINER_NAME}` is optional. You can omit it for Pods that only contain a single container. {{< /note >}} As an example, to look at the logs from a running Cassandra pod, you might run diff --git a/content/en/docs/tasks/debug-application-cluster/debug-pod-replication-controller.md b/content/en/docs/tasks/debug-application-cluster/debug-pod-replication-controller.md index 3bbf3eb670..806347eff0 100644 --- a/content/en/docs/tasks/debug-application-cluster/debug-pod-replication-controller.md +++ b/content/en/docs/tasks/debug-application-cluster/debug-pod-replication-controller.md @@ -112,8 +112,10 @@ Alternately, you can run commands inside that container with `exec`: kubectl exec ${POD_NAME} -c ${CONTAINER_NAME} -- ${CMD} ${ARG1} ${ARG2} ... ${ARGN} ``` -{{< note >}}**Note:** `-c ${CONTAINER_NAME}` is optional. You can omit it for pods that -only contain a single container.{{< /note >}} +{{< note >}} +`-c ${CONTAINER_NAME}` is optional. You can omit it for pods that +only contain a single container. +{{< /note >}} As an example, to look at the logs from a running Cassandra pod, you might run: diff --git a/content/en/docs/tasks/debug-application-cluster/debug-service.md b/content/en/docs/tasks/debug-application-cluster/debug-service.md index 3e470a11e3..3ca54205b9 100644 --- a/content/en/docs/tasks/debug-application-cluster/debug-service.md +++ b/content/en/docs/tasks/debug-application-cluster/debug-service.md @@ -79,7 +79,7 @@ deployment.apps/hostnames created `kubectl` commands will print the type and name of the resource created or mutated, which can then be used in subsequent commands. {{< note >}} -**Note:** This is the same as if you started the `Deployment` with the following YAML: +This is the same as if you started the `Deployment` with the following YAML: ```yaml apiVersion: apps/v1 @@ -214,7 +214,10 @@ The "cluster.local" is your cluster domain, which COULD be different in your own cluster. You can also try this from a `Node` in the cluster: -{{< note >}}**Note:** 10.0.0.10 is my DNS `Service`, yours might be different){{< /note >}} + +{{< note >}} +10.0.0.10 is my DNS `Service`, yours might be different). +{{< /note >}} ```shell u@node$ nslookup hostnames.default.svc.cluster.local 10.0.0.10 @@ -383,8 +386,11 @@ as the `Service` selecting for `run=hostnames`, but the `Deployment` specifying At this point, we know that your `Service` exists and has selected your `Pods`. Let's check that the `Pods` are actually working - we can bypass the `Service` -mechanism and go straight to the `Pods`. -{{< note >}}**Note:** These commands use the `Pod` port (9376), rather than the `Service` port (80).{{< /note >}} +mechanism and go straight to the `Pods`. + +{{< note >}} +These commands use the `Pod` port (9376), rather than the `Service` port (80). +{{< /note >}} ```shell u@pod$ wget -qO- 10.244.0.5:9376 diff --git a/content/en/docs/tasks/debug-application-cluster/events-stackdriver.md b/content/en/docs/tasks/debug-application-cluster/events-stackdriver.md index 1c612bf526..9f81b3ee90 100644 --- a/content/en/docs/tasks/debug-application-cluster/events-stackdriver.md +++ b/content/en/docs/tasks/debug-application-cluster/events-stackdriver.md @@ -25,7 +25,7 @@ This article describes a solution that exports Kubernetes events to Stackdriver Logging, where they can be processed and analyzed. {{< note >}} -**Note:** It is not guaranteed that all events happening in a cluster will be +It is not guaranteed that all events happening in a cluster will be exported to Stackdriver. One possible scenario when events will not be exported is when event exporter is not running (e.g. during restart or upgrade). In most cases it's fine to use events for purposes like setting up diff --git a/content/en/docs/tasks/debug-application-cluster/logging-elasticsearch-kibana.md b/content/en/docs/tasks/debug-application-cluster/logging-elasticsearch-kibana.md index ebd03d84d2..93ae3c38dd 100644 --- a/content/en/docs/tasks/debug-application-cluster/logging-elasticsearch-kibana.md +++ b/content/en/docs/tasks/debug-application-cluster/logging-elasticsearch-kibana.md @@ -18,7 +18,7 @@ them using [Kibana](https://www.elastic.co/products/kibana), as an alternative t Stackdriver Logging when running on GCE. {{< note >}} -**Note:** You cannot automatically deploy Elasticsearch and Kibana in the Kubernetes cluster hosted on Google Kubernetes Engine. You have to deploy them manually. +You cannot automatically deploy Elasticsearch and Kibana in the Kubernetes cluster hosted on Google Kubernetes Engine. You have to deploy them manually. {{< /note >}} {{% /capture %}} diff --git a/content/en/docs/tasks/debug-application-cluster/logging-stackdriver.md b/content/en/docs/tasks/debug-application-cluster/logging-stackdriver.md index 378d5c6b33..1a5bc4e8e6 100644 --- a/content/en/docs/tasks/debug-application-cluster/logging-stackdriver.md +++ b/content/en/docs/tasks/debug-application-cluster/logging-stackdriver.md @@ -12,7 +12,7 @@ Before reading this page, it's highly recommended to familiarize yourself with the [overview of logging in Kubernetes](/docs/concepts/cluster-administration/logging). {{< note >}} -**Note:** By default, Stackdriver logging collects only your container's standard output and +By default, Stackdriver logging collects only your container's standard output and standard error streams. To collect any logs your application writes to a file (for example), see the [sidecar approach](/docs/concepts/cluster-administration/logging#sidecar-container-with-a-logging-agent) in the Kubernetes logging overview. @@ -52,7 +52,7 @@ consider starting a cluster without a pre-configured logging solution and then d Stackdriver Logging agents to the running cluster. {{< warning >}} -**Warning:** The Stackdriver logging daemon has known issues on platforms other +The Stackdriver logging daemon has known issues on platforms other than Google Kubernetes Engine. Proceed at your own risk. {{< /warning >}} @@ -88,9 +88,11 @@ than Google Kubernetes Engine. Proceed at your own risk. kubectl label node $NODE_NAME beta.kubernetes.io/fluentd-ds-ready=true ``` - {{< note >}}**Note:** If a node fails and has to be recreated, you must re-apply the label to + {{< note >}} + If a node fails and has to be recreated, you must re-apply the label to the recreated node. To make this easier, you can use Kubelet's command-line parameter - for applying node labels in your node startup script.{{< /note >}} + for applying node labels in your node startup script. + {{< /note >}} 1. Deploy a `ConfigMap` with the logging agent configuration by running the following command: @@ -263,8 +265,12 @@ In this case you need to be able to change the parameters of `DaemonSet` and `Co If you're using GKE and Stackdriver Logging is enabled in your cluster, you cannot change its configuration, because it's managed and supported by GKE. However, you can disable the default integration and deploy your own. -{{< note >}}**Note:** You will have to support and maintain a newly deployed configuration -yourself: update the image and configuration, adjust the resources and so on.{{< /note >}} + +{{< note >}} +You will have to support and maintain a newly deployed configuration +yourself: update the image and configuration, adjust the resources and so on. +{{< /note >}} + To disable the default logging integration, use the following command: ``` @@ -325,7 +331,10 @@ kubectl get cm fluentd-gcp-config --namespace kube-system -o yaml > fluentd-gcp- Then in the value for the key `containers.input.conf` insert a new filter right after the `source` section. -{{< note >}}**Note:** Order is important.{{< /note >}} + +{{< note >}} +Order is important. +{{< /note >}} Updating `ConfigMap` in the apiserver is more complicated than updating `DaemonSet`. It's better to consider `ConfigMap` to be immutable. Then, in order to update the configuration, you should diff --git a/content/en/docs/tasks/example-task-template.md b/content/en/docs/tasks/example-task-template.md index 285a832500..256a5638e1 100644 --- a/content/en/docs/tasks/example-task-template.md +++ b/content/en/docs/tasks/example-task-template.md @@ -8,7 +8,9 @@ toc_hide: true {{% capture overview %}} -**NOTE:** Be sure to also [create an entry in the table of contents](/docs/home/contribute/write-new-topic/#creating-an-entry-in-the-table-of-contents) for your new document. +{{< note >}} +Be sure to also [create an entry in the table of contents](/docs/home/contribute/write-new-topic/#creating-an-entry-in-the-table-of-contents) for your new document. +{{< /note >}} This page shows how to ... diff --git a/content/en/docs/tasks/extend-kubectl/kubectl-plugins.md b/content/en/docs/tasks/extend-kubectl/kubectl-plugins.md index f671ef5231..ee777c5600 100644 --- a/content/en/docs/tasks/extend-kubectl/kubectl-plugins.md +++ b/content/en/docs/tasks/extend-kubectl/kubectl-plugins.md @@ -18,9 +18,10 @@ of plugins as a means of utilizing these building blocks to create more complex {{% capture prerequisites %}} -You need to have a working `kubectl` binary installed. +You need to have a working `kubectl` binary installed. + {{< note >}} -**Note:** Plugins were officially introduced as an alpha feature in the v1.8.0 release. They have been re-worked in the v1.12.0 release to support a wider range of use-cases. So, while some parts of the plugins feature were already available in previous versions, a `kubectl` version of 1.12.0 or later is recommended if you are following these docs. +Plugins were officially introduced as an alpha feature in the v1.8.0 release. They have been re-worked in the v1.12.0 release to support a wider range of use-cases. So, while some parts of the plugins feature were already available in previous versions, a `kubectl` version of 1.12.0 or later is recommended if you are following these docs. {{< /note >}} Until a GA version is released, plugins should be considered unstable, and their underlying mechanism is prone to change. @@ -34,7 +35,7 @@ Until a GA version is released, plugins should be considered unstable, and their A plugin is nothing more than a standalone executable file, whose name begins with `kubectl-`. To install a plugin, simply move this executable file to anywhere on your PATH. {{< note >}} -**Note:** Kubernetes does not provide a package manager or anything similar to install or update plugins. It is your responsibility to ensure that plugin executables have a filename that begins with `kubectl-`, and that they are placed somewhere on your PATH. +Kubernetes does not provide a package manager or anything similar to install or update plugins. It is your responsibility to ensure that plugin executables have a filename that begins with `kubectl-`, and that they are placed somewhere on your PATH. {{< /note >}} ### Discovering plugins @@ -127,7 +128,7 @@ For example, a plugin that wishes to be invoked whenever the command `kubectl fo #### Flags and argument handling {{< note >}} -**Note:** Unlike previous versions of `kubectl`, the plugin mechanism will _not_ create any custom, plugin-specific values or environment variables to a plugin process. +Unlike previous versions of `kubectl`, the plugin mechanism will _not_ create any custom, plugin-specific values or environment variables to a plugin process. This means that environment variables such as `KUBECTL_PLUGINS_CURRENT_NAMESPACE` are no longer provided to a plugin. Plugins must parse all of the arguments passed to them by a user, and handle flag validation as part of their own implementation. For plugins written in Go, a set of utilities has been provided under [k8s.io/cli-runtime](https://github.com/kubernetes/cli-runtime) to assist with this. {{< /note >}} diff --git a/content/en/docs/tasks/federation/federation-service-discovery.md b/content/en/docs/tasks/federation/federation-service-discovery.md index 6a8138193b..b80a6d8d22 100644 --- a/content/en/docs/tasks/federation/federation-service-discovery.md +++ b/content/en/docs/tasks/federation/federation-service-discovery.md @@ -135,7 +135,7 @@ Events: ``` {{< note >}} -**Note:** The 'LoadBalancer Ingress' addresses of your Federated Service +The 'LoadBalancer Ingress' addresses of your Federated Service correspond with the 'LoadBalancer Ingress' addresses of all of the underlying Kubernetes services (once these have been allocated - this may take a few seconds). For inter-cluster and inter-cloud-provider @@ -222,7 +222,7 @@ nginx.mynamespace.myfederation.svc.europe-west1-d.example.com. CNAME 180 ``` {{< note >}} -**Note:** If your Federation is configured to use AWS Route53, you can use one of the equivalent AWS tools, for example: +If your Federation is configured to use AWS Route53, you can use one of the equivalent AWS tools, for example: ``` shell $ aws route53 list-hosted-zones diff --git a/content/en/docs/tasks/federation/set-up-cluster-federation-kubefed.md b/content/en/docs/tasks/federation/set-up-cluster-federation-kubefed.md index e6db7c3c31..739d143931 100644 --- a/content/en/docs/tasks/federation/set-up-cluster-federation-kubefed.md +++ b/content/en/docs/tasks/federation/set-up-cluster-federation-kubefed.md @@ -44,7 +44,7 @@ Download the client tarball corresponding to the particular release and extract the binaries in the tarball: {{< note >}} -**Note:** Until Kubernetes version `1.8.x` the federation project was +Until Kubernetes version `1.8.x` the federation project was maintained as part of the [core kubernetes repo](https://github.com/kubernetes/kubernetes). Between Kubernetes releases `1.8` and `1.9`, the federation project moved into a separate [federation repo](https://github.com/kubernetes/federation), where it is @@ -59,7 +59,7 @@ curl -LO https://storage.googleapis.com/kubernetes-release/release/${RELEASE-VER tar -xzvf kubernetes-client-linux-amd64.tar.gz ``` {{< note >}} -**Note:** The `RELEASE-VERSION` variable should either be set to or replaced with the actual version needed. +The `RELEASE-VERSION` variable should either be set to or replaced with the actual version needed. {{< /note >}} Copy the extracted binary to one of the directories in your `$PATH` @@ -78,7 +78,7 @@ tar -xzvf federation-client-linux-amd64.tar.gz ``` {{< note >}} -**Note:** The `RELEASE-VERSION` variable should be replaced with one of the release versions available at [federation release page](https://github.com/kubernetes/federation/releases). +The `RELEASE-VERSION` variable should be replaced with one of the release versions available at [federation release page](https://github.com/kubernetes/federation/releases). {{< /note >}} Copy the extracted binary to one of the directories in your `$PATH` @@ -179,7 +179,7 @@ modify a Google Kubernetes Engine cluster directly to add this scope, but you ca new node pool for your cluster and delete the old one. {{< note >}} -**Note:** This will cause pods in the cluster to be rescheduled. +This will cause pods in the cluster to be rescheduled. {{< /note >}} To add the new node pool, run: @@ -200,8 +200,9 @@ gcloud container node-pools delete default-pool --cluster gke-cluster `kubefed init` sets up the federation control plane in the host cluster and also adds an entry for the federation API server in your local kubeconfig. + {{< note >}} -**Note:** In the beta release of Kubernetes 1.6, `kubefed init` does not automatically set the current context to the +In the beta release of Kubernetes 1.6, `kubefed init` does not automatically set the current context to the newly deployed federation. You can set the current context manually by running: ```shell @@ -466,7 +467,7 @@ A new context has now been added to your kubeconfig named `fellowship` (after th {{< note >}} -**Note:** The name that you provide to the `join` command is used as the joining cluster's identity in federation. This name should adhere to the rules described in the [identifiers doc](/docs/concepts/overview/working-with-objects/names/). If the context +The name that you provide to the `join` command is used as the joining cluster's identity in federation. This name should adhere to the rules described in the [identifiers doc](/docs/concepts/overview/working-with-objects/names/). If the context corresponding to your joining cluster conforms to these rules, you can use the same name in the join command. Otherwise, you must choose a different name for your cluster's identity. {{< /note >}} @@ -515,7 +516,7 @@ kubefed join noldor --host-cluster-context=rivendell --secret-name=11kingdom ``` {{< note >}} -**Note:** If your cluster name does not conform to the DNS subdomain name specification, all you need to do is supply the secret name using the `--secret-name` flag. `kubefed join` automatically creates the secret for you. +If your cluster name does not conform to the DNS subdomain name specification, all you need to do is supply the secret name using the `--secret-name` flag. `kubefed join` automatically creates the secret for you. {{< /note >}} ### `kube-dns` configuration @@ -555,7 +556,7 @@ kubectl delete ns federation-system --context=rivendell ``` {{< note >}} -**Note:** `rivendell` is the host cluster name. Replace that name with the appropriate name in your configuration. +`rivendell` is the host cluster name. Replace that name with the appropriate name in your configuration. {{< /note >}} {{% /capture %}} diff --git a/content/en/docs/tasks/federation/set-up-coredns-provider-federation.md b/content/en/docs/tasks/federation/set-up-coredns-provider-federation.md index acfb9bf58b..b2379f79b9 100644 --- a/content/en/docs/tasks/federation/set-up-coredns-provider-federation.md +++ b/content/en/docs/tasks/federation/set-up-coredns-provider-federation.md @@ -118,15 +118,19 @@ coredns-provider.conf has below format: - `zones` is the federation domain for which CoreDNS is authoritative and is same as --dns-zone-name flag of `kubefed init`. - `coredns-endpoints` is the endpoint to access CoreDNS server. This is an optional parameter introduced from v1.7 onwards. -{{< note >}}**Note**: *plugins.etcd.zones in CoreDNS configuration and --dns-zone-name flag to kubefed init should match.*{{< /note >}} +{{< note >}} +`plugins.etcd.zones` in the CoreDNS configuration and the `--dns-zone-name` flag to `kubefed init` should match. +{{< /note >}} ## Setup CoreDNS server in nameserver resolv.conf chain -*Note: The following section applies only to versions prior to v1.7 +{{< note >}} +The following section applies only to versions prior to v1.7 and will be automatically taken care of if the `coredns-endpoints` parameter is configured in `coredns-provider.conf` as described in -section above.* +section above. +{{< /note >}} Once the federation control plane is deployed and federated clusters are joined to the federation, you need to add the CoreDNS server to the diff --git a/content/en/docs/tasks/inject-data-application/define-command-argument-container.md b/content/en/docs/tasks/inject-data-application/define-command-argument-container.md index d920dacdfb..64fc918206 100644 --- a/content/en/docs/tasks/inject-data-application/define-command-argument-container.md +++ b/content/en/docs/tasks/inject-data-application/define-command-argument-container.md @@ -35,7 +35,7 @@ If you define args, but do not define a command, the default command is used with your new arguments. {{< note >}} -**Note:** the `command` field corresponds to `entrypoint` in some container +The `command` field corresponds to `entrypoint` in some container runtimes. Refer to the [Notes](#notes) below. {{< /note >}} @@ -85,7 +85,7 @@ and [Secrets](/docs/concepts/configuration/secret/). {{< note >}} -**Note:** The environment variable appears in parentheses, `"$(VAR)"`. This is +The environment variable appears in parentheses, `"$(VAR)"`. This is required for the variable to be expanded in the `command` or `args` field. {{< /note >}} diff --git a/content/en/docs/tasks/inject-data-application/define-environment-variable-container.md b/content/en/docs/tasks/inject-data-application/define-environment-variable-container.md index 89263d8661..f43c4cdc22 100644 --- a/content/en/docs/tasks/inject-data-application/define-environment-variable-container.md +++ b/content/en/docs/tasks/inject-data-application/define-environment-variable-container.md @@ -79,7 +79,7 @@ Pod: 1. To exit the shell, enter `exit`. {{< note >}} -**Note:** The environment variables set using the `env` or `envFrom` field +The environment variables set using the `env` or `envFrom` field will override any environment variables specified in the container image. {{< /note >}} diff --git a/content/en/docs/tasks/inject-data-application/distribute-credentials-secure.md b/content/en/docs/tasks/inject-data-application/distribute-credentials-secure.md index 8e4f45d87c..3a086bd622 100644 --- a/content/en/docs/tasks/inject-data-application/distribute-credentials-secure.md +++ b/content/en/docs/tasks/inject-data-application/distribute-credentials-secure.md @@ -42,9 +42,10 @@ username and password: ```shell kubectl create -f https://k8s.io/docs/tasks/inject-data-application/secret.yaml ``` -{{< note >}} -**Note:** If you want to skip the Base64 encoding step, you can create a Secret by using the `kubectl create secret` command: -{{< /note >}} + {{< note >}} + If you want to skip the Base64 encoding step, you can create a Secret by using the `kubectl create secret` command: + {{< /note >}} + ```shell kubectl create secret generic test-secret --from-literal=username='my-app' --from-literal=password='39528$vdg7Jb' ``` @@ -79,7 +80,7 @@ username and password: {{< note >}} -**Note:** If you want to skip the Base64 encoding step, you can create a Secret +If you want to skip the Base64 encoding step, you can create a Secret by using the `kubectl create secret` command: {{< /note >}} diff --git a/content/en/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information.md b/content/en/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information.md index b3a3cca0f7..47e997e88c 100644 --- a/content/en/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information.md +++ b/content/en/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information.md @@ -49,7 +49,7 @@ The second element specifies that the value of the Pod's `annotations` field should be stored in a file named `annotations`. {{< note >}} -**Note:** The fields in this example are Pod fields. They are not +The fields in this example are Pod fields. They are not fields of the Container in the Pod. {{< /note >}} @@ -139,7 +139,7 @@ atomically using [rename(2)](http://man7.org/linux/man-pages/man2/rename.2.html). {{< note >}} -**Note:** A container using Downward API as a +A container using Downward API as a [subPath](/docs/concepts/storage/volumes/#using-subpath) volume mount will not receive Downward API updates. {{< /note >}} @@ -221,7 +221,7 @@ In addition, the following information is available through * `metadata.annotations` - all of the pod’s annotations, formatted as `annotation-key="escaped-annotation-value"` with one annotation per line {{< note >}} -**Note:** If CPU and memory limits are not specified for a Container, the +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 >}} diff --git a/content/en/docs/tasks/inject-data-application/environment-variable-expose-pod-information.md b/content/en/docs/tasks/inject-data-application/environment-variable-expose-pod-information.md index cb82dd3758..2c543b1d6f 100644 --- a/content/en/docs/tasks/inject-data-application/environment-variable-expose-pod-information.md +++ b/content/en/docs/tasks/inject-data-application/environment-variable-expose-pod-information.md @@ -48,7 +48,7 @@ variable gets its value from the Pod's `spec.nodeName` field. Similarly, the other environment variables get their names from Pod fields. {{< note >}} -**Note:** The fields in this example are Pod fields. They are not fields of the +The fields in this example are Pod fields. They are not fields of the Container in the Pod. {{< /note >}} diff --git a/content/en/docs/tasks/job/automated-tasks-with-cron-jobs.md b/content/en/docs/tasks/job/automated-tasks-with-cron-jobs.md index 4834e7ee91..df359ab7de 100644 --- a/content/en/docs/tasks/job/automated-tasks-with-cron-jobs.md +++ b/content/en/docs/tasks/job/automated-tasks-with-cron-jobs.md @@ -14,9 +14,11 @@ These automated jobs run like [Cron](https://en.wikipedia.org/wiki/Cron) tasks o Cron jobs are useful for creating periodic and recurring tasks, like running backups or sending emails. Cron jobs can also schedule individual tasks for a specific time, such as if you want to schedule a job for a low activity period. -**Note:** CronJob resource in `batch/v2alpha1` API group has been deprecated starting from cluster version 1.8. +{{< note >}} +CronJob resource in `batch/v2alpha1` API group has been deprecated starting from cluster version 1.8. You should switch to using `batch/v1beta1`, instead, which is enabled by default in the API server. Examples in this document use `batch/v1beta1` in all examples. +{{< /note >}} Cron jobs have limitations and idiosyncrasies. For example, in certain circumstances, a single cron job can create multiple jobs. @@ -123,7 +125,9 @@ and [using kubectl to manage resources](/docs/user-guide/working-with-resources) A cron job config also needs a [`.spec` section](https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status). -**Note:** All modifications to a cron job, especially its `.spec`, are applied only to the following runs. +{{< note >}} +All modifications to a cron job, especially its `.spec`, are applied only to the following runs. +{{< /note >}} ### Schedule @@ -139,8 +143,9 @@ The format also includes extended `vixie cron` step values. As explained in the > ``0,2,4,6,8,10,12,14,16,18,20,22''). Steps are also permitted after an > asterisk, so if you want to say ``every two hours'', just use ``*/2''. - -**Note:** The question mark (`?`) in the schedule has the same meaning as an asterisk `*`, that is, it stands for any of available value for a given field. +{{< note >}} +The question mark (`?`) in the schedule has the same meaning as an asterisk `*`, that is, it stands for any of available value for a given field. +{{< /note >}} ### Job Template @@ -187,7 +192,7 @@ This setting does not apply to already started executions. Defaults to false. {{< caution >}} -**Caution:** Executions that are suspended during their scheduled time count as missed jobs. +Executions that are suspended during their scheduled time count as missed jobs. When `.spec.suspend` changes from `true` to `false` on an existing cron job without a [starting deadline](#starting-deadline), the missed jobs are scheduled immediately. {{< /caution >}} diff --git a/content/en/docs/tasks/manage-daemon/rollback-daemon-set.md b/content/en/docs/tasks/manage-daemon/rollback-daemon-set.md index fbd57b98c0..b522ecc8ed 100644 --- a/content/en/docs/tasks/manage-daemon/rollback-daemon-set.md +++ b/content/en/docs/tasks/manage-daemon/rollback-daemon-set.md @@ -140,7 +140,7 @@ previous revision through other commands, such as `kubectl edit` or `kubectl apply`. {{< note >}} -**Note:** DaemonSet revisions only roll forward. That is to say, after a +DaemonSet revisions only roll forward. That is to say, after a rollback completes, the revision number (`.revision` field) of the `ControllerRevision` being rolled back to will advance. For example, if you have revision 1 and 2 in the system, and roll back from revision 2 to revision diff --git a/content/en/docs/tasks/manage-daemon/update-daemon-set.md b/content/en/docs/tasks/manage-daemon/update-daemon-set.md index d2cd15cdcd..4b380f772d 100644 --- a/content/en/docs/tasks/manage-daemon/update-daemon-set.md +++ b/content/en/docs/tasks/manage-daemon/update-daemon-set.md @@ -159,9 +159,10 @@ kubectl get pods -l = -o wide ``` Once you've found those nodes, delete some non-DaemonSet pods from the node to -make room for new DaemonSet pods. +make room for new DaemonSet pods. + {{< note >}} -**Note:** This will cause service disruption when deleted pods are not controlled by any controllers or pods are not +This will cause service disruption when deleted pods are not controlled by any controllers or pods are not replicated. This does not respect [PodDisruptionBudget](/docs/tasks/configure-pod-container/configure-pod-disruption-budget/) either. {{< /note >}} diff --git a/content/en/docs/tasks/run-application/configure-pdb.md b/content/en/docs/tasks/run-application/configure-pdb.md index 7c291da37d..36a06dedda 100644 --- a/content/en/docs/tasks/run-application/configure-pdb.md +++ b/content/en/docs/tasks/run-application/configure-pdb.md @@ -91,7 +91,7 @@ of the number of pods from that set that can be unavailable after the eviction. It can be either an absolute number or a percentage. {{< note >}} -**Note:** For versions 1.8 and earlier: When creating a `PodDisruptionBudget` +For versions 1.8 and earlier: When creating a `PodDisruptionBudget` object using the `kubectl` command line tool, the `minAvailable` field has a default value of 1 if neither `minAvailable` nor `maxUnavailable` is specified. {{< /note >}} @@ -117,12 +117,14 @@ of the desired replicas are unhealthy. In typical usage, a single budget would be used for a collection of pods managed by a controller—for example, the pods in a single ReplicaSet or StatefulSet. -**Note:** A disruption budget does not truly guarantee that the specified +{{< note >}} +A disruption budget does not truly guarantee that the specified number/percentage of pods will always be up. For example, a node that hosts a pod from the collection may fail when the collection is at the minimum size specified in the budget, thus bringing the number of available pods from the collection below the specified size. The budget can only protect against voluntary evictions, not all causes of unavailability. +{{< /note >}} A `maxUnavailable` of 0% (or 0) or a `minAvailable` of 100% (or equal to the number of replicas) may block node drains entirely. This is permitted as per the diff --git a/content/en/docs/tasks/run-application/delete-stateful-set.md b/content/en/docs/tasks/run-application/delete-stateful-set.md index 564d18114e..7c2db63971 100644 --- a/content/en/docs/tasks/run-application/delete-stateful-set.md +++ b/content/en/docs/tasks/run-application/delete-stateful-set.md @@ -59,7 +59,9 @@ kubectl delete pods -l app=myapp Deleting the Pods in a StatefulSet will not delete the associated volumes. This is to ensure that you have the chance to copy data off the volume before deleting it. Deleting the PVC after the pods have left the [terminating state](/docs/concepts/workloads/pods/pod/#termination-of-pods) might trigger deletion of the backing Persistent Volumes depending on the storage class and reclaim policy. You should never assume ability to access a volume after claim deletion. -**Note: Use caution when deleting a PVC, as it may lead to data loss.** +{{< note >}} +Use caution when deleting a PVC, as it may lead to data loss. +{{< /note >}} ### Complete deletion of a StatefulSet diff --git a/content/en/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough.md b/content/en/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough.md index ce32d26691..39ab3fd150 100644 --- a/content/en/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough.md +++ b/content/en/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough.md @@ -130,9 +130,11 @@ NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE php-apache 7 7 7 7 19m ``` -**Note** Sometimes it may take a few minutes to stabilize the number of replicas. -Since the amount of load is not controlled in any way it may happen that the final number of replicas will -differ from this example. +{{< note >}} +It may take a few minutes to stabilize the number of replicas. Since the amount +of load is not controlled in any way it may happen that the final number of replicas +will differ from this example. +{{< /note >}} ## Stop load @@ -156,7 +158,7 @@ php-apache 1 1 1 1 27m Here CPU utilization dropped to 0, and so HPA autoscaled the number of replicas back down to 1. {{< note >}} -**Note** autoscaling the replicas may take a few minutes. +Autoscaling the replicas may take a few minutes. {{< /note >}} {{% /capture %}} diff --git a/content/en/docs/tasks/run-application/horizontal-pod-autoscale.md b/content/en/docs/tasks/run-application/horizontal-pod-autoscale.md index c3fd52981a..47e22881a0 100644 --- a/content/en/docs/tasks/run-application/horizontal-pod-autoscale.md +++ b/content/en/docs/tasks/run-application/horizontal-pod-autoscale.md @@ -222,11 +222,11 @@ upscale delay. The default value is 5 minutes (`5m0s`). {{< note >}} -**Note**: When tuning these parameter values, a cluster operator should be aware of -the possible consequences. If the delay (cooldown) value is set too long, there -could be complaints that the Horizontal Pod Autoscaler is not responsive to workload -changes. However, if the delay value is set too short, the scale of the replicas set -may keep thrashing as usual. +When tuning these parameter values, a cluster operator should be aware of the possible +consequences. If the delay (cooldown) value is set too long, there could be complaints +that the Horizontal Pod Autoscaler is not responsive to workload changes. However, if +the delay value is set too short, the scale of the replicas set may keep thrashing as +usual. {{< /note >}} ## Support for multiple metrics @@ -238,10 +238,12 @@ proposed scales will be used as the new scale. ## Support for custom metrics -**Note**: Kubernetes 1.2 added alpha support for scaling based on application-specific metrics using special annotations. +{{< note >}} +Kubernetes 1.2 added alpha support for scaling based on application-specific metrics using special annotations. Support for these annotations was removed in Kubernetes 1.6 in favor of the new autoscaling API. While the old method for collecting custom metrics is still available, these metrics will not be available for use by the Horizontal Pod Autoscaler, and the former annotations for specifying which custom metrics to scale on are no longer honored by the Horizontal Pod Autoscaler controller. +{{< /note >}} Kubernetes 1.6 adds support for making use of custom metrics in the Horizontal Pod Autoscaler. You can add custom metrics for the Horizontal Pod Autoscaler to use in the `autoscaling/v2beta2` API. diff --git a/content/en/docs/tasks/run-application/rolling-update-replication-controller.md b/content/en/docs/tasks/run-application/rolling-update-replication-controller.md index 63db0a2ac0..e0ace5c4c9 100644 --- a/content/en/docs/tasks/run-application/rolling-update-replication-controller.md +++ b/content/en/docs/tasks/run-application/rolling-update-replication-controller.md @@ -9,7 +9,7 @@ weight: 80 {{% capture overview %}} {{< note >}} -**Note**: The preferred way to create a replicated application is to use a +The preferred way to create a replicated application is to use a [Deployment](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#deployment-v1-apps), which in turn uses a [ReplicaSet](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#replicaset-v1-apps). diff --git a/content/en/docs/tasks/service-catalog/install-service-catalog-using-helm.md b/content/en/docs/tasks/service-catalog/install-service-catalog-using-helm.md index 5b5c7e562d..728d7a8950 100644 --- a/content/en/docs/tasks/service-catalog/install-service-catalog-using-helm.md +++ b/content/en/docs/tasks/service-catalog/install-service-catalog-using-helm.md @@ -68,7 +68,7 @@ AUTHORIZATION_MODE=Node,RBAC hack/local-up-cluster.sh -O By default, `helm init` installs the Tiller Pod into the `kube-system` namespace, with Tiller configured to use the `default` service account. {{< note >}} -**NOTE:** If you used the `--tiller-namespace` or `--service-account` flags when running `helm init`, the `--serviceaccount` flag in the following command needs to be adjusted to reference the appropriate namespace and ServiceAccount name. +If you used the `--tiller-namespace` or `--service-account` flags when running `helm init`, the `--serviceaccount` flag in the following command needs to be adjusted to reference the appropriate namespace and ServiceAccount name. {{< /note >}} Configure Tiller to have `cluster-admin` access: diff --git a/content/en/docs/tasks/tls/managing-tls-in-a-cluster.md b/content/en/docs/tasks/tls/managing-tls-in-a-cluster.md index dba3f0e142..2180f05d36 100644 --- a/content/en/docs/tasks/tls/managing-tls-in-a-cluster.md +++ b/content/en/docs/tasks/tls/managing-tls-in-a-cluster.md @@ -50,7 +50,7 @@ The following section demonstrates how to create a TLS certificate for a Kubernetes service accessed through DNS. {{< note >}} -**Note:** This tutorial uses CFSSL: Cloudflare's PKI and TLS toolkit [click here](https://blog.cloudflare.com/introducing-cfssl/) to know more. +This tutorial uses CFSSL: Cloudflare's PKI and TLS toolkit [click here](https://blog.cloudflare.com/introducing-cfssl/) to know more. {{< /note >}} ## Download and install CFSSL diff --git a/content/en/docs/tasks/tools/install-kubectl.md b/content/en/docs/tasks/tools/install-kubectl.md index e7f78b98cd..165c6e1586 100644 --- a/content/en/docs/tasks/tools/install-kubectl.md +++ b/content/en/docs/tasks/tools/install-kubectl.md @@ -106,7 +106,7 @@ If you are on Windows and using [Powershell Gallery](https://www.powershellgalle ``` {{< note >}} -**Note:** If you do not specify a `DownloadLocation`, `kubectl` will be installed in the user's temp Directory. + If you do not specify a `DownloadLocation`, `kubectl` will be installed in the user's temp Directory. {{< /note >}} The installer creates `$HOME/.kube` and instructs it to create a config file @@ -118,7 +118,7 @@ If you are on Windows and using [Powershell Gallery](https://www.powershellgalle ``` {{< note >}} -**Note:** Updating the installation is performed by rerunning the two commands listed in step 1. + Updating the installation is performed by rerunning the two commands listed in step 1. {{< /note >}} ## Install with Chocolatey on Windows @@ -153,9 +153,13 @@ If you are on Windows and using [Chocolatey](https://chocolatey.org) package man ``` 6. Configure kubectl to use a remote Kubernetes cluster: - New-Item config -type file + + ``` + New-Item config -type file + ``` + {{< note >}} - **Note:** Edit the config file with a text editor of your choice, such as Notepad. + Edit the config file with a text editor of your choice, such as Notepad. {{< /note >}} ## Download as part of the Google Cloud SDK diff --git a/content/en/docs/tasks/tools/install-minikube.md b/content/en/docs/tasks/tools/install-minikube.md index ad6fb28f73..ca56e7ef26 100644 --- a/content/en/docs/tasks/tools/install-minikube.md +++ b/content/en/docs/tasks/tools/install-minikube.md @@ -30,7 +30,7 @@ If you do not already have a hypervisor installed, install the appropriate one f [KVM](http://www.linux-kvm.org/). {{< note >}} - **Note:** Minikube also supports a `-\-vm-driver=none` option that runs the Kubernetes components on the host and not in a VM. Using this driver requires Docker and a linux environment, but not a hypervisor. + Minikube also supports a `-\-vm-driver=none` option that runs the Kubernetes components on the host and not in a VM. Using this driver requires Docker and a linux environment, but not a hypervisor. {{< /note >}} * Windows: [VirtualBox](https://www.virtualbox.org/wiki/Downloads) or diff --git a/content/en/docs/test.md b/content/en/docs/test.md index 3866154477..e7faf57d12 100644 --- a/content/en/docs/test.md +++ b/content/en/docs/test.md @@ -157,7 +157,7 @@ $ echo 'Tab lists may contain code blocks!' Nested header tags may also be included. {{< warning >}} -**Note**: Headers within tab lists will not appear in the Table of Contents. +Headers within tab lists will not appear in the Table of Contents. {{< /warning >}} {{% /tab %}} @@ -321,7 +321,7 @@ A sidebar offsets text visually, but without the visual prominence of Admonitions (notes, warnings, etc) use Hugo shortcodes. {{< note >}} -**Note:** Notes catch the reader's attention without a sense of urgency. +Notes catch the reader's attention without a sense of urgency. You can have multiple paragraphs and block-level elements inside an admonition. @@ -329,12 +329,12 @@ You can have multiple paragraphs and block-level elements inside an admonition. {{< /note >}} {{< caution >}} -**Caution:** The reader should proceed with caution. +The reader should proceed with caution. {{< /caution >}} {{< warning >}} -**Warning:** Warnings point out something that could cause harm if ignored. +Warnings point out something that could cause harm if ignored. {{< /warning >}} diff --git a/content/en/docs/tutorials/clusters/apparmor.md b/content/en/docs/tutorials/clusters/apparmor.md index 9102185c38..ec35b1b3e1 100644 --- a/content/en/docs/tutorials/clusters/apparmor.md +++ b/content/en/docs/tutorials/clusters/apparmor.md @@ -65,9 +65,11 @@ Make sure: 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. + {{< /note >}} 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 @@ -117,9 +119,11 @@ gke-test-default-pool-239f5d02-xwux: kubelet is posting ready status. AppArmor e ## Securing a Pod -**Note:** AppArmor is currently in beta, so options are specified as annotations. Once support graduates to +{{< note >}} +AppArmor is currently in beta, so options are specified as annotations. Once support graduates to general availability, the annotations will be replaced with first-class fields (more details in [Upgrade path to GA](#upgrade-path-to-general-availability)). +{{< /note >}} AppArmor profiles are specified *per-container*. To specify the AppArmor profile to run a Pod container with, add an annotation to the Pod's metadata: diff --git a/content/en/docs/tutorials/hello-minikube.md b/content/en/docs/tutorials/hello-minikube.md index 63f99066ce..6ce214c717 100644 --- a/content/en/docs/tutorials/hello-minikube.md +++ b/content/en/docs/tutorials/hello-minikube.md @@ -17,7 +17,7 @@ on Kubernetes using [Minikube](/docs/getting-started-guides/minikube) and Kataco Katacoda provides a free, in-browser Kubernetes environment. {{< note >}} -**Note:** You can also follow this tutorial if you've installed Minikube locally. +You can also follow this tutorial if you've installed Minikube locally. {{< /note >}} {{% /capture %}} @@ -51,7 +51,8 @@ For more information, read the Docker documentation for [docker build](https://d {{< kat-button >}} {{< note >}} - **Note:** If you installed Minikube locally, run + If you installed Minikube locally, run + ```shell minikube start ``` @@ -121,7 +122,7 @@ Pod runs a Container based on the provided Docker image. ``` {{< note >}} - **Note:** For more information about `kubectl`commands, see the + For more information about `kubectl`commands, see the [kubectl overview](/docs/user-guide/kubectl-overview/). {{< /note >}} @@ -200,7 +201,6 @@ Minikube has a set of built-in addons that can be enabled, disabled and opened i - storage-provisioner: enabled ``` {{< note >}} - **Note:** Minikube must be running for these commands to take effect. {{< /note >}} diff --git a/content/en/docs/tutorials/stateful-application/basic-stateful-set.md b/content/en/docs/tutorials/stateful-application/basic-stateful-set.md index 490d14ed83..93fee4e210 100644 --- a/content/en/docs/tutorials/stateful-application/basic-stateful-set.md +++ b/content/en/docs/tutorials/stateful-application/basic-stateful-set.md @@ -284,7 +284,7 @@ web-1 ``` {{< note >}} -**Note:** If you instead see 403 Forbidden responses for the above curl command, +If you instead see 403 Forbidden responses for the above curl command, you will need to fix the permissions of the directory mounted by the `volumeMounts` (due to a [bug when using hostPath volumes](https://github.com/kubernetes/kubernetes/issues/2630)) with: diff --git a/content/en/docs/tutorials/stateful-application/cassandra.md b/content/en/docs/tutorials/stateful-application/cassandra.md index f1cd0c0d46..7313f8c0e0 100644 --- a/content/en/docs/tutorials/stateful-application/cassandra.md +++ b/content/en/docs/tutorials/stateful-application/cassandra.md @@ -48,13 +48,13 @@ To complete this tutorial, you should already have a basic familiarity with [Pod * Have a supported Kubernetes cluster running {{< note >}} -**Note:** Please read the [getting started guides](/docs/setup/pick-right-solution/) if you do not already have a cluster. +Please read the [getting started guides](/docs/setup/pick-right-solution/) if you do not already have a cluster. {{< /note >}} ### Additional Minikube Setup Instructions {{< caution >}} -**Caution:** [Minikube](/docs/getting-started-guides/minikube/) defaults to 1024MB of memory and 1 CPU. Running Minikube with the default resource configuration results in insufficient resource errors during this tutorial. To avoid these errors, start Minikube with the following settings: +[Minikube](/docs/getting-started-guides/minikube/) defaults to 1024MB of memory and 1 CPU. Running Minikube with the default resource configuration results in insufficient resource errors during this tutorial. To avoid these errors, start Minikube with the following settings: ```shell minikube start --memory 5120 --cpus=4 @@ -101,7 +101,7 @@ Service creation failed if anything else is returned. Read [Debug Services](/doc The StatefulSet manifest, included below, creates a Cassandra ring that consists of three Pods. {{< note >}} -**Note:** This example uses the default provisioner for Minikube. Please update the following StatefulSet for the cloud you are working with. +This example uses the default provisioner for Minikube. Please update the following StatefulSet for the cloud you are working with. {{< /note >}} {{< codenew file="application/cassandra/cassandra-statefulset.yaml" >}} @@ -228,7 +228,7 @@ Use `kubectl edit` to modify the size of a Cassandra StatefulSet. Deleting or scaling a StatefulSet down does not delete the volumes associated with the StatefulSet. This setting is for your safety because your data is more valuable than automatically purging all related StatefulSet resources. {{< warning >}} -**Warning:** Depending on the storage class and reclaim policy, deleting the *PersistentVolumeClaims* may cause the associated volumes to also be deleted. Never assume you’ll be able to access data if its volume claims are deleted. +Depending on the storage class and reclaim policy, deleting the *PersistentVolumeClaims* 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 (chained together into a single command) to delete everything in the Cassandra `StatefulSet`: diff --git a/content/en/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume.md b/content/en/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume.md index acebf69d6e..63b6b032db 100644 --- a/content/en/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume.md +++ b/content/en/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume.md @@ -12,11 +12,11 @@ This tutorial shows you how to deploy a WordPress site and a MySQL database usin A [PersistentVolume](/docs/concepts/storage/persistent-volumes/) (PV) is a piece of storage in the cluster that has been manually provisioned by an administrator, or dynamically provisioned by Kubernetes using a [StorageClass](/docs/concepts/storage/storage-classes). A [PersistentVolumeClaim](/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims) (PVC) is a request for storage by a user that can be fulfilled by a PV. PersistentVolumes and PersistentVolumeClaims are independent from Pod lifecycles and preserve data through restarting, rescheduling, and even deleting Pods. {{< warning >}} -**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. +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 >}} {{< note >}} -**Note:** The files provided in this tutorial are using GA Deployment APIs and are specific to kubernetes version 1.9 and later. If you wish to use this tutorial with an earlier version of Kubernetes, please update the API version appropriately, or reference earlier versions of this tutorial. +The files provided in this tutorial are using GA Deployment APIs and are specific to kubernetes version 1.9 and later. If you wish to use this tutorial with an earlier version of Kubernetes, please update the API version appropriately, or reference earlier versions of this tutorial. {{< /note >}} {{% /capture %}} @@ -53,15 +53,15 @@ Many cluster environments have a default StorageClass installed. When a Storage When a PersistentVolumeClaim is created, a PersistentVolume is dynamically provisioned based on the StorageClass configuration. {{< warning >}} -**Warning:** In local clusters, the default StorageClass uses the `hostPath` provisioner. `hostPath` volumes are only suitable for development and testing. With `hostPath` volumes, your data lives in `/tmp` 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, or the node is rebooted, the data is lost. +In local clusters, the default StorageClass uses the `hostPath` provisioner. `hostPath` volumes are only suitable for development and testing. With `hostPath` volumes, your data lives in `/tmp` 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, or the node is rebooted, the data is lost. {{< /warning >}} {{< note >}} -**Note:** If you are bringing up a cluster that needs to use the `hostPath` provisioner, the `--enable-hostpath-provisioner` flag must be set in the `controller-manager` component. +If you are bringing up a cluster that needs to use the `hostPath` provisioner, the `--enable-hostpath-provisioner` flag must be set in the `controller-manager` component. {{< /note >}} {{< note >}} -**Note:** If you have a Kubernetes cluster running on Google Kubernetes Engine, please follow [this guide](https://cloud.google.com/kubernetes-engine/docs/tutorials/persistent-disk). +If you have a Kubernetes cluster running on Google Kubernetes Engine, please follow [this guide](https://cloud.google.com/kubernetes-engine/docs/tutorials/persistent-disk). {{< /note >}} ## Create a Secret for MySQL Password @@ -89,7 +89,7 @@ A [Secret](/docs/concepts/configuration/secret/) is an object that stores a piec ``` {{< note >}} -**Note:** To protect the Secret from exposure, neither `get` nor `describe` show its contents. +To protect the Secret from exposure, neither `get` nor `describe` show its contents. {{< /note >}} ## Deploy MySQL @@ -124,7 +124,9 @@ The following manifest describes a single-instance MySQL Deployment. The MySQL c kubectl get pods ``` - {{< note >}}**Note:** It can take up to a few minutes for the Pod's Status to be `RUNNING`.{{< /note >}} + {{< note >}} + It can take up to a few minutes for the Pod's Status to be `RUNNING`. + {{< /note >}} The response should be like this: @@ -151,7 +153,9 @@ The following manifest describes a single-instance WordPress Deployment and Serv kubectl get pvc ``` - {{< note >}}**Note:** It can take up to a few minutes for the PVs to be provisioned and bound.{{< /note >}} + {{< note >}} + It can take up to a few minutes for the PVs to be provisioned and bound. + {{< /note >}} The response should be like this: @@ -173,7 +177,9 @@ The following manifest describes a single-instance WordPress Deployment and Serv wordpress ClusterIP 10.0.0.89 80:32406/TCP 4m ``` - {{< note >}}**Note:** Minikube can only expose Services through `NodePort`. The EXTERNAL-IP is always pending.{{< /note >}} + {{< note >}} + Minikube can only expose Services through `NodePort`. The EXTERNAL-IP is always pending. + {{< /note >}} 4. Run the following command to get the IP Address for the WordPress Service: @@ -194,7 +200,7 @@ The following manifest describes a single-instance WordPress Deployment and Serv ![wordpress-init](https://raw.githubusercontent.com/kubernetes/examples/master/mysql-wordpress-pd/WordPress.png) {{< warning >}} -**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. +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 >}} {{% /capture %}} diff --git a/content/en/docs/tutorials/stateless-application/guestbook.md b/content/en/docs/tutorials/stateless-application/guestbook.md index 1b65910f27..2d82a7a045 100644 --- a/content/en/docs/tutorials/stateless-application/guestbook.md +++ b/content/en/docs/tutorials/stateless-application/guestbook.md @@ -70,7 +70,7 @@ The manifest file, included below, specifies a Deployment controller that runs a ``` {{< note >}} -**Note:** Replace POD-NAME with the name of your Pod. +Replace POD-NAME with the name of your Pod. {{< /note >}} ### Creating the Redis Master Service @@ -100,7 +100,7 @@ The guestbook applications needs to communicate to the Redis master to write its ``` {{< note >}} -**Note:** This manifest file creates a Service named `redis-master` with a set of labels that match the labels previously defined, so the Service routes network traffic to the Redis master Pod. +This manifest file creates a Service named `redis-master` with a set of labels that match the labels previously defined, so the Service routes network traffic to the Redis master Pod. {{< /note >}} @@ -200,7 +200,7 @@ The `redis-slave` and `redis-master` Services you applied are only accessible wi If you want guests to be able to access your guestbook, you must configure the frontend Service to be externally visible, so a client can request the Service from outside the container cluster. Minikube can only expose Services through `NodePort`. {{< note >}} -**Note:** Some cloud providers, like Google Compute Engine or Google Kubernetes Engine, support external load balancers. If your cloud provider supports load balancers and you want to use it, simply delete or comment out `type: NodePort`, and uncomment `type: LoadBalancer`. +Some cloud providers, like Google Compute Engine or Google Kubernetes Engine, support external load balancers. If your cloud provider supports load balancers and you want to use it, simply delete or comment out `type: NodePort`, and uncomment `type: LoadBalancer`. {{< /note >}} {{< codenew file="application/guestbook/frontend-service.yaml" >}} diff --git a/content/en/includes/federation-current-state.md b/content/en/includes/federation-current-state.md index 97d26cf075..d04fda15e0 100644 --- a/content/en/includes/federation-current-state.md +++ b/content/en/includes/federation-current-state.md @@ -1 +1 @@ -**Note:** `Federation V1`, the current Kubernetes federation API which reuses the Kubernetes API resources 'as is', is currently considered alpha for many of its features. There is no clear path to evolve the API to GA; however, there is a `Federation V2` effort in progress to implement a dedicated federation API apart from the Kubernetes API. The details are available at [sig-multicluster community page](https://github.com/kubernetes/community/tree/master/sig-multicluster). +`Federation V1`, the current Kubernetes federation API which reuses the Kubernetes API resources 'as is', is currently considered alpha for many of its features. There is no clear path to evolve the API to GA; however, there is a `Federation V2` effort in progress to implement a dedicated federation API apart from the Kubernetes API. The details are available at [sig-multicluster community page](https://github.com/kubernetes/community/tree/master/sig-multicluster). diff --git a/content/ko/docs/setup/custom-cloud/kubespray.md b/content/ko/docs/setup/custom-cloud/kubespray.md index 11671b501c..b181b087e9 100644 --- a/content/ko/docs/setup/custom-cloud/kubespray.md +++ b/content/ko/docs/setup/custom-cloud/kubespray.md @@ -103,7 +103,7 @@ You can upgrade your cluster by running the upgrade-cluster playbook. For more i You can reset your nodes and wipe out all components installed with Kubespray via the [reset playbook](https://github.com/kubernetes-incubator/kubespray/blob/master/reset.yml). {{< caution >}} -**Caution:** When running the reset playbook, be sure not to accidentally target your production cluster! +When running the reset playbook, be sure not to accidentally target your production cluster! {{< /caution >}} ## Feedback diff --git a/content/ko/docs/setup/independent/create-cluster-kubeadm.md b/content/ko/docs/setup/independent/create-cluster-kubeadm.md index f658956e1b..c867a11024 100644 --- a/content/ko/docs/setup/independent/create-cluster-kubeadm.md +++ b/content/ko/docs/setup/independent/create-cluster-kubeadm.md @@ -97,7 +97,7 @@ timeframe; which also applies to `kubeadm`. See ["Installing kubeadm"](/docs/setup/independent/install-kubeadm/). {{< note >}} -**Note:** If you have already installed kubeadm, run `apt-get update && +If you have already installed kubeadm, run `apt-get update && apt-get upgrade` or `yum update` to get the latest version of kubeadm. When you upgrade, the kubelet restarts every few seconds as it waits in a crashloop for @@ -226,7 +226,7 @@ created, and deleted with the `kubeadm token` command. See the ### Installing a pod network add-on {#pod-network} {{< caution >}} -**Caution:** This section contains important information about installation and deployment order. Read it carefully before proceeding. +This section contains important information about installation and deployment order. Read it carefully before proceeding. {{< /caution >}} You must install a pod network add-on so that your pods can communicate with @@ -467,7 +467,7 @@ The output is similar to this: ``` {{< note >}} -**Note:** To specify an IPv6 tuple for `:`, IPv6 address must be enclosed in square brackets, for example: `[fd00::101]:2073`. +To specify an IPv6 tuple for `:`, IPv6 address must be enclosed in square brackets, for example: `[fd00::101]:2073`. {{< /note >}} The output should look something like: @@ -500,7 +500,7 @@ kubectl --kubeconfig ./admin.conf get nodes ``` {{< note >}} -**Note:** The example above assumes SSH access is enabled for root. If that is not the +The example above assumes SSH access is enabled for root. If that is not the case, you can copy the `admin.conf` file to be accessible by some other user and `scp` using that other user instead. diff --git a/content/ko/docs/setup/independent/high-availability.md b/content/ko/docs/setup/independent/high-availability.md index d7cde10d82..363f29cf0b 100644 --- a/content/ko/docs/setup/independent/high-availability.md +++ b/content/ko/docs/setup/independent/high-availability.md @@ -20,7 +20,7 @@ with upgrading your clusters, for example. We encourage you to try either approa and provide feedback. {{< caution >}} -**Caution**: This page does not address running your cluster on a cloud provider. +This page does not address running your cluster on a cloud provider. In a cloud environment, neither approach documented here works with Service objects of type LoadBalancer, or with dynamic PersistentVolumes. {{< /caution >}} @@ -47,7 +47,7 @@ For the external etcd cluster only, you also need: - Three additional machines for etcd members {{< note >}} -**Note**: The following examples run Calico as the Pod networking provider. If +The following examples run Calico as the Pod networking provider. If you run another networking provider, make sure to replace any default values as needed. {{< /note >}} @@ -59,7 +59,7 @@ needed. ## First steps for both methods {{< note >}} -**Note**: All commands in this guide on any control plane or etcd node should be +All commands in this guide on any control plane or etcd node should be run as root. {{< /note >}} @@ -100,7 +100,7 @@ run as root. ### Create load balancer for kube-apiserver {{< note >}} -**Note**: There are many configurations for load balancers. The following +There are many configurations for load balancers. The following example is only one option. Your cluster requirements may need a different configuration. {{< /note >}} @@ -138,7 +138,7 @@ different configuration. ### Bootstrap the first stacked control plane node {{< note >}} -**Note**: Optionally replace `stable` with a different version of Kubernetes, for example `v1.12.0`. +Optionally replace `stable` with a different version of Kubernetes, for example `v1.12.0`. {{< /note >}} 1. Create a `kubeadm-config.yaml` template file: @@ -215,7 +215,7 @@ done ``` {{< note >}} -**Note**: Remember that your config may differ from this example. +Remember that your config may differ from this example. {{< /note >}} ### Add the second stacked control plane node @@ -435,7 +435,7 @@ done 1. Create a `kubeadm-config.yaml`: {{< note >}} -**Note**: Optionally replace `stable` with a different version of Kubernetes, for example `v1.11.3`. +Optionally replace `stable` with a different version of Kubernetes, for example `v1.11.3`. {{< /note >}} apiVersion: kubeadm.k8s.io/v1alpha3 diff --git a/content/ko/docs/setup/independent/setup-ha-etcd-with-kubeadm.md b/content/ko/docs/setup/independent/setup-ha-etcd-with-kubeadm.md index 2b53adbfa3..634df68995 100644 --- a/content/ko/docs/setup/independent/setup-ha-etcd-with-kubeadm.md +++ b/content/ko/docs/setup/independent/setup-ha-etcd-with-kubeadm.md @@ -36,7 +36,7 @@ The general approach is to generate all certs on one node and only distribute the *necessary* files to the other nodes. {{< note >}} -**Note:** kubeadm contains all the necessary crytographic machinery to generate +kubeadm contains all the necessary crytographic machinery to generate the certificates described below; no other cryptographic tooling is required for this example. {{< /note >}} diff --git a/content/ko/docs/setup/independent/troubleshooting-kubeadm.md b/content/ko/docs/setup/independent/troubleshooting-kubeadm.md index 8a66795d50..950ea7bd23 100644 --- a/content/ko/docs/setup/independent/troubleshooting-kubeadm.md +++ b/content/ko/docs/setup/independent/troubleshooting-kubeadm.md @@ -255,7 +255,7 @@ kubectl -n kube-system get deployment coredns -o yaml | \ ``` {{< warning >}} -**Warning**: Disabling SELinux or setting `allowPrivilegeEscalation` to `true` can compromise +Disabling SELinux or setting `allowPrivilegeEscalation` to `true` can compromise the security of your cluster. {{< /warning >}} diff --git a/content/ko/docs/setup/multiple-zones.md b/content/ko/docs/setup/multiple-zones.md index ea1d053fc3..0feb902f09 100644 --- a/content/ko/docs/setup/multiple-zones.md +++ b/content/ko/docs/setup/multiple-zones.md @@ -195,14 +195,16 @@ kubectl create -f - <}} +For version 1.3+ Kubernetes will distribute dynamic PV claims across the configured zones. For version 1.2, dynamic persistent volumes were always created in the zone of the cluster master (here us-central1-a / us-west-2a); that issue ([#23330](https://github.com/kubernetes/kubernetes/issues/23330)) was addressed in 1.3+. +{{< /note >}} -Now lets validate that Kubernetes automatically labeled the zone & region the PV was created in. +Now let's validate that Kubernetes automatically labeled the zone & region the PV was created in. ```shell > kubectl get pv --show-labels diff --git a/content/ko/docs/setup/scratch.md b/content/ko/docs/setup/scratch.md index ea0c97c8fc..20edb1feb3 100644 --- a/content/ko/docs/setup/scratch.md +++ b/content/ko/docs/setup/scratch.md @@ -483,11 +483,11 @@ You will need to run one or more instances of etcd. - Not highly available, but easy to restore - Run one etcd instance, with its log written to a directory backed by durable storage (RAID, GCE PD). - {{< note >}}**Note:** May result in operations outages in case of + {{< note >}}May result in operations outages in case of instance outage. {{< /note >}} - Highly available - Run 3 or 5 etcd instances with non durable storage. - {{< note >}}**Note:** Log can be written to non-durable storage + {{< note >}}Log can be written to non-durable storage because storage is replicated.{{< /note >}} See [cluster-troubleshooting](/docs/admin/cluster-troubleshooting/) for more discussion on factors affecting cluster diff --git a/content/ko/docs/setup/turnkey/gce.md b/content/ko/docs/setup/turnkey/gce.md index a69675a40e..153414a1a9 100644 --- a/content/ko/docs/setup/turnkey/gce.md +++ b/content/ko/docs/setup/turnkey/gce.md @@ -91,7 +91,7 @@ gcloud components install kubectl ``` {{< note >}} -**Note:** The kubectl version bundled with `gcloud` may be older than the one +The kubectl version bundled with `gcloud` may be older than the one downloaded by the get.k8s.io install script. See [Installing kubectl](/docs/tasks/kubectl/install/) document to see how you can set up the latest `kubectl` on your workstation. {{< /note >}} diff --git a/content/zh/docs/admin/kubelet-tls-bootstrapping.md b/content/zh/docs/admin/kubelet-tls-bootstrapping.md index e195748965..92c3b2270c 100644 --- a/content/zh/docs/admin/kubelet-tls-bootstrapping.md +++ b/content/zh/docs/admin/kubelet-tls-bootstrapping.md @@ -186,11 +186,13 @@ kubectl config set-credentials kubelet-bootstrap --token=${BOOTSTRAP_TOKEN} --ku When starting the kubelet, if the file specified by `--kubeconfig` does not exist, the bootstrap kubeconfig is used to request a client certificate from the API server. On approval of the certificate request and receipt back by the kubelet, a kubeconfig file referencing the generated key and obtained certificate is written to the path specified by `--kubeconfig`. The certificate and key file will be placed in the directory specified by `--cert-dir`. -**Note:** The following flags are required to enable this bootstrapping when starting the kubelet: +{{< note >}} +The following flags are required to enable this bootstrapping when starting the kubelet: ``` --bootstrap-kubeconfig="/path/to/bootstrap/kubeconfig" ``` +{{< /note >}} Additionally, in 1.7 the kubelet implements __alpha__ features for enabling rotation of both its client and/or serving certs. These can be enabled through the respective `RotateKubeletClientCertificate` and `RotateKubeletServerCertificate` feature diff --git a/content/zh/docs/concepts/configuration/taint-and-toleration.md b/content/zh/docs/concepts/configuration/taint-and-toleration.md index a3c0eda8dd..388bb057c0 100755 --- a/content/zh/docs/concepts/configuration/taint-and-toleration.md +++ b/content/zh/docs/concepts/configuration/taint-and-toleration.md @@ -357,7 +357,7 @@ based on the Ready NodeCondition is disabled. {{< note >}} **注意:** 如果您在 Minikube 上运行服务,您可以通过以下命令找到分配的 IP 地址和端口: {{< /note >}} diff --git a/content/zh/docs/tasks/access-application-cluster/list-all-running-container-images.md b/content/zh/docs/tasks/access-application-cluster/list-all-running-container-images.md index a376b4c098..fb3850c3b0 100644 --- a/content/zh/docs/tasks/access-application-cluster/list-all-running-container-images.md +++ b/content/zh/docs/tasks/access-application-cluster/list-all-running-container-images.md @@ -102,7 +102,7 @@ jsonpath 解释如下: {{< note >}} diff --git a/content/zh/docs/tasks/access-application-cluster/load-balance-access-application-cluster.md b/content/zh/docs/tasks/access-application-cluster/load-balance-access-application-cluster.md index 3308069220..b653c5aecb 100644 --- a/content/zh/docs/tasks/access-application-cluster/load-balance-access-application-cluster.md +++ b/content/zh/docs/tasks/access-application-cluster/load-balance-access-application-cluster.md @@ -109,7 +109,7 @@ load-balanced access to an application running in a cluster. {{< note >}} **注意:** 如果您使用 Minikube,那么您将不会获得外部 IP 地址。外部 IP 地址将保持 pending 状态。 @@ -139,7 +139,7 @@ load-balanced access to an application running in a cluster. {{< note >}} **注意:** 如果您使用 Minikube,输入以下命令: {{< /note >}} diff --git a/content/zh/docs/tasks/access-application-cluster/port-forward-access-application-cluster.md b/content/zh/docs/tasks/access-application-cluster/port-forward-access-application-cluster.md index 6bccf05cda..13eb4b1f49 100644 --- a/content/zh/docs/tasks/access-application-cluster/port-forward-access-application-cluster.md +++ b/content/zh/docs/tasks/access-application-cluster/port-forward-access-application-cluster.md @@ -200,7 +200,7 @@ local workstation to debug the database that is running in the pod. {{< warning >}} diff --git a/content/zh/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-1-9.md b/content/zh/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-1-9.md index 56dae7aa97..6cde6e07cc 100644 --- a/content/zh/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-1-9.md +++ b/content/zh/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-1-9.md @@ -54,7 +54,7 @@ Before proceeding: {{< caution >}} **注意:** 由于容器的具体哈希值改变了,所有的容器在升级之后会重新启动。 @@ -98,7 +98,7 @@ chmod a+rx /usr/bin/kubeadm {{< caution >}} **注意**: 示例中的 `net.ipv4.tcp_syncookies` 在Linux 内核 4.4 或更低的版本中是无命名空间的。 {{< /note >}} @@ -226,7 +226,7 @@ spec: {{< warning >}} @@ -299,7 +299,7 @@ given sysctl is both allowed and forbidden. {{< warning >}} @@ -174,7 +174,7 @@ In both cases, audit events structure is defined by the API in the {{< note >}} diff --git a/content/zh/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information.md b/content/zh/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information.md index a230f57afd..80e134d95e 100644 --- a/content/zh/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information.md +++ b/content/zh/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information.md @@ -184,7 +184,7 @@ kubectl exec -it kubernetes-downwardapi-volume-example-2 -- sh * Pod的注释 {{< note >}} -**Note:** 如果容器未指定CPU和memory limits,则Downward API默认为节点可分配值。 +如果容器未指定CPU和memory limits,则Downward API默认为节点可分配值。 {{< /note >}} ## 投射密钥到指定路径并且指定文件权限 diff --git a/layouts/shortcodes/caution.html b/layouts/shortcodes/caution.html index 4bc88c05fb..f31d09a273 100644 --- a/layouts/shortcodes/caution.html +++ b/layouts/shortcodes/caution.html @@ -1,3 +1,3 @@
-
{{ .Inner | markdownify }}
-
+
Caution: {{ .Inner | markdownify }}
+ \ No newline at end of file diff --git a/layouts/shortcodes/note.html b/layouts/shortcodes/note.html index 7c096dd8e4..745ef5e6b3 100644 --- a/layouts/shortcodes/note.html +++ b/layouts/shortcodes/note.html @@ -1,3 +1,3 @@
-
{{ .Inner | markdownify }}
+
Note: {{ .Inner | markdownify }}
diff --git a/layouts/shortcodes/warning.html b/layouts/shortcodes/warning.html index 6b4ea6a3dc..b90f76d49c 100644 --- a/layouts/shortcodes/warning.html +++ b/layouts/shortcodes/warning.html @@ -1,3 +1,3 @@
-
{{ .Inner | markdownify }}
+
Warning: {{ .Inner | markdownify }}
diff --git a/static/example-templates/example-tutorial-template.md b/static/example-templates/example-tutorial-template.md index 5795140d87..ec2b70cc8e 100644 --- a/static/example-templates/example-tutorial-template.md +++ b/static/example-templates/example-tutorial-template.md @@ -7,7 +7,9 @@ content_template: templates/tutorial {{% capture overview %}} -**NOTE:** Be sure to also [create an entry in the table of contents](/docs/home/contribute/write-new-topic/#creating-an-entry-in-the-table-of-contents) for your new document. +{{< note >}} +Be sure to also [create an entry in the table of contents](/docs/home/contribute/write-new-topic/#creating-an-entry-in-the-table-of-contents) for your new document. +{{< /note >}} This page shows how to ...