Update nginx to modern versions (#19198)
* update nginx versions * update * update examples
This commit is contained in:
@@ -186,7 +186,7 @@ metadata:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: nginx
|
- name: nginx
|
||||||
image: nginx:1.13-alpine
|
image: nginx:1.16-alpine
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
|
|||||||
@@ -424,16 +424,16 @@ At some point, you'll eventually need to update your deployed application, typic
|
|||||||
|
|
||||||
We'll guide you through how to create and update applications with Deployments.
|
We'll guide you through how to create and update applications with Deployments.
|
||||||
|
|
||||||
Let's say you were running version 1.7.9 of nginx:
|
Let's say you were running version 1.14.2 of nginx:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl run my-nginx --image=nginx:1.7.9 --replicas=3
|
kubectl run my-nginx --image=nginx:1.14.2 --replicas=3
|
||||||
```
|
```
|
||||||
```shell
|
```shell
|
||||||
deployment.apps/my-nginx created
|
deployment.apps/my-nginx created
|
||||||
```
|
```
|
||||||
|
|
||||||
To update to version 1.9.1, simply change `.spec.template.spec.containers[0].image` from `nginx:1.7.9` to `nginx:1.9.1`, with the kubectl commands we learned above.
|
To update to version 1.16.1, simply change `.spec.template.spec.containers[0].image` from `nginx:1.14.2` to `nginx:1.16.1`, with the kubectl commands we learned above.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl edit deployment/my-nginx
|
kubectl edit deployment/my-nginx
|
||||||
|
|||||||
@@ -319,7 +319,7 @@ spec:
|
|||||||
topologyKey: "kubernetes.io/hostname"
|
topologyKey: "kubernetes.io/hostname"
|
||||||
containers:
|
containers:
|
||||||
- name: web-app
|
- name: web-app
|
||||||
image: nginx:1.12-alpine
|
image: nginx:1.16-alpine
|
||||||
```
|
```
|
||||||
|
|
||||||
If we create the above two deployments, our three node cluster should look like below.
|
If we create the above two deployments, our three node cluster should look like below.
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ metadata:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: nginx
|
- name: nginx
|
||||||
image: nginx:1.7.9
|
image: nginx:1.14.2
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
|
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ metadata:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: nginx
|
- name: nginx
|
||||||
image: nginx:1.7.9
|
image: nginx:1.14.2
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
|
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ metadata:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: nginx
|
- name: nginx
|
||||||
image: nginx:1.7.9
|
image: nginx:1.14.2
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ In this example:
|
|||||||
* The Pods are labeled `app: nginx`using the `labels` field.
|
* The Pods are labeled `app: nginx`using the `labels` field.
|
||||||
* The Pod template's specification, or `.template.spec` field, indicates that
|
* The Pod template's specification, or `.template.spec` field, indicates that
|
||||||
the Pods run one container, `nginx`, which runs the `nginx`
|
the Pods run one container, `nginx`, which runs the `nginx`
|
||||||
[Docker Hub](https://hub.docker.com/) image at version 1.7.9.
|
[Docker Hub](https://hub.docker.com/) image at version 1.14.2.
|
||||||
* Create one container and name it `nginx` using the `name` field.
|
* Create one container and name it `nginx` using the `name` field.
|
||||||
|
|
||||||
Follow the steps given below to create the above Deployment:
|
Follow the steps given below to create the above Deployment:
|
||||||
@@ -153,15 +153,15 @@ is changed, for example if the labels or container images of the template are up
|
|||||||
|
|
||||||
Follow the steps given below to update your Deployment:
|
Follow the steps given below to update your Deployment:
|
||||||
|
|
||||||
1. Let's update the nginx Pods to use the `nginx:1.9.1` image instead of the `nginx:1.7.9` image.
|
1. Let's update the nginx Pods to use the `nginx:1.16.1` image instead of the `nginx:1.14.2` image.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl --record deployment.apps/nginx-deployment set image deployment.v1.apps/nginx-deployment nginx=nginx:1.9.1
|
kubectl --record deployment.apps/nginx-deployment set image deployment.v1.apps/nginx-deployment nginx=nginx:1.16.1
|
||||||
```
|
```
|
||||||
or simply use the following command:
|
or simply use the following command:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl set image deployment/nginx-deployment nginx=nginx:1.9.1 --record
|
kubectl set image deployment/nginx-deployment nginx=nginx:1.16.1 --record
|
||||||
```
|
```
|
||||||
|
|
||||||
The output is similar to this:
|
The output is similar to this:
|
||||||
@@ -169,7 +169,7 @@ Follow the steps given below to update your Deployment:
|
|||||||
deployment.apps/nginx-deployment image updated
|
deployment.apps/nginx-deployment image updated
|
||||||
```
|
```
|
||||||
|
|
||||||
Alternatively, you can `edit` the Deployment and change `.spec.template.spec.containers[0].image` from `nginx:1.7.9` to `nginx:1.9.1`:
|
Alternatively, you can `edit` the Deployment and change `.spec.template.spec.containers[0].image` from `nginx:1.14.2` to `nginx:1.16.1`:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl edit deployment.v1.apps/nginx-deployment
|
kubectl edit deployment.v1.apps/nginx-deployment
|
||||||
@@ -265,7 +265,7 @@ up to 3 replicas, as well as scaling down the old ReplicaSet to 0 replicas.
|
|||||||
Labels: app=nginx
|
Labels: app=nginx
|
||||||
Containers:
|
Containers:
|
||||||
nginx:
|
nginx:
|
||||||
Image: nginx:1.9.1
|
Image: nginx:1.16.1
|
||||||
Port: 80/TCP
|
Port: 80/TCP
|
||||||
Environment: <none>
|
Environment: <none>
|
||||||
Mounts: <none>
|
Mounts: <none>
|
||||||
@@ -306,11 +306,11 @@ If you update a Deployment while an existing rollout is in progress, the Deploym
|
|||||||
as per the update and start scaling that up, and rolls over the ReplicaSet that it was scaling up previously
|
as per the update and start scaling that up, and rolls over the ReplicaSet that it was scaling up previously
|
||||||
-- it will add it to its list of old ReplicaSets and start scaling it down.
|
-- it will add it to its list of old ReplicaSets and start scaling it down.
|
||||||
|
|
||||||
For example, suppose you create a Deployment to create 5 replicas of `nginx:1.7.9`,
|
For example, suppose you create a Deployment to create 5 replicas of `nginx:1.14.2`,
|
||||||
but then update the Deployment to create 5 replicas of `nginx:1.9.1`, when only 3
|
but then update the Deployment to create 5 replicas of `nginx:1.16.1`, when only 3
|
||||||
replicas of `nginx:1.7.9` had been created. In that case, the Deployment immediately starts
|
replicas of `nginx:1.14.2` had been created. In that case, the Deployment immediately starts
|
||||||
killing the 3 `nginx:1.7.9` Pods that it had created, and starts creating
|
killing the 3 `nginx:1.14.2` Pods that it had created, and starts creating
|
||||||
`nginx:1.9.1` Pods. It does not wait for the 5 replicas of `nginx:1.7.9` to be created
|
`nginx:1.16.1` Pods. It does not wait for the 5 replicas of `nginx:1.14.2` to be created
|
||||||
before changing course.
|
before changing course.
|
||||||
|
|
||||||
### Label selector updates
|
### Label selector updates
|
||||||
@@ -347,10 +347,10 @@ This means that when you roll back to an earlier revision, only the Deployment's
|
|||||||
rolled back.
|
rolled back.
|
||||||
{{< /note >}}
|
{{< /note >}}
|
||||||
|
|
||||||
* Suppose that you made a typo while updating the Deployment, by putting the image name as `nginx:1.91` instead of `nginx:1.9.1`:
|
* Suppose that you made a typo while updating the Deployment, by putting the image name as `nginx:1.161` instead of `nginx:1.16.1`:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.91 --record=true
|
kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.161 --record=true
|
||||||
```
|
```
|
||||||
|
|
||||||
The output is similar to this:
|
The output is similar to this:
|
||||||
@@ -427,7 +427,7 @@ rolled back.
|
|||||||
Labels: app=nginx
|
Labels: app=nginx
|
||||||
Containers:
|
Containers:
|
||||||
nginx:
|
nginx:
|
||||||
Image: nginx:1.91
|
Image: nginx:1.161
|
||||||
Port: 80/TCP
|
Port: 80/TCP
|
||||||
Host Port: 0/TCP
|
Host Port: 0/TCP
|
||||||
Environment: <none>
|
Environment: <none>
|
||||||
@@ -468,13 +468,13 @@ Follow the steps given below to check the rollout history:
|
|||||||
deployments "nginx-deployment"
|
deployments "nginx-deployment"
|
||||||
REVISION CHANGE-CAUSE
|
REVISION CHANGE-CAUSE
|
||||||
1 kubectl apply --filename=https://k8s.io/examples/controllers/nginx-deployment.yaml --record=true
|
1 kubectl apply --filename=https://k8s.io/examples/controllers/nginx-deployment.yaml --record=true
|
||||||
2 kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.9.1 --record=true
|
2 kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.16.1 --record=true
|
||||||
3 kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.91 --record=true
|
3 kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.161 --record=true
|
||||||
```
|
```
|
||||||
|
|
||||||
`CHANGE-CAUSE` is copied from the Deployment annotation `kubernetes.io/change-cause` to its revisions upon creation. You can specify the`CHANGE-CAUSE` message by:
|
`CHANGE-CAUSE` is copied from the Deployment annotation `kubernetes.io/change-cause` to its revisions upon creation. You can specify the`CHANGE-CAUSE` message by:
|
||||||
|
|
||||||
* Annotating the Deployment with `kubectl annotate deployment.v1.apps/nginx-deployment kubernetes.io/change-cause="image updated to 1.9.1"`
|
* Annotating the Deployment with `kubectl annotate deployment.v1.apps/nginx-deployment kubernetes.io/change-cause="image updated to 1.16.1"`
|
||||||
* Append the `--record` flag to save the `kubectl` command that is making changes to the resource.
|
* Append the `--record` flag to save the `kubectl` command that is making changes to the resource.
|
||||||
* Manually editing the manifest of the resource.
|
* Manually editing the manifest of the resource.
|
||||||
|
|
||||||
@@ -488,10 +488,10 @@ Follow the steps given below to check the rollout history:
|
|||||||
deployments "nginx-deployment" revision 2
|
deployments "nginx-deployment" revision 2
|
||||||
Labels: app=nginx
|
Labels: app=nginx
|
||||||
pod-template-hash=1159050644
|
pod-template-hash=1159050644
|
||||||
Annotations: kubernetes.io/change-cause=kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.9.1 --record=true
|
Annotations: kubernetes.io/change-cause=kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.16.1 --record=true
|
||||||
Containers:
|
Containers:
|
||||||
nginx:
|
nginx:
|
||||||
Image: nginx:1.9.1
|
Image: nginx:1.16.1
|
||||||
Port: 80/TCP
|
Port: 80/TCP
|
||||||
QoS Tier:
|
QoS Tier:
|
||||||
cpu: BestEffort
|
cpu: BestEffort
|
||||||
@@ -549,7 +549,7 @@ Follow the steps given below to rollback the Deployment from the current version
|
|||||||
CreationTimestamp: Sun, 02 Sep 2018 18:17:55 -0500
|
CreationTimestamp: Sun, 02 Sep 2018 18:17:55 -0500
|
||||||
Labels: app=nginx
|
Labels: app=nginx
|
||||||
Annotations: deployment.kubernetes.io/revision=4
|
Annotations: deployment.kubernetes.io/revision=4
|
||||||
kubernetes.io/change-cause=kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.9.1 --record=true
|
kubernetes.io/change-cause=kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.16.1 --record=true
|
||||||
Selector: app=nginx
|
Selector: app=nginx
|
||||||
Replicas: 3 desired | 3 updated | 3 total | 3 available | 0 unavailable
|
Replicas: 3 desired | 3 updated | 3 total | 3 available | 0 unavailable
|
||||||
StrategyType: RollingUpdate
|
StrategyType: RollingUpdate
|
||||||
@@ -559,7 +559,7 @@ Follow the steps given below to rollback the Deployment from the current version
|
|||||||
Labels: app=nginx
|
Labels: app=nginx
|
||||||
Containers:
|
Containers:
|
||||||
nginx:
|
nginx:
|
||||||
Image: nginx:1.9.1
|
Image: nginx:1.16.1
|
||||||
Port: 80/TCP
|
Port: 80/TCP
|
||||||
Host Port: 0/TCP
|
Host Port: 0/TCP
|
||||||
Environment: <none>
|
Environment: <none>
|
||||||
@@ -722,7 +722,7 @@ apply multiple fixes in between pausing and resuming without triggering unnecess
|
|||||||
|
|
||||||
* Then update the image of the Deployment:
|
* Then update the image of the Deployment:
|
||||||
```shell
|
```shell
|
||||||
kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.9.1
|
kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.16.1
|
||||||
```
|
```
|
||||||
|
|
||||||
The output is similar to this:
|
The output is similar to this:
|
||||||
|
|||||||
@@ -183,7 +183,7 @@ For field values of type string or integer, use normal style without quotation m
|
|||||||
Do | Don't
|
Do | Don't
|
||||||
:--| :-----
|
:--| :-----
|
||||||
Set the value of `imagePullPolicy` to Always. | Set the value of `imagePullPolicy` to "Always".
|
Set the value of `imagePullPolicy` to Always. | Set the value of `imagePullPolicy` to "Always".
|
||||||
Set the value of `image` to nginx:1.8. | Set the value of `image` to `nginx:1.8`.
|
Set the value of `image` to nginx:1.16. | Set the value of `image` to `nginx:1.16`.
|
||||||
Set the value of the `replicas` field to 2. | Set the value of the `replicas` field to `2`.
|
Set the value of the `replicas` field to 2. | Set the value of the `replicas` field to `2`.
|
||||||
{{< /table >}}
|
{{< /table >}}
|
||||||
|
|
||||||
|
|||||||
@@ -208,7 +208,7 @@ spec:
|
|||||||
serviceAccountName: bob-the-bot
|
serviceAccountName: bob-the-bot
|
||||||
containers:
|
containers:
|
||||||
- name: nginx
|
- name: nginx
|
||||||
image: nginx:1.7.9
|
image: nginx:1.14.2
|
||||||
```
|
```
|
||||||
|
|
||||||
Service account bearer tokens are perfectly valid to use outside the cluster and
|
Service account bearer tokens are perfectly valid to use outside the cluster and
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ metadata:
|
|||||||
{"apiVersion":"apps/v1","kind":"Deployment",
|
{"apiVersion":"apps/v1","kind":"Deployment",
|
||||||
"metadata":{"annotations":{},"name":"nginx-deployment","namespace":"default"},
|
"metadata":{"annotations":{},"name":"nginx-deployment","namespace":"default"},
|
||||||
"spec":{"minReadySeconds":5,"selector":{"matchLabels":{"app":nginx}},"template":{"metadata":{"labels":{"app":"nginx"}},
|
"spec":{"minReadySeconds":5,"selector":{"matchLabels":{"app":nginx}},"template":{"metadata":{"labels":{"app":"nginx"}},
|
||||||
"spec":{"containers":[{"image":"nginx:1.7.9","name":"nginx",
|
"spec":{"containers":[{"image":"nginx:1.14.2","name":"nginx",
|
||||||
"ports":[{"containerPort":80}]}]}}}}
|
"ports":[{"containerPort":80}]}]}}}}
|
||||||
# ...
|
# ...
|
||||||
spec:
|
spec:
|
||||||
@@ -136,7 +136,7 @@ spec:
|
|||||||
app: nginx
|
app: nginx
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- image: nginx:1.7.9
|
- image: nginx:1.14.2
|
||||||
# ...
|
# ...
|
||||||
name: nginx
|
name: nginx
|
||||||
ports:
|
ports:
|
||||||
@@ -199,7 +199,7 @@ metadata:
|
|||||||
{"apiVersion":"apps/v1","kind":"Deployment",
|
{"apiVersion":"apps/v1","kind":"Deployment",
|
||||||
"metadata":{"annotations":{},"name":"nginx-deployment","namespace":"default"},
|
"metadata":{"annotations":{},"name":"nginx-deployment","namespace":"default"},
|
||||||
"spec":{"minReadySeconds":5,"selector":{"matchLabels":{"app":nginx}},"template":{"metadata":{"labels":{"app":"nginx"}},
|
"spec":{"minReadySeconds":5,"selector":{"matchLabels":{"app":nginx}},"template":{"metadata":{"labels":{"app":"nginx"}},
|
||||||
"spec":{"containers":[{"image":"nginx:1.7.9","name":"nginx",
|
"spec":{"containers":[{"image":"nginx:1.14.2","name":"nginx",
|
||||||
"ports":[{"containerPort":80}]}]}}}}
|
"ports":[{"containerPort":80}]}]}}}}
|
||||||
# ...
|
# ...
|
||||||
spec:
|
spec:
|
||||||
@@ -216,7 +216,7 @@ spec:
|
|||||||
app: nginx
|
app: nginx
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- image: nginx:1.7.9
|
- image: nginx:1.14.2
|
||||||
# ...
|
# ...
|
||||||
name: nginx
|
name: nginx
|
||||||
ports:
|
ports:
|
||||||
@@ -255,7 +255,7 @@ metadata:
|
|||||||
{"apiVersion":"apps/v1","kind":"Deployment",
|
{"apiVersion":"apps/v1","kind":"Deployment",
|
||||||
"metadata":{"annotations":{},"name":"nginx-deployment","namespace":"default"},
|
"metadata":{"annotations":{},"name":"nginx-deployment","namespace":"default"},
|
||||||
"spec":{"minReadySeconds":5,"selector":{"matchLabels":{"app":nginx}},"template":{"metadata":{"labels":{"app":"nginx"}},
|
"spec":{"minReadySeconds":5,"selector":{"matchLabels":{"app":nginx}},"template":{"metadata":{"labels":{"app":"nginx"}},
|
||||||
"spec":{"containers":[{"image":"nginx:1.7.9","name":"nginx",
|
"spec":{"containers":[{"image":"nginx:1.14.2","name":"nginx",
|
||||||
"ports":[{"containerPort":80}]}]}}}}
|
"ports":[{"containerPort":80}]}]}}}}
|
||||||
# ...
|
# ...
|
||||||
spec:
|
spec:
|
||||||
@@ -273,7 +273,7 @@ spec:
|
|||||||
app: nginx
|
app: nginx
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- image: nginx:1.7.9
|
- image: nginx:1.14.2
|
||||||
# ...
|
# ...
|
||||||
name: nginx
|
name: nginx
|
||||||
ports:
|
ports:
|
||||||
@@ -282,7 +282,7 @@ spec:
|
|||||||
```
|
```
|
||||||
|
|
||||||
Update the `simple_deployment.yaml` configuration file to change the image from
|
Update the `simple_deployment.yaml` configuration file to change the image from
|
||||||
`nginx:1.7.9` to `nginx:1.11.9`, and delete the `minReadySeconds` field:
|
`nginx:1.14.2` to `nginx:1.16.1`, and delete the `minReadySeconds` field:
|
||||||
|
|
||||||
{{< codenew file="application/update_deployment.yaml" >}}
|
{{< codenew file="application/update_deployment.yaml" >}}
|
||||||
|
|
||||||
@@ -303,7 +303,7 @@ The output shows the following changes to the live configuration:
|
|||||||
|
|
||||||
* The `replicas` field retains the value of 2 set by `kubectl scale`.
|
* The `replicas` field retains the value of 2 set by `kubectl scale`.
|
||||||
This is possible because it is omitted from the configuration file.
|
This is possible because it is omitted from the configuration file.
|
||||||
* The `image` field has been updated to `nginx:1.11.9` from `nginx:1.7.9`.
|
* The `image` field has been updated to `nginx:1.16.1` from `nginx:1.14.2`.
|
||||||
* The `last-applied-configuration` annotation has been updated with the new image.
|
* The `last-applied-configuration` annotation has been updated with the new image.
|
||||||
* The `minReadySeconds` field has been cleared.
|
* The `minReadySeconds` field has been cleared.
|
||||||
* The `last-applied-configuration` annotation no longer contains the `minReadySeconds` field.
|
* The `last-applied-configuration` annotation no longer contains the `minReadySeconds` field.
|
||||||
@@ -320,7 +320,7 @@ metadata:
|
|||||||
{"apiVersion":"apps/v1","kind":"Deployment",
|
{"apiVersion":"apps/v1","kind":"Deployment",
|
||||||
"metadata":{"annotations":{},"name":"nginx-deployment","namespace":"default"},
|
"metadata":{"annotations":{},"name":"nginx-deployment","namespace":"default"},
|
||||||
"spec":{"selector":{"matchLabels":{"app":nginx}},"template":{"metadata":{"labels":{"app":"nginx"}},
|
"spec":{"selector":{"matchLabels":{"app":nginx}},"template":{"metadata":{"labels":{"app":"nginx"}},
|
||||||
"spec":{"containers":[{"image":"nginx:1.11.9","name":"nginx",
|
"spec":{"containers":[{"image":"nginx:1.16.1","name":"nginx",
|
||||||
"ports":[{"containerPort":80}]}]}}}}
|
"ports":[{"containerPort":80}]}]}}}}
|
||||||
# ...
|
# ...
|
||||||
spec:
|
spec:
|
||||||
@@ -338,7 +338,7 @@ spec:
|
|||||||
app: nginx
|
app: nginx
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- image: nginx:1.11.9 # Set by `kubectl apply`
|
- image: nginx:1.16.1 # Set by `kubectl apply`
|
||||||
# ...
|
# ...
|
||||||
name: nginx
|
name: nginx
|
||||||
ports:
|
ports:
|
||||||
@@ -460,7 +460,7 @@ metadata:
|
|||||||
{"apiVersion":"apps/v1","kind":"Deployment",
|
{"apiVersion":"apps/v1","kind":"Deployment",
|
||||||
"metadata":{"annotations":{},"name":"nginx-deployment","namespace":"default"},
|
"metadata":{"annotations":{},"name":"nginx-deployment","namespace":"default"},
|
||||||
"spec":{"minReadySeconds":5,"selector":{"matchLabels":{"app":nginx}},"template":{"metadata":{"labels":{"app":"nginx"}},
|
"spec":{"minReadySeconds":5,"selector":{"matchLabels":{"app":nginx}},"template":{"metadata":{"labels":{"app":"nginx"}},
|
||||||
"spec":{"containers":[{"image":"nginx:1.7.9","name":"nginx",
|
"spec":{"containers":[{"image":"nginx:1.14.2","name":"nginx",
|
||||||
"ports":[{"containerPort":80}]}]}}}}
|
"ports":[{"containerPort":80}]}]}}}}
|
||||||
# ...
|
# ...
|
||||||
spec:
|
spec:
|
||||||
@@ -478,7 +478,7 @@ spec:
|
|||||||
app: nginx
|
app: nginx
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- image: nginx:1.7.9
|
- image: nginx:1.14.2
|
||||||
# ...
|
# ...
|
||||||
name: nginx
|
name: nginx
|
||||||
ports:
|
ports:
|
||||||
@@ -518,7 +518,7 @@ metadata:
|
|||||||
{"apiVersion":"apps/v1","kind":"Deployment",
|
{"apiVersion":"apps/v1","kind":"Deployment",
|
||||||
"metadata":{"annotations":{},"name":"nginx-deployment","namespace":"default"},
|
"metadata":{"annotations":{},"name":"nginx-deployment","namespace":"default"},
|
||||||
"spec":{"selector":{"matchLabels":{"app":nginx}},"template":{"metadata":{"labels":{"app":"nginx"}},
|
"spec":{"selector":{"matchLabels":{"app":nginx}},"template":{"metadata":{"labels":{"app":"nginx"}},
|
||||||
"spec":{"containers":[{"image":"nginx:1.11.9","name":"nginx",
|
"spec":{"containers":[{"image":"nginx:1.16.1","name":"nginx",
|
||||||
"ports":[{"containerPort":80}]}]}}}}
|
"ports":[{"containerPort":80}]}]}}}}
|
||||||
# ...
|
# ...
|
||||||
spec:
|
spec:
|
||||||
@@ -536,7 +536,7 @@ spec:
|
|||||||
app: nginx
|
app: nginx
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- image: nginx:1.11.9 # Set by `kubectl apply`
|
- image: nginx:1.16.1 # Set by `kubectl apply`
|
||||||
# ...
|
# ...
|
||||||
name: nginx
|
name: nginx
|
||||||
ports:
|
ports:
|
||||||
@@ -654,7 +654,7 @@ by `name`.
|
|||||||
# last-applied-configuration value
|
# last-applied-configuration value
|
||||||
containers:
|
containers:
|
||||||
- name: nginx
|
- name: nginx
|
||||||
image: nginx:1.10
|
image: nginx:1.16
|
||||||
- name: nginx-helper-a # key: nginx-helper-a; will be deleted in result
|
- name: nginx-helper-a # key: nginx-helper-a; will be deleted in result
|
||||||
image: helper:1.3
|
image: helper:1.3
|
||||||
- name: nginx-helper-b # key: nginx-helper-b; will be retained
|
- name: nginx-helper-b # key: nginx-helper-b; will be retained
|
||||||
@@ -663,7 +663,7 @@ by `name`.
|
|||||||
# configuration file value
|
# configuration file value
|
||||||
containers:
|
containers:
|
||||||
- name: nginx
|
- name: nginx
|
||||||
image: nginx:1.10
|
image: nginx:1.16
|
||||||
- name: nginx-helper-b
|
- name: nginx-helper-b
|
||||||
image: helper:1.3
|
image: helper:1.3
|
||||||
- name: nginx-helper-c # key: nginx-helper-c; will be added in result
|
- name: nginx-helper-c # key: nginx-helper-c; will be added in result
|
||||||
@@ -672,7 +672,7 @@ by `name`.
|
|||||||
# live configuration
|
# live configuration
|
||||||
containers:
|
containers:
|
||||||
- name: nginx
|
- name: nginx
|
||||||
image: nginx:1.10
|
image: nginx:1.16
|
||||||
- name: nginx-helper-a
|
- name: nginx-helper-a
|
||||||
image: helper:1.3
|
image: helper:1.3
|
||||||
- name: nginx-helper-b
|
- name: nginx-helper-b
|
||||||
@@ -684,7 +684,7 @@ by `name`.
|
|||||||
# result after merge
|
# result after merge
|
||||||
containers:
|
containers:
|
||||||
- name: nginx
|
- name: nginx
|
||||||
image: nginx:1.10
|
image: nginx:1.16
|
||||||
# Element nginx-helper-a was deleted
|
# Element nginx-helper-a was deleted
|
||||||
- name: nginx-helper-b
|
- name: nginx-helper-b
|
||||||
image: helper:1.3
|
image: helper:1.3
|
||||||
@@ -779,7 +779,7 @@ spec:
|
|||||||
app: nginx
|
app: nginx
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- image: nginx:1.7.9
|
- image: nginx:1.14.2
|
||||||
imagePullPolicy: IfNotPresent # defaulted by apiserver
|
imagePullPolicy: IfNotPresent # defaulted by apiserver
|
||||||
name: nginx
|
name: nginx
|
||||||
ports:
|
ports:
|
||||||
@@ -819,7 +819,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: nginx
|
- name: nginx
|
||||||
image: nginx:1.7.9
|
image: nginx:1.14.2
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
|
|
||||||
@@ -834,7 +834,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: nginx
|
- name: nginx
|
||||||
image: nginx:1.7.9
|
image: nginx:1.14.2
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
|
|
||||||
@@ -852,7 +852,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: nginx
|
- name: nginx
|
||||||
image: nginx:1.7.9
|
image: nginx:1.14.2
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
|
|
||||||
@@ -870,7 +870,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: nginx
|
- name: nginx
|
||||||
image: nginx:1.7.9
|
image: nginx:1.14.2
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -153,14 +153,14 @@ from the [`kubectl` reference](/docs/reference/generated/kubectl/kubectl-command
|
|||||||
|
|
||||||
## Walkthrough
|
## Walkthrough
|
||||||
|
|
||||||
Let's say you were running version 1.7.9 of nginx:
|
Let's say you were running version 1.14.2 of nginx:
|
||||||
|
|
||||||
{{< codenew file="controllers/replication-nginx-1.7.9.yaml" >}}
|
{{< codenew file="controllers/replication-nginx-1.14.2.yaml" >}}
|
||||||
|
|
||||||
To update to version 1.9.1, you can use [`kubectl rolling-update --image`](https://git.k8s.io/community/contributors/design-proposals/cli/simple-rolling-update.md) to specify the new image:
|
To update to version 1.16.1, you can use [`kubectl rolling-update --image`](https://git.k8s.io/community/contributors/design-proposals/cli/simple-rolling-update.md) to specify the new image:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl rolling-update my-nginx --image=nginx:1.9.1
|
kubectl rolling-update my-nginx --image=nginx:1.16.1
|
||||||
```
|
```
|
||||||
```
|
```
|
||||||
Created my-nginx-ccba8fbd8cc8160970f63f9a2696fc46
|
Created my-nginx-ccba8fbd8cc8160970f63f9a2696fc46
|
||||||
@@ -213,7 +213,7 @@ This is one example where the immutability of containers is a huge asset.
|
|||||||
|
|
||||||
If you need to update more than just the image (e.g., command arguments, environment variables), you can create a new replication controller, with a new name and distinguishing label value, such as:
|
If you need to update more than just the image (e.g., command arguments, environment variables), you can create a new replication controller, with a new name and distinguishing label value, such as:
|
||||||
|
|
||||||
{{< codenew file="controllers/replication-nginx-1.9.2.yaml" >}}
|
{{< codenew file="controllers/replication-nginx-1.16.1.yaml" >}}
|
||||||
|
|
||||||
and roll it out:
|
and roll it out:
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ This page shows how to run an application using a Kubernetes Deployment object.
|
|||||||
|
|
||||||
You can run an application by creating a Kubernetes Deployment object, and you
|
You can run an application by creating a Kubernetes Deployment object, and you
|
||||||
can describe a Deployment in a YAML file. For example, this YAML file describes
|
can describe a Deployment in a YAML file. For example, this YAML file describes
|
||||||
a Deployment that runs the nginx:1.7.9 Docker image:
|
a Deployment that runs the nginx:1.14.2 Docker image:
|
||||||
|
|
||||||
{{< codenew file="application/deployment.yaml" >}}
|
{{< codenew file="application/deployment.yaml" >}}
|
||||||
|
|
||||||
@@ -64,7 +64,7 @@ a Deployment that runs the nginx:1.7.9 Docker image:
|
|||||||
Labels: app=nginx
|
Labels: app=nginx
|
||||||
Containers:
|
Containers:
|
||||||
nginx:
|
nginx:
|
||||||
Image: nginx:1.7.9
|
Image: nginx:1.14.2
|
||||||
Port: 80/TCP
|
Port: 80/TCP
|
||||||
Environment: <none>
|
Environment: <none>
|
||||||
Mounts: <none>
|
Mounts: <none>
|
||||||
|
|||||||
@@ -14,6 +14,6 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: nginx
|
- name: nginx
|
||||||
image: nginx:1.8
|
image: nginx:1.14.2
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
|
|||||||
@@ -14,6 +14,6 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: nginx
|
- name: nginx
|
||||||
image: nginx:1.8 # Update the version of nginx from 1.7.9 to 1.8
|
image: nginx:1.16.1 # Update the version of nginx from 1.14.2 to 1.16.1
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
|
|||||||
@@ -14,6 +14,6 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: nginx
|
- name: nginx
|
||||||
image: nginx:1.7.9
|
image: nginx:1.14.2
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
|
|||||||
@@ -29,6 +29,6 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: nginx
|
- name: nginx
|
||||||
image: nginx:1.7.9
|
image: nginx:1.14.2
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
|
|||||||
@@ -14,6 +14,6 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: nginx
|
- name: nginx
|
||||||
image: nginx:1.7.9
|
image: nginx:1.14.2
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
|
|||||||
@@ -14,6 +14,6 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: nginx
|
- name: nginx
|
||||||
image: nginx:1.7.9
|
image: nginx:1.14.2
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
|
|||||||
@@ -13,6 +13,6 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: nginx
|
- name: nginx
|
||||||
image: nginx:1.11.9 # update the image
|
image: nginx:1.16.1 # update the image
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
|
|||||||
@@ -16,6 +16,6 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: nginx
|
- name: nginx
|
||||||
image: nginx:1.7.9
|
image: nginx:1.14.2
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
|
|||||||
+1
-1
@@ -11,6 +11,6 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: nginx
|
- name: nginx
|
||||||
image: nginx:1.7.9
|
image: nginx:1.14.2
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
+1
-1
@@ -15,7 +15,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: nginx
|
- name: nginx
|
||||||
image: nginx:1.9.2
|
image: nginx:1.16.1
|
||||||
args: ["nginx", "-T"]
|
args: ["nginx", "-T"]
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
@@ -5,6 +5,6 @@ metadata:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: nginx
|
- name: nginx
|
||||||
image: nginx:1.7.9
|
image: nginx:1.14.2
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
|
|||||||
Reference in New Issue
Block a user