Scaling and changing deploymentsΒΆ
We are going to open up the client-deployment.yaml file:
apiVersion: apps/v1
kind: Deployment
metadata:
name: client-deployment
spec:
replicas: 1
selector:
matchLabels:
component: web
template:
metadata:
labels:
component: web
spec:
containers:
- name: client
image: deiveris/multi-client
ports:
- containerPort: 3000
And modify the port that previously failed on pod update:
apiVersion: apps/v1
kind: Deployment
metadata:
name: client-deployment
spec:
replicas: 1
selector:
matchLabels:
component: web
template:
metadata:
labels:
component: web
spec:
containers:
- name: client
image: deiveris/multi-client
ports:
- containerPort: 9999
$ kubectl apply -f client-deployment.yaml
deployment.apps/client-deployment configured
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
client-deployment-69f476d99b-s4trm 1/1 Running 0 18s
$ kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
client-deployment 1/1 1 1 10m
$ kubectl describe pods
Name: client-deployment-69f476d99b-s4trm
Namespace: default
Priority: 0
PriorityClassName: <none>
Node: minikube/10.0.2.15
Start Time: Sun, 17 Mar 2019 17:08:31 +0200
Labels: component=web
pod-template-hash=69f476d99b
Annotations: <none>
Status: Running
IP: 172.17.0.5
Controlled By: ReplicaSet/client-deployment-69f476d99b
Containers:
client:
Container ID: docker://7c59d43a6cd56c8eabfca5230f1fe2929b52debf49b58ff7d0022c6e8031ac93
Image: deiveris/multi-client
Image ID: docker-pullable://deiveris/multi-client@sha256:51c71c0006401fcb25f15b0bf809b58e0f5a3885271b3d655fe1ed685a2f64f9
Port: 9999/TCP
Host Port: 0/TCP
State: Running
Started: Sun, 17 Mar 2019 17:08:34 +0200
Ready: True
Restart Count: 0
Environment: <none>
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-vq8qh (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
default-token-vq8qh:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-vq8qh
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 85s default-scheduler Successfully assigned default/client-deployment-69f476d99b-s4trm to minikube
Normal Pulling 84s kubelet, minikube pulling image "deiveris/multi-client"
Normal Pulled 83s kubelet, minikube Successfully pulled image "deiveris/multi-client"
Normal Created 83s kubelet, minikube Created container
Normal Started 82s kubelet, minikube Started container
We can see that the pod is working on the port 9999.
If we change the replicas: 5
$ kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
client-deployment 5/5 5 5 13m
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
client-deployment-69f476d99b-9dzd5 1/1 Running 0 25s
client-deployment-69f476d99b-ct94h 1/1 Running 0 25s
client-deployment-69f476d99b-lwbcj 1/1 Running 0 25s
client-deployment-69f476d99b-nt5mz 1/1 Running 0 25s
client-deployment-69f476d99b-s4trm 1/1 Running 0 3m7s