Sunday, March 31, 2019

deployments

Contents of my myapp.yml file
# cat deployment/myapp.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: myapp-deployment
    type: frontend
  name: myapp-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
      name: myapp-pod
    spec:
      containers:
        -
          image: nginx
          name: nginx-container

Create the deployments
# kubectl create -f dep-definition.yml

Update the myapp.yml file
image: nginx:1.7.1

Check status of rollout
# kubectl rollout status deployment/myapp-deployment

Get rollout status
# kubectl rollout history deployment/myapp-deployment
deployment.extensions/myapp-deployment
REVISION  CHANGE-CAUSE
1         <none>
2         <none>

Delete the deployment
# kubectl delete deployment myapp-deployment
deployment.extensions "myapp-deployment" deleted

# kubectl rollout status deployment/myapp-deployment
deployment "myapp-deployment" successfully rolled out

# kubectl rollout history deployment/myapp-deployment
deployment.extensions/myapp-deployment
REVISION  CHANGE-CAUSE
1         kubectl create --filename=dep-definition.yml --record=true

# kubectl apply -f deployment/dep-definition.yml
Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
deployment.apps/myapp-deployment configured


Update nginx version
image: nginx:1.14.2

# kubectl rollout status deployment/myapp-deployment
Waiting for deployment "myapp-deployment" rollout to finish: 1 out of 3 new replicas have been updated...
Waiting for deployment "myapp-deployment" rollout to finish: 1 out of 3 new replicas have been updated...
Waiting for deployment "myapp-deployment" rollout to finish: 1 out of 3 new replicas have been updated...
Waiting for deployment "myapp-deployment" rollout to finish: 2 out of 3 new replicas have been updated...
Waiting for deployment "myapp-deployment" rollout to finish: 2 out of 3 new replicas have been updated...
Waiting for deployment "myapp-deployment" rollout to finish: 2 out of 3 new replicas have been updated...
Waiting for deployment "myapp-deployment" rollout to finish: 1 old replicas are pending termination...
Waiting for deployment "myapp-deployment" rollout to finish: 1 old replicas are pending termination...
deployment "myapp-deployment" successfully rolled out


# kubectl rollout history deployment/myapp-deployment
deployment.extensions/myapp-deployment
REVISION  CHANGE-CAUSE
1         kubectl create --filename=dep-definition.yml --record=true
2         kubectl create --filename=dep-definition.yml --record=true





# kubectl describe deployments
Name:                   myapp-deployment
Namespace:              default
CreationTimestamp:      Sun, 31 Mar 2019 20:47:52 -0400
Labels:                 app=myapp-deployment
                        type=frontend
Annotations:            deployment.kubernetes.io/revision: 2
                        kubectl.kubernetes.io/last-applied-configuration:
                          {"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{},"labels":{"app":"myapp-deployment","type":"frontend"},"name":"mya...
                        kubernetes.io/change-cause: kubectl create --filename=dep-definition.yml --record=true
Selector:               app=myapp
Replicas:               3 desired | 3 updated | 3 total | 3 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  app=myapp
  Containers:
   nginx-container:
    Image:        nginx:1.14.2
    Port:         <none>
    Host Port:    <none>
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      True    MinimumReplicasAvailable
  Progressing    True    NewReplicaSetAvailable
OldReplicaSets:  <none>
NewReplicaSet:   myapp-deployment-5854fc6749 (3/3 replicas created)
Events:
  Type    Reason             Age    From                   Message
  ----    ------             ----   ----                   -------
  Normal  ScalingReplicaSet  7m32s  deployment-controller  Scaled up replica set myapp-deployment-cf874bdcd to 3
  Normal  ScalingReplicaSet  2m19s  deployment-controller  Scaled up replica set myapp-deployment-5854fc6749 to 1
  Normal  ScalingReplicaSet  112s   deployment-controller  Scaled down replica set myapp-deployment-cf874bdcd to 2
  Normal  ScalingReplicaSet  112s   deployment-controller  Scaled up replica set myapp-deployment-5854fc6749 to 2
  Normal  ScalingReplicaSet  88s    deployment-controller  Scaled down replica set myapp-deployment-cf874bdcd to 1
  Normal  ScalingReplicaSet  88s    deployment-controller  Scaled up replica set myapp-deployment-5854fc6749 to 3
  Normal  ScalingReplicaSet  86s    deployment-controller  Scaled down replica set myapp-deployment-cf874bdcd to 0

# kubectl rollout history deployment/myapp-deployment
deployment.extensions/myapp-deployment
REVISION  CHANGE-CAUSE
1         kubectl create --filename=dep-definition.yml --record=true
2         kubectl create --filename=dep-definition.yml --record=true


# kubectl set image deployment/myapp-deployment nginx-container=nginx:1.12-perl
deployment.extensions/myapp-deployment image updated
# kubectl rollout status deployment/myapp-deployment
Waiting for deployment "myapp-deployment" rollout to finish: 1 out of 3 new replicas have been updated...
Waiting for deployment "myapp-deployment" rollout to finish: 1 out of 3 new replicas have been updated...
Waiting for deployment "myapp-deployment" rollout to finish: 1 out of 3 new replicas have been updated...
Waiting for deployment "myapp-deployment" rollout to finish: 2 out of 3 new replicas have been updated...
# kubectl get pods
NAME                                READY   STATUS              RESTARTS   AGE
myapp-deployment-5854fc6749-2pr6v   1/1     Running             0          5m44s
myapp-deployment-5854fc6749-hjxnt   1/1     Running             0          6m11s
myapp-deployment-5bcf5cbbf9-557d4   1/1     Running             0          56s
myapp-deployment-5bcf5cbbf9-5hhgm   0/1     ContainerCreating   0          9s
[root@centos05-04 ~]# kubectl get deployments
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
myapp-deployment   3/3     2            3           11m
# kubectl rollout status deployment/myapp-deployment
Waiting for deployment "myapp-deployment" rollout to finish: 2 out of 3 new replicas have been updated...
# kubectl rollout history deployment/myapp-deployment
deployment.extensions/myapp-deployment
REVISION  CHANGE-CAUSE
1         kubectl create --filename=dep-definition.yml --record=true
2         kubectl create --filename=dep-definition.yml --record=true
3         kubectl create --filename=dep-definition.yml --record=true
# kubectl rollout status deployment/myapp-deployment
Waiting for deployment "myapp-deployment" rollout to finish: 2 out of 3 new replicas have been updated...
Waiting for deployment "myapp-deployment" rollout to finish: 2 out of 3 new replicas have been updated...
Waiting for deployment "myapp-deployment" rollout to finish: 2 out of 3 new replicas have been updated...
Waiting for deployment "myapp-deployment" rollout to finish: 1 old replicas are pending termination...
Waiting for deployment "myapp-deployment" rollout to finish: 1 old replicas are pending termination...
deployment "myapp-deployment" successfully rolled out
# kubectl rollout history deployment/myapp-deployment
deployment.extensions/myapp-deployment
REVISION  CHANGE-CAUSE
1         kubectl create --filename=dep-definition.yml --record=true
2         kubectl create --filename=dep-definition.yml --record=true
3         kubectl create --filename=dep-definition.yml --record=true

[root@centos05-04 ~]# kubectl describe deployments
Name:                   myapp-deployment
Namespace:              default
CreationTimestamp:      Sun, 31 Mar 2019 20:47:52 -0400
Labels:                 app=myapp-deployment
                        type=frontend
Annotations:            deployment.kubernetes.io/revision: 2
                        kubectl.kubernetes.io/last-applied-configuration:
                          {"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{},"labels":{"app":"myapp-deployment","type":"frontend"},"name":"mya...
                        kubernetes.io/change-cause: kubectl create --filename=dep-definition.yml --record=true
Selector:               app=myapp
Replicas:               3 desired | 3 updated | 3 total | 3 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  app=myapp
  Containers:
   nginx-container:
    Image:        nginx:1.14.2
    Port:         <none>
    Host Port:    <none>
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      True    MinimumReplicasAvailable
  Progressing    True    NewReplicaSetAvailable
OldReplicaSets:  <none>
NewReplicaSet:   myapp-deployment-5854fc6749 (3/3 replicas created)
Events:
  Type    Reason             Age    From                   Message
  ----    ------             ----   ----                   -------
  Normal  ScalingReplicaSet  7m32s  deployment-controller  Scaled up replica set myapp-deployment-cf874bdcd to 3
  Normal  ScalingReplicaSet  2m19s  deployment-controller  Scaled up replica set myapp-deployment-5854fc6749 to 1
  Normal  ScalingReplicaSet  112s   deployment-controller  Scaled down replica set myapp-deployment-cf874bdcd to 2
  Normal  ScalingReplicaSet  112s   deployment-controller  Scaled up replica set myapp-deployment-5854fc6749 to 2
  Normal  ScalingReplicaSet  88s    deployment-controller  Scaled down replica set myapp-deployment-cf874bdcd to 1
  Normal  ScalingReplicaSet  88s    deployment-controller  Scaled up replica set myapp-deployment-5854fc6749 to 3
  Normal  ScalingReplicaSet  86s    deployment-controller  Scaled down replica set myapp-deployment-cf874bdcd to 0
# kubectl describe deployments
Name:                   myapp-deployment
Namespace:              default
CreationTimestamp:      Sun, 31 Mar 2019 20:47:52 -0400
Labels:                 app=myapp-deployment
                        type=frontend
Annotations:            deployment.kubernetes.io/revision: 2
                        kubectl.kubernetes.io/last-applied-configuration:
                          {"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{},"labels":{"app":"myapp-deployment","type":"frontend"},"name":"mya...
                        kubernetes.io/change-cause: kubectl create --filename=dep-definition.yml --record=true
Selector:               app=myapp
Replicas:               3 desired | 3 updated | 3 total | 3 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  app=myapp
  Containers:
   nginx-container:
    Image:        nginx:1.14.2
    Port:         <none>
    Host Port:    <none>
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      True    MinimumReplicasAvailable
  Progressing    True    NewReplicaSetAvailable
OldReplicaSets:  <none>
NewReplicaSet:   myapp-deployment-5854fc6749 (3/3 replicas created)
Events:
  Type    Reason             Age    From                   Message
  ----    ------             ----   ----                   -------
  Normal  ScalingReplicaSet  8m6s   deployment-controller  Scaled up replica set myapp-deployment-cf874bdcd to 3
  Normal  ScalingReplicaSet  2m53s  deployment-controller  Scaled up replica set myapp-deployment-5854fc6749 to 1
  Normal  ScalingReplicaSet  2m26s  deployment-controller  Scaled down replica set myapp-deployment-cf874bdcd to 2
  Normal  ScalingReplicaSet  2m26s  deployment-controller  Scaled up replica set myapp-deployment-5854fc6749 to 2
  Normal  ScalingReplicaSet  2m2s   deployment-controller  Scaled down replica set myapp-deployment-cf874bdcd to 1
  Normal  ScalingReplicaSet  2m2s   deployment-controller  Scaled up replica set myapp-deployment-5854fc6749 to 3
  Normal  ScalingReplicaSet  2m     deployment-controller  Scaled down replica set myapp-deployment-cf874bdcd to 0
# kubectl rollout history deployment/myapp-deployment
deployment.extensions/myapp-deployment
REVISION  CHANGE-CAUSE
1         kubectl create --filename=dep-definition.yml --record=true
2         kubectl create --filename=dep-definition.yml --record=true

# kubectl set image deployment/myapp-deployment nginx-container=nginx:1.12-perl
deployment.extensions/myapp-deployment image updated
# kubectl rollout status deployment/myapp-deployment
Waiting for deployment "myapp-deployment" rollout to finish: 1 out of 3 new replicas have been updated...
Waiting for deployment "myapp-deployment" rollout to finish: 1 out of 3 new replicas have been updated...
Waiting for deployment "myapp-deployment" rollout to finish: 1 out of 3 new replicas have been updated...
Waiting for deployment "myapp-deployment" rollout to finish: 2 out of 3 new replicas have been updated...
# kubectl get pods
NAME                                READY   STATUS              RESTARTS   AGE
myapp-deployment-5854fc6749-2pr6v   1/1     Running             0          5m44s
myapp-deployment-5854fc6749-hjxnt   1/1     Running             0          6m11s
myapp-deployment-5bcf5cbbf9-557d4   1/1     Running             0          56s
myapp-deployment-5bcf5cbbf9-5hhgm   0/1     ContainerCreating   0          9s
[root@centos05-04 ~]# kubectl get deployments
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
myapp-deployment   3/3     2            3           11m
# kubectl rollout status deployment/myapp-deployment
Waiting for deployment "myapp-deployment" rollout to finish: 2 out of 3 new replicas have been updated...
# kubectl rollout history deployment/myapp-deployment
deployment.extensions/myapp-deployment
REVISION  CHANGE-CAUSE
1         kubectl create --filename=dep-definition.yml --record=true
2         kubectl create --filename=dep-definition.yml --record=true
3         kubectl create --filename=dep-definition.yml --record=true

# kubectl rollout status deployment/myapp-deployment
Waiting for deployment "myapp-deployment" rollout to finish: 2 out of 3 new replicas have been updated...
Waiting for deployment "myapp-deployment" rollout to finish: 2 out of 3 new replicas have been updated...
Waiting for deployment "myapp-deployment" rollout to finish: 2 out of 3 new replicas have been updated...
Waiting for deployment "myapp-deployment" rollout to finish: 1 old replicas are pending termination...
Waiting for deployment "myapp-deployment" rollout to finish: 1 old replicas are pending termination...
deployment "myapp-deployment" successfully rolled out
# kubectl rollout history deployment/myapp-deployment
deployment.extensions/myapp-deployment
REVISION  CHANGE-CAUSE
1         kubectl create --filename=dep-definition.yml --record=true
2         kubectl create --filename=dep-definition.yml --record=true
3         kubectl create --filename=dep-definition.yml --record=true

# kubectl get deployments
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
myapp-deployment   3/3     3            3           14m
# kubectl get deployments
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
myapp-deployment   3/3     3            3           14m
# kubectl describe deployments
Name:                   myapp-deployment
Namespace:              default
CreationTimestamp:      Sun, 31 Mar 2019 20:47:52 -0400
Labels:                 app=myapp-deployment
                        type=frontend
Annotations:            deployment.kubernetes.io/revision: 3
                        kubectl.kubernetes.io/last-applied-configuration:
                          {"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{},"labels":{"app":"myapp-deployment","type":"frontend"},"name":"mya...
                        kubernetes.io/change-cause: kubectl create --filename=dep-definition.yml --record=true
Selector:               app=myapp
Replicas:               3 desired | 3 updated | 3 total | 3 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  app=myapp
  Containers:
   nginx-container:
    Image:        nginx:1.12-perl
    Port:         <none>
    Host Port:    <none>
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      True    MinimumReplicasAvailable
  Progressing    True    NewReplicaSetAvailable
OldReplicaSets:  <none>
NewReplicaSet:   myapp-deployment-5bcf5cbbf9 (3/3 replicas created)
Events:
  Type    Reason             Age                   From                   Message
  ----    ------             ----                  ----                   -------
  Normal  ScalingReplicaSet  15m                   deployment-controller  Scaled up replica set myapp-deployment-cf874bdcd to 3
  Normal  ScalingReplicaSet  9m54s                 deployment-controller  Scaled up replica set myapp-deployment-5854fc6749 to 1
  Normal  ScalingReplicaSet  9m27s                 deployment-controller  Scaled down replica set myapp-deployment-cf874bdcd to 2
  Normal  ScalingReplicaSet  9m27s                 deployment-controller  Scaled up replica set myapp-deployment-5854fc6749 to 2
  Normal  ScalingReplicaSet  9m3s                  deployment-controller  Scaled down replica set myapp-deployment-cf874bdcd to 1
  Normal  ScalingReplicaSet  9m3s                  deployment-controller  Scaled up replica set myapp-deployment-5854fc6749 to 3
  Normal  ScalingReplicaSet  9m1s                  deployment-controller  Scaled down replica set myapp-deployment-cf874bdcd to 0
  Normal  ScalingReplicaSet  4m39s                 deployment-controller  Scaled up replica set myapp-deployment-5bcf5cbbf9 to 1
  Normal  ScalingReplicaSet  3m52s                 deployment-controller  Scaled down replica set myapp-deployment-5854fc6749 to 2
  Normal  ScalingReplicaSet  3m3s (x4 over 3m52s)  deployment-controller  (combined from similar events): Scaled down replica set myapp-deployment-5854fc6749 to 0
# kubectl rollout history deployment/myapp-deployment
deployment.extensions/myapp-deployment
REVISION  CHANGE-CAUSE
1         kubectl create --filename=dep-definition.yml --record=true
2         kubectl create --filename=dep-definition.yml --record=true
3         kubectl create --filename=dep-definition.yml --record=true

# kubectl rollout undo deployment/myapp-deployment
deployment.extensions/myapp-deployment rolled back
# kubectl rollout history deployment/myapp-deployment
deployment.extensions/myapp-deployment
REVISION  CHANGE-CAUSE
1         kubectl create --filename=dep-definition.yml --record=true
3         kubectl create --filename=dep-definition.yml --record=true
4         kubectl create --filename=dep-definition.yml --record=true

[root@centos05-04 ~]# kubectl describe deployments
Name:                   myapp-deployment
Namespace:              default
CreationTimestamp:      Sun, 31 Mar 2019 20:47:52 -0400
Labels:                 app=myapp-deployment
                        type=frontend
Annotations:            deployment.kubernetes.io/revision: 4
                        kubectl.kubernetes.io/last-applied-configuration:
                          {"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{},"labels":{"app":"myapp-deployment","type":"frontend"},"name":"mya...
                        kubernetes.io/change-cause: kubectl create --filename=dep-definition.yml --record=true
Selector:               app=myapp
Replicas:               3 desired | 3 updated | 3 total | 3 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  app=myapp
  Containers:
   nginx-container:
    Image:        nginx:1.14.2
    Port:         <none>
    Host Port:    <none>
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      True    MinimumReplicasAvailable
  Progressing    True    NewReplicaSetAvailable
OldReplicaSets:  <none>
NewReplicaSet:   myapp-deployment-5854fc6749 (3/3 replicas created)
Events:
  Type    Reason             Age                 From                   Message
  ----    ------             ----                ----                   -------
  Normal  ScalingReplicaSet  16m                 deployment-controller  Scaled up replica set myapp-deployment-cf874bdcd to 3
  Normal  ScalingReplicaSet  10m                 deployment-controller  Scaled down replica set myapp-deployment-cf874bdcd to 2
  Normal  ScalingReplicaSet  10m                 deployment-controller  Scaled down replica set myapp-deployment-cf874bdcd to 1
  Normal  ScalingReplicaSet  10m                 deployment-controller  Scaled up replica set myapp-deployment-5854fc6749 to 3
  Normal  ScalingReplicaSet  10m                 deployment-controller  Scaled down replica set myapp-deployment-cf874bdcd to 0
  Normal  ScalingReplicaSet  5m38s               deployment-controller  Scaled up replica set myapp-deployment-5bcf5cbbf9 to 1
  Normal  ScalingReplicaSet  4m51s               deployment-controller  Scaled down replica set myapp-deployment-5854fc6749 to 2
  Normal  ScalingReplicaSet  10s (x2 over 10m)   deployment-controller  Scaled up replica set myapp-deployment-5854fc6749 to 1
  Normal  ScalingReplicaSet  8s (x2 over 10m)    deployment-controller  Scaled up replica set myapp-deployment-5854fc6749 to 2
  Normal  ScalingReplicaSet  3s (x8 over 4m51s)  deployment-controller  (combined from similar events): Scaled down replica set myapp-deployment-5bcf5cbbf9 to 0


image: nginx:1.4.2-err

# kubectl apply -f deployment/dep-definition.yml
deployment.apps/myapp-deployment configured
# kubectl rollout status deployment/myapp-deployment
Waiting for deployment "myapp-deployment" rollout to finish: 1 out of 3 new replicas have been updated...

# kubectl rollout history deployment/myapp-deployment
deployment.extensions/myapp-deployment
REVISION  CHANGE-CAUSE
1         kubectl create --filename=dep-definition.yml --record=true
3         kubectl create --filename=dep-definition.yml --record=true
4         kubectl create --filename=dep-definition.yml --record=true
5         kubectl create --filename=dep-definition.yml --record=true

# kubectl get pods
NAME                                READY   STATUS         RESTARTS   AGE
myapp-deployment-5854fc6749-8jvw8   1/1     Running        0          6m39s
myapp-deployment-5854fc6749-fh2s9   1/1     Running        0          6m37s
myapp-deployment-5854fc6749-gm5x6   1/1     Running        0          6m34s
myapp-deployment-85db5cb47b-ttjd5   0/1     ErrImagePull   0          48s
# kubectl rollout undo deployment/myapp-deployment
deployment.extensions/myapp-deployment rolled back
# kubectl get pods
NAME                                READY   STATUS    RESTARTS   AGE
myapp-deployment-5854fc6749-8jvw8   1/1     Running   0          7m6s
myapp-deployment-5854fc6749-fh2s9   1/1     Running   0          7m4s

myapp-deployment-5854fc6749-gm5x6   1/1     Running   0          7m1s


No comments:

Post a Comment

Not able to login to a server from putty using ppk file

 If you are not able to login to a Linux server from putty using a ppk file, you can regenerate the file using the below options. Open putty...