iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 23
0
Kubernetes

從Docker到Kubernetes-新手入門筆記系列 第 23

Day23-使用Deployment管理Pod/Containers(下)-更新image及Scaling

  • 分享至 

  • twitterImage
  •  

昨天更新docker image版本測試OK,假設v2已經是穩定版本,只是minor修改不需要進版,比如說修改文字敘述

docker build & push後,打開postman測試,還是Hello!world

即便再次套用Deployment設定檔

也沒有對目前'設定'產生變化

當然如果docker build重新tag一個版本,然後修改Deployment檔案,Pod就會重新pull image

假設build v3後修改deployment yaml檔

# nestjsapi-deployment.yaml
..
  template: # create pod的blueprint
    # 以下copy Pod config內容
    metadata:
      labels: # pod labels
        component: api
    spec: 
      containers:
        - name: nestjsapi
          image: yirengoo/nestjsapi:v3 # v3
          ports:
            - containerPort: 5000

update Deployment設定檔

kubectl apply -f nestjsapi-deployment.yaml

Pod重新create

使用postman測試

如果要不修改Deployment設定檔而強制重新pull image的話,有兩種

  • 使用kubectl delete pod
    • 因為deployment會監控pod,被刪除的話,會自動create新的
  • 使用kubectrl set image object_type/object_name container_name=image_source
    • 強制更新指定的image

看來後者比較make sense

重新發布一個v4版本修改文字

kubectl set image Deployment/nestjsapi-deployment nestjsapi=yirengoo/nestjsapi:v4

使用postman測試

再來是基本的scaling,只有修改replicas數值就可以同時跑identical pods,假設設為8

apiVersion: apps/v1
kind: Deployment
metadata: 
  name: nestjsapi-deployment
spec:
  replicas: 8
  selector:
    matchLabels:
      component: api
...

update Deployment設定檔

kubectl apply -f nestjsapi-deployment.yaml

可以看到kubernetes建立8個replicas

強制Pod更新image Github Issue


上一篇
Day22-使用Deployment管理Pod/Containers(上)-基本佈署
下一篇
Day24 Cluster IP Service-只有Node內才看得到
系列文
從Docker到Kubernetes-新手入門筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言