iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 17
0
Kubernetes

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

Day17-跑第一個Kubernetes Service

  • 分享至 

  • xImage
  •  

要跑起來一個container在kubernetes需要兩個概念

  • Pod
  • Service

Kubernetes最小的部署元件命名為Pod

Pod裡可以包含一個或一組container,透過config.yaml如下來描述一個pod

# nestjsapi-pod.config.yaml
apiVersion: v1
kind: Pod
metadata: 
  name: nestjs-pod
  labels:
    component: api
spec:
  containers:
    - name: nestjsapi
      image: yirengoo/nestjsapi
      ports:
        - containerPort: 3000    

image可以指定在Docker Hub的image,重要的是labels屬性,宣告pod並不會啟動其中的containers,需要Service才會告訴kubernetes建立一個node,跑pod中container。

# nestjsapi-service.yaml

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


Selector的component屬性指到pod的labels的component,告訴kubernetes建立一個Node跑api那一組containers

nodePort是expose到外部的port

載入Pod config

kubectl apply -f nestjsapi-pod.config.yaml

載入Service config

kubectl apply -f nestjsapi-service.yaml

讀取Kubernetes上Pods資訊

kubectl get pods

讀取Kubernetes上Service資訊

kubectl get services

取得minikube vm ip

minikube ip

使用postman測試之前nestjsapi

得到之前的錯誤訊息,因為資料庫還沒設定。

或許用hello-world image比較單純

明天繼續


上一篇
Day16-安裝minikube for kubernetes playground
下一篇
Day18-Kubernetes Object Overview
系列文
從Docker到Kubernetes-新手入門筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言