Consolidate YAML files [part-10] (#9362)
* Consolidate YAML files [part-10] This PR relocates the YAML files used by the pod configuration topic. * Update examples_test.go * Update examples_test.go * Update examples_test.go * Update examples_test.go * Update examples_test.go
This commit is contained in:
parent
0f5f027aee
commit
9b81aa7ccd
|
@ -71,7 +71,7 @@ In this exercise, you create a Pod that has one Container. The Container has a C
|
||||||
request of 0.5 cpu and a CPU limit of 1 cpu. Here's the configuration file
|
request of 0.5 cpu and a CPU limit of 1 cpu. Here's the configuration file
|
||||||
for the Pod:
|
for the Pod:
|
||||||
|
|
||||||
{{< code file="cpu-request-limit.yaml" >}}
|
{{< codenew file="pods/resource/cpu-request-limit.yaml" >}}
|
||||||
|
|
||||||
In the configuration file, the `args` section provides arguments for the Container when it starts.
|
In the configuration file, the `args` section provides arguments for the Container when it starts.
|
||||||
The `-cpus "2"` argument tells the Container to attempt to use 2 cpus.
|
The `-cpus "2"` argument tells the Container to attempt to use 2 cpus.
|
||||||
|
@ -79,7 +79,7 @@ The `-cpus "2"` argument tells the Container to attempt to use 2 cpus.
|
||||||
Create the Pod:
|
Create the Pod:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl create -f https://k8s.io/docs/tasks/configure-pod-container/cpu-request-limit.yaml --namespace=cpu-example
|
kubectl create -f https://k8s.io/examples/pods/resource/cpu-request-limit.yaml --namespace=cpu-example
|
||||||
```
|
```
|
||||||
|
|
||||||
Verify that the Pod's Container is running:
|
Verify that the Pod's Container is running:
|
||||||
|
@ -167,12 +167,12 @@ the capacity of any Node in your cluster. Here is the configuration file for a P
|
||||||
that has one Container. The Container requests 100 cpu, which is likely to exceed the
|
that has one Container. The Container requests 100 cpu, which is likely to exceed the
|
||||||
capacity of any Node in your cluster.
|
capacity of any Node in your cluster.
|
||||||
|
|
||||||
{{< code file="cpu-request-limit-2.yaml" >}}
|
{{< codenew file="pods/resource/cpu-request-limit-2.yaml" >}}
|
||||||
|
|
||||||
Create the Pod:
|
Create the Pod:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl create -f https://k8s.io/docs/tasks/configure-pod-container/cpu-request-limit-2.yaml --namespace=cpu-example
|
kubectl create -f https://k8s.io/examples/pods/resource/cpu-request-limit-2.yaml --namespace=cpu-example
|
||||||
```
|
```
|
||||||
|
|
||||||
View the Pod's status:
|
View the Pod's status:
|
||||||
|
|
|
@ -71,7 +71,7 @@ In this exercise, you create a Pod that has one Container. The Container has a m
|
||||||
request of 100 MiB and a memory limit of 200 MiB. Here's the configuration file
|
request of 100 MiB and a memory limit of 200 MiB. Here's the configuration file
|
||||||
for the Pod:
|
for the Pod:
|
||||||
|
|
||||||
{{< code file="memory-request-limit.yaml" >}}
|
{{< codenew file="pods/resource/memory-request-limit.yaml" >}}
|
||||||
|
|
||||||
In the configuration file, the `args` section provides arguments for the Container when it starts.
|
In the configuration file, the `args` section provides arguments for the Container when it starts.
|
||||||
The `"--vm-bytes", "150M"` arguments tell the Container to attempt to allocate 150 MiB of memory.
|
The `"--vm-bytes", "150M"` arguments tell the Container to attempt to allocate 150 MiB of memory.
|
||||||
|
@ -79,7 +79,7 @@ The `"--vm-bytes", "150M"` arguments tell the Container to attempt to allocate 1
|
||||||
Create the Pod:
|
Create the Pod:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl create -f https://k8s.io/docs/tasks/configure-pod-container/memory-request-limit.yaml --namespace=mem-example
|
kubectl create -f https://k8s.io/examples/pods/resource/memory-request-limit.yaml --namespace=mem-example
|
||||||
```
|
```
|
||||||
|
|
||||||
Verify that the Pod's Container is running:
|
Verify that the Pod's Container is running:
|
||||||
|
@ -142,7 +142,7 @@ In this exercise, you create a Pod that attempts to allocate more memory than it
|
||||||
Here is the configuration file for a Pod that has one Container. The Container has a
|
Here is the configuration file for a Pod that has one Container. The Container has a
|
||||||
memory request of 50 MiB and a memory limit of 100 MiB.
|
memory request of 50 MiB and a memory limit of 100 MiB.
|
||||||
|
|
||||||
{{< code file="memory-request-limit-2.yaml" >}}
|
{{< codenew file="pods/resource/memory-request-limit-2.yaml" >}}
|
||||||
|
|
||||||
In the configuration file, in the `args` section, you can see that the Container
|
In the configuration file, in the `args` section, you can see that the Container
|
||||||
will attempt to allocate 250 MiB of memory, which is well above the 100 MiB limit.
|
will attempt to allocate 250 MiB of memory, which is well above the 100 MiB limit.
|
||||||
|
@ -150,7 +150,7 @@ will attempt to allocate 250 MiB of memory, which is well above the 100 MiB limi
|
||||||
Create the Pod:
|
Create the Pod:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl create -f https://k8s.io/docs/tasks/configure-pod-container/memory-request-limit-2.yaml --namespace=mem-example
|
kubectl create -f https://k8s.io/examples/pods/resource/memory-request-limit-2.yaml --namespace=mem-example
|
||||||
```
|
```
|
||||||
|
|
||||||
View detailed information about the Pod:
|
View detailed information about the Pod:
|
||||||
|
@ -253,12 +253,12 @@ capacity of any Node in your cluster. Here is the configuration file for a Pod t
|
||||||
Container. The Container requests 1000 GiB of memory, which is likely to exceed the capacity
|
Container. The Container requests 1000 GiB of memory, which is likely to exceed the capacity
|
||||||
of any Node in your cluster.
|
of any Node in your cluster.
|
||||||
|
|
||||||
{{< code file="memory-request-limit-3.yaml" >}}
|
{{< codenew file="pods/resource/memory-request-limit-3.yaml" >}}
|
||||||
|
|
||||||
Create the Pod:
|
Create the Pod:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl create -f https://k8s.io/docs/tasks/configure-pod-container/memory-request-limit-3.yaml --namespace=mem-example
|
kubectl create -f https://k8s.io/examples/pods/resource/memory-request-limit-3.yaml --namespace=mem-example
|
||||||
```
|
```
|
||||||
|
|
||||||
View the Pod's status:
|
View the Pod's status:
|
||||||
|
|
|
@ -30,7 +30,7 @@ for the postStart and preStop events.
|
||||||
|
|
||||||
Here is the configuration file for the Pod:
|
Here is the configuration file for the Pod:
|
||||||
|
|
||||||
{{< code file="lifecycle-events.yaml" >}}
|
{{< codenew file="pods/lifecycle-events.yaml" >}}
|
||||||
|
|
||||||
In the configuration file, you can see that the postStart command writes a `message`
|
In the configuration file, you can see that the postStart command writes a `message`
|
||||||
file to the Container's `/usr/share` directory. The preStop command shuts down
|
file to the Container's `/usr/share` directory. The preStop command shuts down
|
||||||
|
@ -38,7 +38,7 @@ nginx gracefully. This is helpful if the Container is being terminated because o
|
||||||
|
|
||||||
Create the Pod:
|
Create the Pod:
|
||||||
|
|
||||||
kubectl create -f https://k8s.io/docs/tasks/configure-pod-container/lifecycle-events.yaml
|
kubectl create -f https://k8s.io/examples/pods/lifecycle-events.yaml
|
||||||
|
|
||||||
Verify that the Container in the Pod is running:
|
Verify that the Container in the Pod is running:
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ liveness probes to detect and remedy such situations.
|
||||||
In this exercise, you create a Pod that runs a Container based on the
|
In this exercise, you create a Pod that runs a Container based on the
|
||||||
`k8s.gcr.io/busybox` image. Here is the configuration file for the Pod:
|
`k8s.gcr.io/busybox` image. Here is the configuration file for the Pod:
|
||||||
|
|
||||||
{{< code file="exec-liveness.yaml" >}}
|
{{< codenew file="pods/probe/exec-liveness.yaml" >}}
|
||||||
|
|
||||||
In the configuration file, you can see that the Pod has a single Container.
|
In the configuration file, you can see that the Pod has a single Container.
|
||||||
The `periodSeconds` field specifies that the kubelet should perform a liveness
|
The `periodSeconds` field specifies that the kubelet should perform a liveness
|
||||||
|
@ -62,7 +62,7 @@ code. After 30 seconds, `cat /tmp/healthy` returns a failure code.
|
||||||
Create the Pod:
|
Create the Pod:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl create -f https://k8s.io/docs/tasks/configure-pod-container/exec-liveness.yaml
|
kubectl create -f https://k8s.io/examples/pods/probe/exec-liveness.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
Within 30 seconds, view the Pod events:
|
Within 30 seconds, view the Pod events:
|
||||||
|
@ -122,7 +122,7 @@ Another kind of liveness probe uses an HTTP GET request. Here is the configurati
|
||||||
file for a Pod that runs a container based on the `k8s.gcr.io/liveness`
|
file for a Pod that runs a container based on the `k8s.gcr.io/liveness`
|
||||||
image.
|
image.
|
||||||
|
|
||||||
{{< code file="http-liveness.yaml" >}}
|
{{< codenew file="pods/probe/http-liveness.yaml" >}}
|
||||||
|
|
||||||
In the configuration file, you can see that the Pod has a single Container.
|
In the configuration file, you can see that the Pod has a single Container.
|
||||||
The `periodSeconds` field specifies that the kubelet should perform a liveness
|
The `periodSeconds` field specifies that the kubelet should perform a liveness
|
||||||
|
@ -163,7 +163,7 @@ checks will fail, and the kubelet will kill and restart the Container.
|
||||||
To try the HTTP liveness check, create a Pod:
|
To try the HTTP liveness check, create a Pod:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl create -f https://k8s.io/docs/tasks/configure-pod-container/http-liveness.yaml
|
kubectl create -f https://k8s.io/examples/pods/probe/http-liveness.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
After 10 seconds, view Pod events to verify that liveness probes have failed and
|
After 10 seconds, view Pod events to verify that liveness probes have failed and
|
||||||
|
@ -180,7 +180,7 @@ kubelet will attempt to open a socket to your container on the specified port.
|
||||||
If it can establish a connection, the container is considered healthy, if it
|
If it can establish a connection, the container is considered healthy, if it
|
||||||
can’t it is considered a failure.
|
can’t it is considered a failure.
|
||||||
|
|
||||||
{{< code file="tcp-liveness-readiness.yaml" >}}
|
{{< codenew file="pods/probe/tcp-liveness-readiness.yaml" >}}
|
||||||
|
|
||||||
As you can see, configuration for a TCP check is quite similar to an HTTP check.
|
As you can see, configuration for a TCP check is quite similar to an HTTP check.
|
||||||
This example uses both readiness and liveness probes. The kubelet will send the
|
This example uses both readiness and liveness probes. The kubelet will send the
|
||||||
|
@ -198,7 +198,7 @@ will be restarted.
|
||||||
To try the TCP liveness check, create a Pod:
|
To try the TCP liveness check, create a Pod:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl create -f https://k8s.io/docs/tasks/configure-pod-container/tcp-liveness-readiness.yaml
|
kubectl create -f https://k8s.io/examples/pods/probe/tcp-liveness-readiness.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
After 15 seconds, view Pod events to verify that liveness probes:
|
After 15 seconds, view Pod events to verify that liveness probes:
|
||||||
|
|
|
@ -62,7 +62,7 @@ to set up
|
||||||
|
|
||||||
Here is the configuration file for the hostPath PersistentVolume:
|
Here is the configuration file for the hostPath PersistentVolume:
|
||||||
|
|
||||||
{{< code file="task-pv-volume.yaml" >}}
|
{{< codenew file="pods/storage/pv-volume.yaml" >}}
|
||||||
|
|
||||||
The configuration file specifies that the volume is at `/mnt/data` on the
|
The configuration file specifies that the volume is at `/mnt/data` on the
|
||||||
cluster's Node. The configuration also specifies a size of 10 gibibytes and
|
cluster's Node. The configuration also specifies a size of 10 gibibytes and
|
||||||
|
@ -73,7 +73,7 @@ PersistentVolumeClaim requests to this PersistentVolume.
|
||||||
|
|
||||||
Create the PersistentVolume:
|
Create the PersistentVolume:
|
||||||
|
|
||||||
kubectl create -f https://k8s.io/docs/tasks/configure-pod-container/task-pv-volume.yaml
|
kubectl create -f https://k8s.io/examples/pods/storage/pv-volume.yaml
|
||||||
|
|
||||||
View information about the PersistentVolume:
|
View information about the PersistentVolume:
|
||||||
|
|
||||||
|
@ -94,11 +94,11 @@ access for at least one Node.
|
||||||
|
|
||||||
Here is the configuration file for the PersistentVolumeClaim:
|
Here is the configuration file for the PersistentVolumeClaim:
|
||||||
|
|
||||||
{{< code file="task-pv-claim.yaml" >}}
|
{{< codenew file="pods/storage/pv-claim.yaml" >}}
|
||||||
|
|
||||||
Create the PersistentVolumeClaim:
|
Create the PersistentVolumeClaim:
|
||||||
|
|
||||||
kubectl create -f https://k8s.io/docs/tasks/configure-pod-container/task-pv-claim.yaml
|
kubectl create -f https://k8s.io/examples/pods/storage/pv-claim.yaml
|
||||||
|
|
||||||
After you create the PersistentVolumeClaim, the Kubernetes control plane looks
|
After you create the PersistentVolumeClaim, the Kubernetes control plane looks
|
||||||
for a PersistentVolume that satisfies the claim's requirements. If the control
|
for a PersistentVolume that satisfies the claim's requirements. If the control
|
||||||
|
@ -130,7 +130,7 @@ The next step is to create a Pod that uses your PersistentVolumeClaim as a volum
|
||||||
|
|
||||||
Here is the configuration file for the Pod:
|
Here is the configuration file for the Pod:
|
||||||
|
|
||||||
{{< code file="task-pv-pod.yaml" >}}
|
{{< codenew file="pods/storage/pv-pod.yaml" >}}
|
||||||
|
|
||||||
Notice that the Pod's configuration file specifies a PersistentVolumeClaim, but
|
Notice that the Pod's configuration file specifies a PersistentVolumeClaim, but
|
||||||
it does not specify a PersistentVolume. From the Pod's point of view, the claim
|
it does not specify a PersistentVolume. From the Pod's point of view, the claim
|
||||||
|
@ -138,7 +138,7 @@ is a volume.
|
||||||
|
|
||||||
Create the Pod:
|
Create the Pod:
|
||||||
|
|
||||||
kubectl create -f https://k8s.io/docs/tasks/configure-pod-container/task-pv-pod.yaml
|
kubectl create -f https://k8s.io/examples/pods/storage/pv-pod.yaml
|
||||||
|
|
||||||
Verify that the Container in the Pod is running;
|
Verify that the Container in the Pod is running;
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ container starts.
|
||||||
|
|
||||||
Here is the configuration file for the Pod:
|
Here is the configuration file for the Pod:
|
||||||
|
|
||||||
{{< code file="init-containers.yaml" >}}
|
{{< codenew file="pods/init-containers.yaml" >}}
|
||||||
|
|
||||||
In the configuration file, you can see that the Pod has a Volume that the init
|
In the configuration file, you can see that the Pod has a Volume that the init
|
||||||
container and the application container share.
|
container and the application container share.
|
||||||
|
@ -43,7 +43,7 @@ of the nginx server.
|
||||||
|
|
||||||
Create the Pod:
|
Create the Pod:
|
||||||
|
|
||||||
kubectl create -f https://k8s.io/docs/tasks/configure-pod-container/init-containers.yaml
|
kubectl create -f https://k8s.io/examples/pods/init-containers.yaml
|
||||||
|
|
||||||
Verify that the nginx container is running:
|
Verify that the nginx container is running:
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ In this exercise, you create username and password Secrets from local files. You
|
||||||
|
|
||||||
Here is the configuration file for the Pod:
|
Here is the configuration file for the Pod:
|
||||||
|
|
||||||
{{< code file="projected-volume.yaml" >}}
|
{{< codenew file="pods/storage/projected.yaml" >}}
|
||||||
|
|
||||||
1. Create the Secrets:
|
1. Create the Secrets:
|
||||||
```shell
|
```shell
|
||||||
|
@ -42,7 +42,7 @@ Here is the configuration file for the Pod:
|
||||||
```
|
```
|
||||||
1. Create the Pod:
|
1. Create the Pod:
|
||||||
```shell
|
```shell
|
||||||
kubectl create -f https://k8s.io/docs/tasks/configure-pod-container/projected-volume.yaml
|
kubectl create -f https://k8s.io/examples/pods/storage/projected.yaml
|
||||||
```
|
```
|
||||||
1. Verify that the Pod's Container is running, and then watch for changes to
|
1. Verify that the Pod's Container is running, and then watch for changes to
|
||||||
the Pod:
|
the Pod:
|
||||||
|
|
|
@ -33,11 +33,11 @@ Volume of type
|
||||||
that lasts for the life of the Pod, even if the Container terminates and
|
that lasts for the life of the Pod, even if the Container terminates and
|
||||||
restarts. Here is the configuration file for the Pod:
|
restarts. Here is the configuration file for the Pod:
|
||||||
|
|
||||||
{{< code file="pod-redis.yaml" >}}
|
{{< codenew file="pods/storage/redis.yaml" >}}
|
||||||
|
|
||||||
1. Create the Pod:
|
1. Create the Pod:
|
||||||
|
|
||||||
kubectl create -f https://k8s.io/docs/tasks/configure-pod-container/pod-redis.yaml
|
kubectl create -f https://k8s.io/examples/pods/storage/redis.yaml
|
||||||
|
|
||||||
1. Verify that the Pod's Container is running, and then watch for changes to
|
1. Verify that the Pod's Container is running, and then watch for changes to
|
||||||
the Pod:
|
the Pod:
|
||||||
|
|
|
@ -36,14 +36,14 @@ descriptive resource name.
|
||||||
|
|
||||||
Here is the configuration file for a Pod that has one Container:
|
Here is the configuration file for a Pod that has one Container:
|
||||||
|
|
||||||
{{< code file="extended-resource-pod.yaml" >}}
|
{{< codenew file="pods/resource/extended-resource-pod.yaml" >}}
|
||||||
|
|
||||||
In the configuration file, you can see that the Container requests 3 dongles.
|
In the configuration file, you can see that the Container requests 3 dongles.
|
||||||
|
|
||||||
Create a Pod:
|
Create a Pod:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl create -f https://k8s.io/docs/tasks/configure-pod-container/extended-resource-pod.yaml
|
kubectl create -f https://k8s.io/examples/pods/resource/extended-resource-pod.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
Verify that the Pod is running:
|
Verify that the Pod is running:
|
||||||
|
@ -72,7 +72,7 @@ Requests:
|
||||||
Here is the configuration file for a Pod that has one Container. The Container requests
|
Here is the configuration file for a Pod that has one Container. The Container requests
|
||||||
two dongles.
|
two dongles.
|
||||||
|
|
||||||
{{< code file="extended-resource-pod-2.yaml" >}}
|
{{< codenew file="pods/resource/extended-resource-pod-2.yaml" >}}
|
||||||
|
|
||||||
Kubernetes will not be able to satisfy the request for two dongles, because the first Pod
|
Kubernetes will not be able to satisfy the request for two dongles, because the first Pod
|
||||||
used three of the four available dongles.
|
used three of the four available dongles.
|
||||||
|
@ -80,7 +80,7 @@ used three of the four available dongles.
|
||||||
Attempt to create a Pod:
|
Attempt to create a Pod:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl create -f https://k8s.io/docs/tasks/configure-pod-container/extended-resource-pod-2.yaml
|
kubectl create -f https://k8s.io/examples/pods/resource/extended-resource-pod-2.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
Describe the Pod
|
Describe the Pod
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
apiVersion: v1
|
|
||||||
kind: LimitRange
|
|
||||||
metadata:
|
|
||||||
name: mem-limit-range
|
|
||||||
spec:
|
|
||||||
limits:
|
|
||||||
- default:
|
|
||||||
memory: 512Mi
|
|
||||||
defaultRequest:
|
|
||||||
memory: 256Mi
|
|
||||||
type: Container
|
|
|
@ -112,11 +112,11 @@ You have successfully set your Docker credentials as a Secret called `regcred` i
|
||||||
|
|
||||||
Here is a configuration file for a Pod that needs access to your Docker credentials in `regcred`:
|
Here is a configuration file for a Pod that needs access to your Docker credentials in `regcred`:
|
||||||
|
|
||||||
{{< code file="private-reg-pod.yaml" >}}
|
{{< codenew file="pods/private-reg-pod.yaml" >}}
|
||||||
|
|
||||||
Download the above file:
|
Download the above file:
|
||||||
|
|
||||||
wget -O my-private-reg-pod.yaml https://k8s.io/docs/tasks/configure-pod-container/private-reg-pod.yaml
|
wget -O my-private-reg-pod.yaml https://k8s.io/examples/pods/private-reg-pod.yaml
|
||||||
|
|
||||||
In file `my-private-reg-pod.yaml`, replace `<your-private-image>` with the path to an image in a private registry such as:
|
In file `my-private-reg-pod.yaml`, replace `<your-private-image>` with the path to an image in a private registry such as:
|
||||||
|
|
||||||
|
@ -142,4 +142,3 @@ Create a Pod that uses your Secret, and verify that the Pod is running:
|
||||||
|
|
||||||
{{% /capture %}}
|
{{% /capture %}}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -50,12 +50,12 @@ For a Pod to be given a QoS class of Guaranteed:
|
||||||
Here is the configuration file for a Pod that has one Container. The Container has a memory limit and a
|
Here is the configuration file for a Pod that has one Container. The Container has a memory limit and a
|
||||||
memory request, both equal to 200 MiB. The Container has a cpu limit and a cpu request, both equal to 700 millicpu:
|
memory request, both equal to 200 MiB. The Container has a cpu limit and a cpu request, both equal to 700 millicpu:
|
||||||
|
|
||||||
{{< code file="qos-pod.yaml" >}}
|
{{< codenew file="pods/qos/qos-pod.yaml" >}}
|
||||||
|
|
||||||
Create the Pod:
|
Create the Pod:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl create -f https://k8s.io/docs/tasks/configure-pod-container/qos-pod.yaml --namespace=qos-example
|
kubectl create -f https://k8s.io/examples/pods/qos/qos-pod.yaml --namespace=qos-example
|
||||||
```
|
```
|
||||||
|
|
||||||
View detailed information about the Pod:
|
View detailed information about the Pod:
|
||||||
|
@ -106,12 +106,12 @@ A Pod is given a QoS class of Burstable if:
|
||||||
Here is the configuration file for a Pod that has one Container. The Container has a memory limit of 200 MiB
|
Here is the configuration file for a Pod that has one Container. The Container has a memory limit of 200 MiB
|
||||||
and a memory request of 100 MiB.
|
and a memory request of 100 MiB.
|
||||||
|
|
||||||
{{< code file="qos-pod-2.yaml" >}}
|
{{< codenew file="pods/qos/qos-pod-2.yaml" >}}
|
||||||
|
|
||||||
Create the Pod:
|
Create the Pod:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl create -f https://k8s.io/docs/tasks/configure-pod-container/qos-pod-2.yaml --namespace=qos-example
|
kubectl create -f https://k8s.io/examples/pods/qos/qos-pod-2.yaml --namespace=qos-example
|
||||||
```
|
```
|
||||||
|
|
||||||
View detailed information about the Pod:
|
View detailed information about the Pod:
|
||||||
|
@ -151,12 +151,12 @@ have any memory or cpu limits or requests.
|
||||||
Here is the configuration file for a Pod that has one Container. The Container has no memory or cpu
|
Here is the configuration file for a Pod that has one Container. The Container has no memory or cpu
|
||||||
limits or requests:
|
limits or requests:
|
||||||
|
|
||||||
{{< code file="qos-pod-3.yaml" >}}
|
{{< codenew file="pods/qos/qos-pod-3.yaml" >}}
|
||||||
|
|
||||||
Create the Pod:
|
Create the Pod:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl create -f https://k8s.io/docs/tasks/configure-pod-container/qos-pod-3.yaml --namespace=qos-example
|
kubectl create -f https://k8s.io/examples/pods/qos/qos-pod-3.yaml --namespace=qos-example
|
||||||
```
|
```
|
||||||
|
|
||||||
View detailed information about the Pod:
|
View detailed information about the Pod:
|
||||||
|
@ -187,7 +187,7 @@ kubectl delete pod qos-demo-3 --namespace=qos-example
|
||||||
Here is the configuration file for a Pod that has two Containers. One container specifies a memory
|
Here is the configuration file for a Pod that has two Containers. One container specifies a memory
|
||||||
request of 200 MiB. The other Container does not specify any requests or limits.
|
request of 200 MiB. The other Container does not specify any requests or limits.
|
||||||
|
|
||||||
{{< code file="qos-pod-4.yaml" >}}
|
{{< codenew file="pods/qos/qos-pod-4.yaml" >}}
|
||||||
|
|
||||||
Notice that this Pod meets the criteria for QoS class Burstable. That is, it does not meet the
|
Notice that this Pod meets the criteria for QoS class Burstable. That is, it does not meet the
|
||||||
criteria for QoS class Guaranteed, and one of its Containers has a memory request.
|
criteria for QoS class Guaranteed, and one of its Containers has a memory request.
|
||||||
|
@ -195,7 +195,7 @@ criteria for QoS class Guaranteed, and one of its Containers has a memory reques
|
||||||
Create the Pod:
|
Create the Pod:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl create -f https://k8s.io/docs/tasks/configure-pod-container/qos-pod-4.yaml --namespace=qos-example
|
kubectl create -f https://k8s.io/examples/pods/qos/qos-pod-4.yaml --namespace=qos-example
|
||||||
```
|
```
|
||||||
|
|
||||||
View detailed information about the Pod:
|
View detailed information about the Pod:
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
apiVersion: v1
|
|
||||||
kind: ResourceQuota
|
|
||||||
metadata:
|
|
||||||
name: compute-resources
|
|
||||||
spec:
|
|
||||||
hard:
|
|
||||||
pods: "4"
|
|
||||||
requests.cpu: "1"
|
|
||||||
requests.memory: 1Gi
|
|
||||||
limits.cpu: "2"
|
|
||||||
limits.memory: 2Gi
|
|
|
@ -49,7 +49,7 @@ in the Pod specification. The `securityContext` field is a
|
||||||
The security settings that you specify for a Pod apply to all Containers in the Pod.
|
The security settings that you specify for a Pod apply to all Containers in the Pod.
|
||||||
Here is a configuration file for a Pod that has a `securityContext` and an `emptyDir` volume:
|
Here is a configuration file for a Pod that has a `securityContext` and an `emptyDir` volume:
|
||||||
|
|
||||||
{{< code file="security-context.yaml" >}}
|
{{< codenew file="pods/security/security-context.yaml" >}}
|
||||||
|
|
||||||
In the configuration file, the `runAsUser` field specifies that for any Containers in
|
In the configuration file, the `runAsUser` field specifies that for any Containers in
|
||||||
the Pod, the first process runs with user ID 1000. The `fsGroup` field specifies that
|
the Pod, the first process runs with user ID 1000. The `fsGroup` field specifies that
|
||||||
|
@ -60,7 +60,7 @@ volume.
|
||||||
Create the Pod:
|
Create the Pod:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl create -f https://k8s.io/docs/tasks/configure-pod-container/security-context.yaml
|
kubectl create -f https://k8s.io/examples/pods/security/security-context.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
Verify that the Pod's Container is running:
|
Verify that the Pod's Container is running:
|
||||||
|
@ -141,12 +141,12 @@ there is overlap. Container settings do not affect the Pod's Volumes.
|
||||||
Here is the configuration file for a Pod that has one Container. Both the Pod
|
Here is the configuration file for a Pod that has one Container. Both the Pod
|
||||||
and the Container have a `securityContext` field:
|
and the Container have a `securityContext` field:
|
||||||
|
|
||||||
{{< code file="security-context-2.yaml" >}}
|
{{< codenew file="pods/security/security-context-2.yaml" >}}
|
||||||
|
|
||||||
Create the Pod:
|
Create the Pod:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl create -f https://k8s.io/docs/tasks/configure-pod-container/security-context-2.yaml
|
kubectl create -f https://k8s.io/examples/pods/security/security-context-2.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
Verify that the Pod's Container is running:
|
Verify that the Pod's Container is running:
|
||||||
|
@ -194,12 +194,12 @@ of the root user. To add or remove Linux capabilities for a Container, include t
|
||||||
First, see what happens when you don't include a `capabilities` field.
|
First, see what happens when you don't include a `capabilities` field.
|
||||||
Here is configuration file that does not add or remove any Container capabilities:
|
Here is configuration file that does not add or remove any Container capabilities:
|
||||||
|
|
||||||
{{< code file="security-context-3.yaml" >}}
|
{{< codenew file="pods/security/security-context-3.yaml" >}}
|
||||||
|
|
||||||
Create the Pod:
|
Create the Pod:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl create -f https://k8s.io/docs/tasks/configure-pod-container/security-context-3.yaml
|
kubectl create -f https://k8s.io/examples/pods/security/security-context-3.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
Verify that the Pod's Container is running:
|
Verify that the Pod's Container is running:
|
||||||
|
@ -256,12 +256,12 @@ that it has additional capabilities set.
|
||||||
Here is the configuration file for a Pod that runs one Container. The configuration
|
Here is the configuration file for a Pod that runs one Container. The configuration
|
||||||
adds the `CAP_NET_ADMIN` and `CAP_SYS_TIME` capabilities:
|
adds the `CAP_NET_ADMIN` and `CAP_SYS_TIME` capabilities:
|
||||||
|
|
||||||
{{< code file="security-context-4.yaml" >}}
|
{{< codenew file="pods/security/security-context-4.yaml" >}}
|
||||||
|
|
||||||
Create the Pod:
|
Create the Pod:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl create -f https://k8s.io/docs/tasks/configure-pod-container/security-context-4.yaml
|
kubectl create -f https://k8s.io/examples/pods/security/security-context-4.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
Get a shell into the running Container:
|
Get a shell into the running Container:
|
||||||
|
|
|
@ -39,16 +39,21 @@ across the system: `--feature-gates=PodShareProcessNamespace=true`.
|
||||||
Process Namespace Sharing is enabled using the `ShareProcessNamespace` field of
|
Process Namespace Sharing is enabled using the `ShareProcessNamespace` field of
|
||||||
`v1.PodSpec`. For example:
|
`v1.PodSpec`. For example:
|
||||||
|
|
||||||
{{< code file="share-process-namespace.yaml" >}}
|
{{< codenew file="pods/share-process-namespace.yaml" >}}
|
||||||
|
|
||||||
1. Create the pod `nginx` on your cluster:
|
1. Create the pod `nginx` on your cluster:
|
||||||
|
|
||||||
$ kubectl create -f https://k8s.io/docs/tasks/configure-pod-container/share-process-namespace.yaml
|
kubectl create -f https://k8s.io/examples/pods/share-process-namespace.yaml
|
||||||
|
|
||||||
1. Attach to the `shell` container and run `ps`:
|
1. Attach to the `shell` container and run `ps`:
|
||||||
|
|
||||||
$ kubectl attach -it nginx -c shell
|
```
|
||||||
|
kubectl attach -it nginx -c shell
|
||||||
|
```
|
||||||
|
|
||||||
If you don't see a command prompt, try pressing enter.
|
If you don't see a command prompt, try pressing enter.
|
||||||
|
|
||||||
|
```
|
||||||
/ # ps ax
|
/ # ps ax
|
||||||
PID USER TIME COMMAND
|
PID USER TIME COMMAND
|
||||||
1 root 0:00 /pause
|
1 root 0:00 /pause
|
||||||
|
@ -56,6 +61,7 @@ Process Namespace Sharing is enabled using the `ShareProcessNamespace` field of
|
||||||
14 101 0:00 nginx: worker process
|
14 101 0:00 nginx: worker process
|
||||||
15 root 0:00 sh
|
15 root 0:00 sh
|
||||||
21 root 0:00 ps ax
|
21 root 0:00 ps ax
|
||||||
|
```
|
||||||
|
|
||||||
You can signal processes in other containers. For example, send `SIGHUP` to
|
You can signal processes in other containers. For example, send `SIGHUP` to
|
||||||
nginx to restart the worker process. This requires the `SYS_PTRACE` capability.
|
nginx to restart the worker process. This requires the `SYS_PTRACE` capability.
|
||||||
|
|
|
@ -379,38 +379,29 @@ func TestExampleObjectSchemas(t *testing.T) {
|
||||||
"quota-pod-deployment": {&extensions.Deployment{}},
|
"quota-pod-deployment": {&extensions.Deployment{}},
|
||||||
"quota-pvc-2": {&api.PersistentVolumeClaim{}},
|
"quota-pvc-2": {&api.PersistentVolumeClaim{}},
|
||||||
},
|
},
|
||||||
"docs/tasks/configure-pod-container": {
|
// TODO: decide whether federation examples should be added
|
||||||
"cpu-request-limit": {&api.Pod{}},
|
"docs/tasks/inject-data-application": {
|
||||||
"cpu-request-limit-2": {&api.Pod{}},
|
"commands": {&api.Pod{}},
|
||||||
"exec-liveness": {&api.Pod{}},
|
"dapi-envars-container": {&api.Pod{}},
|
||||||
"extended-resource-pod": {&api.Pod{}},
|
"dapi-envars-pod": {&api.Pod{}},
|
||||||
"extended-resource-pod-2": {&api.Pod{}},
|
"dapi-volume": {&api.Pod{}},
|
||||||
"http-liveness": {&api.Pod{}},
|
"dapi-volume-resources": {&api.Pod{}},
|
||||||
"init-containers": {&api.Pod{}},
|
"envars": {&api.Pod{}},
|
||||||
"lifecycle-events": {&api.Pod{}},
|
"podpreset-allow-db": {&settings.PodPreset{}},
|
||||||
"mem-limit-range": {&api.LimitRange{}},
|
"podpreset-allow-db-merged": {&api.Pod{}},
|
||||||
"memory-request-limit": {&api.Pod{}},
|
"podpreset-configmap": {&api.ConfigMap{}},
|
||||||
"memory-request-limit-2": {&api.Pod{}},
|
"podpreset-conflict-pod": {&api.Pod{}},
|
||||||
"memory-request-limit-3": {&api.Pod{}},
|
"podpreset-conflict-preset": {&settings.PodPreset{}},
|
||||||
"oir-pod": {&api.Pod{}},
|
"podpreset-merged": {&api.Pod{}},
|
||||||
"oir-pod-2": {&api.Pod{}},
|
"podpreset-multi-merged": {&api.Pod{}},
|
||||||
"pod-redis": {&api.Pod{}},
|
"podpreset-pod": {&api.Pod{}},
|
||||||
"private-reg-pod": {&api.Pod{}},
|
"podpreset-preset": {&settings.PodPreset{}},
|
||||||
"projected-volume": {&api.Pod{}},
|
"podpreset-proxy": {&settings.PodPreset{}},
|
||||||
"qos-pod": {&api.Pod{}},
|
"podpreset-replicaset-merged": {&api.Pod{}},
|
||||||
"qos-pod-2": {&api.Pod{}},
|
"podpreset-replicaset": {&extensions.ReplicaSet{}},
|
||||||
"qos-pod-3": {&api.Pod{}},
|
"secret": {&api.Secret{}},
|
||||||
"qos-pod-4": {&api.Pod{}},
|
"secret-envars-pod": {&api.Pod{}},
|
||||||
"rq-compute-resources": {&api.ResourceQuota{}},
|
"secret-pod": {&api.Pod{}},
|
||||||
"security-context": {&api.Pod{}},
|
|
||||||
"security-context-2": {&api.Pod{}},
|
|
||||||
"security-context-3": {&api.Pod{}},
|
|
||||||
"security-context-4": {&api.Pod{}},
|
|
||||||
"share-process-namespace": {&api.Pod{}},
|
|
||||||
"task-pv-claim": {&api.PersistentVolumeClaim{}},
|
|
||||||
"task-pv-pod": {&api.Pod{}},
|
|
||||||
"task-pv-volume": {&api.PersistentVolume{}},
|
|
||||||
"tcp-liveness-readiness": {&api.Pod{}},
|
|
||||||
},
|
},
|
||||||
"examples/application/job": {
|
"examples/application/job": {
|
||||||
"job-tmpl": {&batch.Job{}},
|
"job-tmpl": {&batch.Job{}},
|
||||||
|
@ -464,35 +455,48 @@ func TestExampleObjectSchemas(t *testing.T) {
|
||||||
"replication": {&api.ReplicationController{}},
|
"replication": {&api.ReplicationController{}},
|
||||||
"nginx-deployment": {&extensions.Deployment{}},
|
"nginx-deployment": {&extensions.Deployment{}},
|
||||||
},
|
},
|
||||||
"examples/podpreset": {
|
|
||||||
"allow-db": {&settings.PodPreset{}},
|
|
||||||
"allow-db-merged": {&api.Pod{}},
|
|
||||||
"configmap": {&api.ConfigMap{}},
|
|
||||||
"conflict-pod": {&api.Pod{}},
|
|
||||||
"conflict-preset": {&settings.PodPreset{}},
|
|
||||||
"merged": {&api.Pod{}},
|
|
||||||
"multi-merged": {&api.Pod{}},
|
|
||||||
"pod": {&api.Pod{}},
|
|
||||||
"preset": {&settings.PodPreset{}},
|
|
||||||
"proxy": {&settings.PodPreset{}},
|
|
||||||
"replicaset-merged": {&api.Pod{}},
|
|
||||||
"replicaset": {&extensions.ReplicaSet{}},
|
|
||||||
},
|
|
||||||
"examples/pods": {
|
"examples/pods": {
|
||||||
"commands": {&api.Pod{}},
|
"commands": {&api.Pod{}},
|
||||||
|
"init-containers": {&api.Pod{}},
|
||||||
|
"lifecycle-events": {&api.Pod{}},
|
||||||
"pod-nginx": {&api.Pod{}},
|
"pod-nginx": {&api.Pod{}},
|
||||||
"pod-with-node-affinity": {&api.Pod{}},
|
"pod-with-node-affinity": {&api.Pod{}},
|
||||||
"pod-with-pod-affinity": {&api.Pod{}},
|
"pod-with-pod-affinity": {&api.Pod{}},
|
||||||
|
"private-reg-pod": {&api.Pod{}},
|
||||||
|
"share-process-namespace": {&api.Pod{}},
|
||||||
},
|
},
|
||||||
"examples/pods/inject": {
|
"examples/pods/probe": {
|
||||||
"dapi-envars-container": {&api.Pod{}},
|
"exec-liveness": {&api.Pod{}},
|
||||||
"dapi-envars-pod": {&api.Pod{}},
|
"http-liveness": {&api.Pod{}},
|
||||||
"dapi-volume": {&api.Pod{}},
|
"tcp-liveness-readiness": {&api.Pod{}},
|
||||||
"dapi-volume-resources": {&api.Pod{}},
|
},
|
||||||
"envars": {&api.Pod{}},
|
"examples/pods/qos": {
|
||||||
"secret": {&api.Secret{}},
|
"qos-pod": {&api.Pod{}},
|
||||||
"secret-envars-pod": {&api.Pod{}},
|
"qos-pod-2": {&api.Pod{}},
|
||||||
"secret-pod": {&api.Pod{}},
|
"qos-pod-3": {&api.Pod{}},
|
||||||
|
"qos-pod-4": {&api.Pod{}},
|
||||||
|
},
|
||||||
|
"examples/pods/resource": {
|
||||||
|
"cpu-request-limit": {&api.Pod{}},
|
||||||
|
"cpu-request-limit-2": {&api.Pod{}},
|
||||||
|
"memory-request-limit": {&api.Pod{}},
|
||||||
|
"memory-request-limit-2": {&api.Pod{}},
|
||||||
|
"memory-request-limit-3": {&api.Pod{}},
|
||||||
|
"extended-resource-pod": {&api.Pod{}},
|
||||||
|
"extended-resource-pod-2": {&api.Pod{}},
|
||||||
|
},
|
||||||
|
"examples/pods/security": {
|
||||||
|
"security-context": {&api.Pod{}},
|
||||||
|
"security-context-2": {&api.Pod{}},
|
||||||
|
"security-context-3": {&api.Pod{}},
|
||||||
|
"security-context-4": {&api.Pod{}},
|
||||||
|
},
|
||||||
|
"examples/pods/storage": {
|
||||||
|
"projected": {&api.Pod{}},
|
||||||
|
"pv-claim": {&api.PersistentVolumeClaim{}},
|
||||||
|
"pv-pod": {&api.Pod{}},
|
||||||
|
"pv-volume": {&api.PersistentVolume{}},
|
||||||
|
"redis": {&api.Pod{}},
|
||||||
},
|
},
|
||||||
"examples/policy": {
|
"examples/policy": {
|
||||||
"privileged-psp": {&policy.PodSecurityPolicy{}},
|
"privileged-psp": {&policy.PodSecurityPolicy{}},
|
||||||
|
|
Loading…
Reference in New Issue