SlideShare a Scribd company logo
8
Most read
12
Most read
Continuous Deployment with Angular, Docker and Kubernetes
實現 Angular, Docker 與 Kubernetes 持續部署
多奇數位創意有限公司
技術總監 黃保翕(Will 保哥)
https://blog.miniasp.com
環境準備
Prerequisite
實作環境 The Environment
• Windows 10 Build 19041
• Node.js v15.1.0
• Angular CLI v10.2.0
• Docker Desktop 2.5.0.0 (49427)
• WSL 2
• kind 0.9.0 / Kubernetes v1.19.1
• kubectl / k9s
3
安裝好用的 VSCode 擴充套件
• Angular Extension Pack
• Docker
• Kubernetes / Kubernetes Snippets / Kubernetes Kind
• YAML
• DotENV (Support for dotenv file syntax)
• Encode Decode
4
建立 Kubernetes 叢集
Create Kubernetes Cluster
準備含有 Ingress 的 kind 叢集定義檔
kind-2nodes-ingress.yaml
6
使用 kind 建立 Kubernetes 叢集
kind create cluster --config ./kind-2nodes-ingress.yaml
7
建立 NGINX Ingress Controller
• 安裝 NGINX Ingress Controller 控制器
• 等待 Controller 建立完畢
• 測試 Ingress 是否正常運作
8
kubectl apply -f https://bit.ly/k8s-ingress-nginx
kubectl wait --namespace ingress-nginx 
--for=condition=ready pod 
--selector=app.kubernetes.io/component=controller 
--timeout=90s
kubectl apply -f https://bit.ly/k8s-ingress-usage
本機測試 http://localhost/foo 網站連線
將 Angular 應用程式部署至 Kubernetes
Deploy Angular application on Kubernetes
基本步驟 Basic Steps
• 準備前端與後端應用程式 (Angular + .NET Core)
• 準備好 NGINX 設定檔(用以裝載 Angular 應用程式)
• 撰寫 Dockerfile 並打包好 Docker Images
• 上傳 Docker Images 到 Container Registry
• 建立 TLS/SSL 憑證
• 撰寫 YAML 設定檔 ( Deployment, Service, Ingress )
• 套用 YAML 設定至 Kubernetes
10
網路架構
11
NGINX
Ingress
Controller
https://host/
api
Service
Pod
Pod
Deployment
web
Service
Pod
Pod
Deployment
Angular
SPA
.NET Core
Web API
CI / CD
• docker build -t willh/ngplus:web .
• docker push willh/ngplus:web
• docker build -t willh/ngplus:api .
• docker push willh/ngplus:api
• kubectl apply -f ./depoy.yaml
12
相關連結
• Ingress | Kubernetes
• NGINX Ingress Controller ( GitHub )
• Understanding kubernetes networking: ingress
• Kubernetes Ingress with Nginx Example
13
The Will Will Web
網路世界的學習心得與技術分享
http://blog.miniasp.com/
Facebook
Will 保哥的技術交流中心
http://www.facebook.com/will.fans
Twitter
https://twitter.com/Will_Huang
聯絡資訊
THANK YOU!

More Related Content

What's hot (20)

PDF
容器與 Gitlab CI 應用
Philip Zheng
 
PPTX
C# 8.0 非同期ストリーム
信之 岩永
 
PDF
ARM Trusted FirmwareのBL31を単体で使う!
Mr. Vengineer
 
PDF
Spannerに関する技術メモ
Etsuji Nakai
 
PPTX
BoostAsioで可読性を求めるのは間違っているだろうか
Yuki Miyatake
 
PDF
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
 
PDF
Yale Jenkins Show and Tell
E. Camden Fisher
 
PPTX
Selenium×PostgreSQL15×Grafanaで思い出を保存&分析するプロジェクト(第35回PostgreSQLアンカンファレンス@オンライン...
NTT DATA Technology & Innovation
 
PDF
決済サービスのSpring Bootのバージョンを2系に上げた話
Ryosuke Uchitate
 
PDF
Angular Observables & RxJS Introduction
Rahat Khanna a.k.a mAppMechanic
 
PPTX
PostgreSQL共有バッファと関連ツール
Masahiko Sawada
 
PDF
Typescript in React: HOW & WHY?
Saulius Skeirys
 
PPT
Javaバイトコード入門
Kota Mizushima
 
PDF
SQL Server のインデックス設計
Koji Yamada
 
PDF
PostgreSQL のイケてるテクニック7選
Tomoya Kawanishi
 
PPTX
How Functions Work
Saumil Shah
 
PDF
”30分”ぐらいでわかる「Kubernetes」について
Yuya Ohara
 
PDF
Introduction to docker
Wei-Ting Kuo
 
PDF
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
Google Cloud Platform - Japan
 
PDF
What Can Compilers Do for Us?
National Cheng Kung University
 
容器與 Gitlab CI 應用
Philip Zheng
 
C# 8.0 非同期ストリーム
信之 岩永
 
ARM Trusted FirmwareのBL31を単体で使う!
Mr. Vengineer
 
Spannerに関する技術メモ
Etsuji Nakai
 
BoostAsioで可読性を求めるのは間違っているだろうか
Yuki Miyatake
 
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
 
Yale Jenkins Show and Tell
E. Camden Fisher
 
Selenium×PostgreSQL15×Grafanaで思い出を保存&分析するプロジェクト(第35回PostgreSQLアンカンファレンス@オンライン...
NTT DATA Technology & Innovation
 
決済サービスのSpring Bootのバージョンを2系に上げた話
Ryosuke Uchitate
 
Angular Observables & RxJS Introduction
Rahat Khanna a.k.a mAppMechanic
 
PostgreSQL共有バッファと関連ツール
Masahiko Sawada
 
Typescript in React: HOW & WHY?
Saulius Skeirys
 
Javaバイトコード入門
Kota Mizushima
 
SQL Server のインデックス設計
Koji Yamada
 
PostgreSQL のイケてるテクニック7選
Tomoya Kawanishi
 
How Functions Work
Saumil Shah
 
”30分”ぐらいでわかる「Kubernetes」について
Yuya Ohara
 
Introduction to docker
Wei-Ting Kuo
 
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
Google Cloud Platform - Japan
 
What Can Compilers Do for Us?
National Cheng Kung University
 

Similar to 實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020) (17)

PPTX
Docker tutorial
azole Lai
 
PPTX
Docker 基礎介紹與實戰
Bo-Yi Wu
 
PDF
Docker Build
Miles Chou
 
PDF
從軟體開發角度
談 Docker 的應用
謝 宗穎
 
PDF
20150604 docker 新手入門
azole Lai
 
PPTX
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
Will Huang
 
PDF
docker intro
koji lin
 
PDF
GCPUG.TW meetup #28 - GKE上運作您的k8s服務
Simon Su
 
PPTX
Windows Container 101: dotNET, Container, Kubernetes
Will Huang
 
PDF
Docker應用
Jui An Huang (黃瑞安)
 
PDF
20220224台中演講k8s
chabateryuhlin
 
PDF
Docker
旭 張
 
PPTX
Docker
NCUDSC
 
PDF
Kubernetes 地端自建 v.s. GKE,哪個更適合你? @Devfest Taipei 2024
Johnny Sung
 
PPTX
Oh K8s Is Swag - Kubernetes Basics
Okis Chuang
 
PPTX
Kubernetes on gcp
Tech Podcast Night
 
PDF
Continuous Delivery Workshop with Ansible x GitLab CI (5th)
Chu-Siang Lai
 
Docker tutorial
azole Lai
 
Docker 基礎介紹與實戰
Bo-Yi Wu
 
Docker Build
Miles Chou
 
從軟體開發角度
談 Docker 的應用
謝 宗穎
 
20150604 docker 新手入門
azole Lai
 
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
Will Huang
 
docker intro
koji lin
 
GCPUG.TW meetup #28 - GKE上運作您的k8s服務
Simon Su
 
Windows Container 101: dotNET, Container, Kubernetes
Will Huang
 
20220224台中演講k8s
chabateryuhlin
 
Docker
旭 張
 
Docker
NCUDSC
 
Kubernetes 地端自建 v.s. GKE,哪個更適合你? @Devfest Taipei 2024
Johnny Sung
 
Oh K8s Is Swag - Kubernetes Basics
Okis Chuang
 
Kubernetes on gcp
Tech Podcast Night
 
Continuous Delivery Workshop with Ansible x GitLab CI (5th)
Chu-Siang Lai
 
Ad

More from Will Huang (20)

PPTX
深入理解 CVE-2022-24765 漏洞的攻擊與防護策略 (Git v2.35.2)
Will Huang
 
PPTX
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
Will Huang
 
PPTX
ASP.NET Core 6.0 全新功能探索
Will Huang
 
PPTX
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
Will Huang
 
PPTX
你一定不能不知道的 Markdown 寫作技巧
Will Huang
 
PPTX
使用 .NET 5 實現美股期貨的量化交易策略 (.NET Conf 2020)
Will Huang
 
PPTX
Micro-frontends with Angular 10 (Modern Web 2020)
Will Huang
 
PPTX
從實戰經驗看到的 K8S 導入痛點
Will Huang
 
PPTX
RxJS 6 新手入門
Will Huang
 
PPTX
极速 Angular 开发:效能调校技巧 (ngChina 2019)
Will Huang
 
PPTX
你不可不知的 ASP.NET Core 3 全新功能探索 (.NET Conf 2019)
Will Huang
 
PPTX
Protractor: The Hacker way (NG-MY 2019)
Will Huang
 
PPTX
邁向 Windows Server 應用程式現代化 (Windows Server Application Modernization)
Will Huang
 
PPTX
Angular 开发技巧 (2018 ngChina 开发者大会)
Will Huang
 
PPTX
Angular 7 全新功能探索 (Angular Taiwan 2018)
Will Huang
 
PPTX
利用.NET Core 與 Azure Kubernetes Service (AKS) 建立高彈性 Microservices (Azure TechDay)
Will Huang
 
PPTX
AKS 與開發人員體驗 (Kubernetes 大講堂)
Will Huang
 
PPTX
使用 ASP.NET Blazor 開發 SPA 網頁應用程式 (.NET Conf 2018)
Will Huang
 
PPTX
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
Will Huang
 
PPTX
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
Will Huang
 
深入理解 CVE-2022-24765 漏洞的攻擊與防護策略 (Git v2.35.2)
Will Huang
 
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
Will Huang
 
ASP.NET Core 6.0 全新功能探索
Will Huang
 
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
Will Huang
 
你一定不能不知道的 Markdown 寫作技巧
Will Huang
 
使用 .NET 5 實現美股期貨的量化交易策略 (.NET Conf 2020)
Will Huang
 
Micro-frontends with Angular 10 (Modern Web 2020)
Will Huang
 
從實戰經驗看到的 K8S 導入痛點
Will Huang
 
RxJS 6 新手入門
Will Huang
 
极速 Angular 开发:效能调校技巧 (ngChina 2019)
Will Huang
 
你不可不知的 ASP.NET Core 3 全新功能探索 (.NET Conf 2019)
Will Huang
 
Protractor: The Hacker way (NG-MY 2019)
Will Huang
 
邁向 Windows Server 應用程式現代化 (Windows Server Application Modernization)
Will Huang
 
Angular 开发技巧 (2018 ngChina 开发者大会)
Will Huang
 
Angular 7 全新功能探索 (Angular Taiwan 2018)
Will Huang
 
利用.NET Core 與 Azure Kubernetes Service (AKS) 建立高彈性 Microservices (Azure TechDay)
Will Huang
 
AKS 與開發人員體驗 (Kubernetes 大講堂)
Will Huang
 
使用 ASP.NET Blazor 開發 SPA 網頁應用程式 (.NET Conf 2018)
Will Huang
 
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
Will Huang
 
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
Will Huang
 
Ad

實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)

  • 1. Continuous Deployment with Angular, Docker and Kubernetes 實現 Angular, Docker 與 Kubernetes 持續部署 多奇數位創意有限公司 技術總監 黃保翕(Will 保哥) https://blog.miniasp.com
  • 3. 實作環境 The Environment • Windows 10 Build 19041 • Node.js v15.1.0 • Angular CLI v10.2.0 • Docker Desktop 2.5.0.0 (49427) • WSL 2 • kind 0.9.0 / Kubernetes v1.19.1 • kubectl / k9s 3
  • 4. 安裝好用的 VSCode 擴充套件 • Angular Extension Pack • Docker • Kubernetes / Kubernetes Snippets / Kubernetes Kind • YAML • DotENV (Support for dotenv file syntax) • Encode Decode 4
  • 5. 建立 Kubernetes 叢集 Create Kubernetes Cluster
  • 6. 準備含有 Ingress 的 kind 叢集定義檔 kind-2nodes-ingress.yaml 6
  • 7. 使用 kind 建立 Kubernetes 叢集 kind create cluster --config ./kind-2nodes-ingress.yaml 7
  • 8. 建立 NGINX Ingress Controller • 安裝 NGINX Ingress Controller 控制器 • 等待 Controller 建立完畢 • 測試 Ingress 是否正常運作 8 kubectl apply -f https://bit.ly/k8s-ingress-nginx kubectl wait --namespace ingress-nginx --for=condition=ready pod --selector=app.kubernetes.io/component=controller --timeout=90s kubectl apply -f https://bit.ly/k8s-ingress-usage 本機測試 http://localhost/foo 網站連線
  • 9. 將 Angular 應用程式部署至 Kubernetes Deploy Angular application on Kubernetes
  • 10. 基本步驟 Basic Steps • 準備前端與後端應用程式 (Angular + .NET Core) • 準備好 NGINX 設定檔(用以裝載 Angular 應用程式) • 撰寫 Dockerfile 並打包好 Docker Images • 上傳 Docker Images 到 Container Registry • 建立 TLS/SSL 憑證 • 撰寫 YAML 設定檔 ( Deployment, Service, Ingress ) • 套用 YAML 設定至 Kubernetes 10
  • 12. CI / CD • docker build -t willh/ngplus:web . • docker push willh/ngplus:web • docker build -t willh/ngplus:api . • docker push willh/ngplus:api • kubectl apply -f ./depoy.yaml 12
  • 13. 相關連結 • Ingress | Kubernetes • NGINX Ingress Controller ( GitHub ) • Understanding kubernetes networking: ingress • Kubernetes Ingress with Nginx Example 13
  • 14. The Will Will Web 網路世界的學習心得與技術分享 http://blog.miniasp.com/ Facebook Will 保哥的技術交流中心 http://www.facebook.com/will.fans Twitter https://twitter.com/Will_Huang 聯絡資訊