Skip to content

Commit

Permalink
Update documentation on node OS/arch labels (#12976)
Browse files Browse the repository at this point in the history
These labels have been promoted to GA:
kubernetes/enhancements#793
  • Loading branch information
yujuhong authored and k8s-ci-robot committed Mar 15, 2019
1 parent b37e645 commit ac99ed4
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 12 deletions.
4 changes: 2 additions & 2 deletions content/en/docs/concepts/configuration/assign-pod-node.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,8 @@ with a standard set of labels. As of Kubernetes v1.4 these labels are
* `failure-domain.beta.kubernetes.io/zone`
* `failure-domain.beta.kubernetes.io/region`
* `beta.kubernetes.io/instance-type`
* `beta.kubernetes.io/os`
* `beta.kubernetes.io/arch`
* `kubernetes.io/os`
* `kubernetes.io/arch`

{{< note >}}
The value of these labels is cloud provider specific and is not guaranteed to be reliable.
Expand Down
2 changes: 1 addition & 1 deletion content/en/docs/getting-started-guides/windows/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,7 @@ See [joining-your-nodes](https://kubernetes.io/docs/setup/independent/create-clu
The examples listed below assume running Windows nodes on Windows Server 1709. If you are running Windows Server 2016, the examples will need the image updated to specify `image: microsoft/windowsservercore:ltsc2016`. This is due to the requirement for container images to match the host operating system version when using process isolation. Not specifying a tag will implicitly use the `:latest` tag which can lead to surprising behaviors. Please consult with [https://hub.docker.com/r/microsoft/windowsservercore/](https://hub.docker.com/r/microsoft/windowsservercore/) for additional information on Windows Server Core image tagging.

### Scheduling Pods on Windows
Because your cluster has both Linux and Windows nodes, you must explicitly set the `nodeSelector` constraint to be able to schedule pods to Windows nodes. You must set nodeSelector with the label `beta.kubernetes.io/os` to the value `windows`; see the following example:
Because your cluster has both Linux and Windows nodes, you must explicitly set the `nodeSelector` constraint to be able to schedule pods to Windows nodes. You must set nodeSelector with the label `kubernetes.io/os` to the value `windows`; see the following example:

{{< codenew file="windows/simple-pod.yaml" >}}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -418,9 +418,9 @@ This label prefix is reserved for administrators to label their `Node` objects f
and kubelets will not be allowed to modify labels with that prefix.
* **Allows** kubelets to add/remove/update these labels and label prefixes:
* `kubernetes.io/hostname`
* `beta.kubernetes.io/arch`
* `kubernetes.io/arch`
* `kubernetes.io/os`
* `beta.kubernetes.io/instance-type`
* `beta.kubernetes.io/os`
* `failure-domain.beta.kubernetes.io/region`
* `failure-domain.beta.kubernetes.io/zone`
* `kubelet.kubernetes.io/`-prefixed labels
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,23 +11,32 @@ This document serves both as a reference to the values, and as a coordination po
{{% /capture %}}

{{% capture body %}}
## beta.kubernetes.io/arch
## kubernetes.io/arch

Example: `beta.kubernetes.io/arch=amd64`
Example: `kubernetes.io/arch=amd64`

Used on: Node

Kubelet populates this with `runtime.GOARCH` as defined by Go. This can be handy if you are mixing arm and x86 nodes,
for example.

## beta.kubernetes.io/os
## kubernetes.io/os

Example: `beta.kubernetes.io/os=linux`
Example: `kubernetes.io/os=linux`

Used on: Node

Kubelet populates this with `runtime.GOOS` as defined by Go. This can be handy if you are mixing operating systems
in your cluster (although currently Linux is the only OS supported by Kubernetes).
in your cluster (e.g., mixing Linux and Windows nodes).

## beta.kubernetes.io/arch (deprecated)

This label has been deprecated. Please use `kubernetes.io/arch` instead.

## beta.kubernetes.io/os (deprecated)

This label has been deprecated. Please use `kubernetes.io/os` instead.


## kubernetes.io/hostname

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -293,8 +293,8 @@ kubectl describe node kubernetes-node-861h
```none
Name: kubernetes-node-861h
Role
Labels: beta.kubernetes.io/arch=amd64
beta.kubernetes.io/os=linux
Labels: kubernetes.io/arch=amd64
kubernetes.io/os=linux
kubernetes.io/hostname=kubernetes-node-861h
Annotations: node.alpha.kubernetes.io/ttl=0
volumes.kubernetes.io/controller-managed-attach-detach=true
Expand Down

0 comments on commit ac99ed4

Please sign in to comment.