iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 22
0
Kubernetes

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

Day22-使用Deployment管理Pod/Containers(上)-基本佈署

  • 分享至 

  • twitterImage
  •  

建立Deployment物件,在分類上Deployment、StatefulSet等都屬於Kubernetes定義的進階物件,apiVersion值跟Basic Type如Pod有區別,以nestjsapp為例

# nestjsapi-deployment.yaml
apiVersion: apps/v1 # Pod是v1,這裡是apps/v1
kind: Deployment
metadata: 
  name: nestjsapi-deployment
spec:
  replicas: 1 # 可以擴充多少identical pod
  # 告訴kubernetes這個deployment是要用哪些pod
  # 現在只有一個,未來可以多個pod
  selector: 
    matchLabels:
      component: api
  template: # create pod的blueprint
    # 以下copy Pod config內容
    metadata:
      labels: # pod labels
        component: api
    spec: 
      containers:
        - name: nestjsapi
          image: yirengoo/nestjsapi:v1 # v1 listen to 3000  
          ports:
            - containerPort: 3000

kubectl apply -f nestjsapi-deployment.yaml

kubectl get deployment

kubectl get pod

修改containerPort為5000

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

update Deployment設定檔

kubectl apply -f nestjsapi-deployment.yaml

kubectrl describe pod

port已更新。

修改service

apiVersion: v1
kind: Service
metadata:
  name: nestjsapi-service
spec:
  type: NodePort
  ports:
    - port: 5000
      targetPort: 5000 # 改為5000
      nodePort: 30001
  selector:
    component: api

update Service設定檔

kubectl apply -f nestjsapi-service.yaml

用postman測試

用新的image以及更改port測試OK


上一篇
Day21-更新現有Pod(有雷)
下一篇
Day23-使用Deployment管理Pod/Containers(下)-更新image及Scaling
系列文
從Docker到Kubernetes-新手入門筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言