9.7 KiB
9.7 KiB
Deployment v1beta1
Group | Version | Kind |
---|---|---|
Extensions | v1beta1 | Deployment |
bdocs-tab:kubectl Deployment Config to run 3 nginx instances (max rollback set to 10 revisions).
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: deployment-example
spec:
replicas: 3
revisionHistoryLimit: 10
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.10
bdocs-tab:curl Deployment Config to run 3 nginx instances (max rollback set to 10 revisions).
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: deployment-example
spec:
replicas: 3
revisionHistoryLimit: 10
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.10
Deployment enables declarative updates for Pods and ReplicaSets.
Field | Schema | Description |
---|---|---|
metadata | ObjectMeta | Standard object metadata. |
spec | DeploymentSpec | Specification of the desired behavior of the Deployment. |
status | DeploymentStatus | Most recently observed status of the Deployment. |
DeploymentSpec v1beta1
Field | Schema | Description |
---|---|---|
minReadySeconds | integer | Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready) |
paused | boolean | Indicates that the deployment is paused and will not be processed by the deployment controller. |
replicas | integer | Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1. |
revisionHistoryLimit | integer | The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. |
rollbackTo | RollbackConfig | The config this deployment is rolling back to. Will be cleared after rollback is done. |
selector | LabelSelector | Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. |
strategy | DeploymentStrategy | The deployment strategy to use to replace existing pods with new ones. |
template | PodTemplateSpec | Template describes the pods that will be created. |
DeploymentStatus v1beta1
Field | Schema | Description |
---|---|---|
availableReplicas | integer | Total number of available pods (ready for at least minReadySeconds) targeted by this deployment. |
observedGeneration | integer | The generation observed by the deployment controller. |
replicas | integer | Total number of non-terminated pods targeted by this deployment (their labels match the selector). |
unavailableReplicas | integer | Total number of unavailable pods targeted by this deployment. |
updatedReplicas | integer | Total number of non-terminated pods targeted by this deployment that have the desired template spec. |
Write Operations
See supported operations below...
Create
bdocs-tab:kubectl Execute
$ echo 'apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: deployment-example
spec:
replicas: 3
revisionHistoryLimit: 10
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.10
ports:
- containerPort: 80
' | kubectl create -f -
bdocs-tab:kubectl Returns
deployment "deployment-example" created
bdocs-tab:curl Execute
$ kubectl proxy
$ curl -X POST -H 'Content-Type: application/yaml' --data '
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: deployment-example
spec:
replicas: 3
revisionHistoryLimit: 10
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.10
ports:
- containerPort: 80
' http://127.0.0.1:8001/apis/extensions/v1beta1/namespaces/default/deployments
bdocs-tab:curl Returns
{
"kind": "Deployment",
"apiVersion": "extensions/v1beta1",
"metadata": {
"name": "deployment-example",
"namespace": "default",
"selfLink": "/apis/extensions/v1beta1/namespaces/default/deployments/deployment-example",
"uid": "4ccca349-9cb1-11e6-9c54-42010a800148",
"resourceVersion": "2118306",
"generation": 1,
"creationTimestamp": "2016-10-28T01:53:19Z",
"labels": {
"app": "nginx"
}
},
"spec": {
"replicas": 3,
"selector": {
"matchLabels": {
"app": "nginx"
}
},
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"app": "nginx"
}
},
"spec": {
"containers": [
{
"name": "nginx",
"image": "nginx:1.10",
"ports": [
{
"containerPort": 80,
"protocol": "TCP"
}
],
"resources": {},
"terminationMessagePath": "/dev/termination-log",
"imagePullPolicy": "IfNotPresent"
}
],
"restartPolicy": "Always",
"terminationGracePeriodSeconds": 30,
"dnsPolicy": "ClusterFirst",
"securityContext": {}
}
},
"strategy": {
"type": "RollingUpdate",
"rollingUpdate": {
"maxUnavailable": 1,
"maxSurge": 1
}
},
"revisionHistoryLimit": 10
},
"status": {}
}
create a Deployment
HTTP Request
POST /apis/extensions/v1beta1/namespaces/{namespace}/deployments
Path Parameters
Parameter | Schema | Description |
---|---|---|
namespace | object name and auth scope, such as for teams and projects | |
pretty | If 'true', then the output is pretty printed. |
Query Parameters
Parameter | Schema | Description |
---|---|---|
body | Deployment |
Response
Code | Schema | Description |
---|---|---|
200 | Deployment | OK |
Replace
bdocs-tab:kubectl Execute
$ echo 'apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: deployment-example
spec:
replicas: 3
revisionHistoryLimit: 10
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.11
ports:
- containerPort: 80
' | kubectl replace -f -
bdocs-tab:kubectl Returns
deployment "deployment-example" replaced
bdocs-tab:curl Execute
$ kubectl proxy
$ curl -X PUT -H 'Content-Type: application/yaml' --data '
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: deployment-example
spec:
replicas: 3
revisionHistoryLimit: 10
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.11
ports:
- containerPort: 80
' http://127.0.0.1:8001/apis/extensions/v1beta1/namespaces/default/deployments/deployment-example
bdocs-tab:curl Returns
{
"kind": "Deployment",
"apiVersion": "extensions/v1beta1",
"metadata": {
"name": "deployment-example",
"namespace": "default",
"selfLink": "/apis/extensions/v1beta1/namespaces/default/deployments/deployment-example",
"uid": "4ccca349-9cb1-11e6-9c54-42010a800148",
"resourceVersion": "2119082",
"generation": 5,
"creationTimestamp": "2016-10-28T01:53:19Z",
"labels": {
"app": "nginx"
}
},
"spec": {
"replicas": 3,
"selector": {
"matchLabels": {
"app": "nginx"
}
},
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"app": "nginx"
}
},
"spec": {
"containers": [
{
"name": "nginx",
"image": "nginx:1.11",
"ports": [
{
"containerPort": 80,
"protocol": "TCP"
}
],
"resources": {},
"terminationMessagePath": "/dev/termination-log",
"imagePullPolicy": "IfNotPresent"
}
],
"restartPolicy": "Always",
"terminationGracePeriodSeconds": 30,
"dnsPolicy": "ClusterFirst",
"securityContext": {}
}
},
"strategy": {
"type": "RollingUpdate",
"rollingUpdate": {
"maxUnavailable": 1,
"maxSurge": 1
}
},
"revisionHistoryLimit": 10
},
"status": {
"observedGeneration": 4,
"replicas": 3,
"updatedReplicas": 3,
"availableReplicas": 3
}
}
replace the specified Deployment
HTTP Request
PUT /apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}
Path Parameters
Parameter | Schema | Description |
---|---|---|
name | name of the Deployment | |
namespace | object name and auth scope, such as for teams and projects | |
pretty | If 'true', then the output is pretty printed. |
Query Parameters
Parameter | Schema | Description |
---|---|---|
body | Deployment |
Response
Code | Schema | Description |
---|---|---|
200 | Deployment | OK |