iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 28
0
DevOps

.NET Core 專案持續整合與部署系列 第 28

Virtualize:Kubernetize .NET Core Application

# Outline
一、前言
二、實作

# TL;DR

一、前言

如同 Dockerize 就是將應用程式封裝成 Docker Image 並隨時可以透過 Image 去建立一個個容器。Kubernetize 就是將我們「手動部署多個容器到多台機器上,並監測管理這些容器的狀態」的過程透過 Kubernetes 去處理。

前一篇都是手動透過 kubectl 工具去部署我們的 .NET Core Application 服務,但是這樣的缺點一來「手動本身就很麻煩」,二來是無法將部署的設定也被版本控制紀錄。所以最好的做法是將這些部署的參數設定都寫成設定檔去描述這些 Kubernetes 物件。這也就是本篇想嘗試實作。

二、概念

在編寫時,先在這節筆記一下 Kubernetes 的一些概念。

Automated container deployment, scaling, and management

2-1. Pod

Pod 就是 Kubernetes 運行的最小單位,通常一個 Pod 會對應到一個應用程式服務(Application) 。在本系列文就是透過對應到一到數個 Docker Image 建立起來的服務,也因此一個 Pod 裡面可能會有一到多個 Container,也可以說是最小服務單位。

2-2. Worker Node

如果 Pod 是 Kubernetes 運行的最小「軟體」單位,那麼 Node 就是 Kubernetes 運行的最小硬體單位。一個 Node 通常對應到一台機器(無論實體或虛擬)。

2-3. Master Node

Master Node 可以說是 Kubernetes 的指揮中心,我們就是透過他去管理其他的 Worker Node。

2-4. Cluster

而 Kubernetes 中,由多個 Node 與 Master 組成的群集,就是所謂的 Cluster。

三、實作

3-1. Pod

apiVersion: v1
 kind: Pod
 metadata:
   name: ironman-dotnet-core-pod
   labels:
     app: demoApp
 spec:
   containers:
     - name: ironman-dotnet-core-container
       image: dotnet-core-ci-cd-lab:1.1
       ports:
         - containerPort: 3000

上一篇
導讀:.NET Core 與 .NET 的歷史
下一篇
Virtualize:Kubernetize (2)
系列文
.NET Core 專案持續整合與部署31

尚未有邦友留言

立即登入留言