KaiRen's Blog

Learn Anything, Anytime, Anywhere~

Prometheus 介紹與基礎入門

Prometheus 是一套開放式原始碼的系統監控警報框架與TSDB(Time Series Database),該專案是由 SoundCloud 的工程師(前 Google 工程師)建立,Prometheus 啟發於 Google 的 Borgmon 監控系統。目前 Prometheus 已貢獻到 CNCF 成為孵化專案(2016-),其受歡迎程度僅次於 Kubernetes。 Prom......

以 Keystone 作為 Kubernetes 使用者認證

本文章將說明如何整合 Keystone 來提供給 Kubernetes 進行使用者認證。但由於 Keystone 整合 Kubernetes 認證在 1.10.x 版本已從原生移除(--experimental-keystone-url, --experimental-keystone-ca-file),並轉而使用 cloud-provider-openstack 中的 Webhook 來達......

在 AWS 上建立跨地區的 Kubernetes Federation 叢集

本篇延續先前 On-premises Federation 與 Kops 經驗來嘗試在 AWS 上建立 Federaion 叢集,這邊架構如下圖所示: 本次安裝的軟體版本: Kubernetes v1.9.3 kops v1.9.0 kubefed v1.10 節點資訊測試環境為 AWS EC2 虛擬機器,共有三組叢集: US West(Oregon) 叢集,也是 Federatio......

使用 Kops 部署 Kubernetes 至公有雲(AWS)

Kops 是 Kubernetes 官方維護的專案,是一套 Production ready 的 Kubernetes 部署、升級與管理工具,早期用於 AWS 公有雲上建置 Kubernetes 叢集使用,但隨著社群的推進已支援 GCP、vSphere(Alpha),未來也會有更多公有雲平台慢慢被支援(Maybe)。本篇簡單撰寫使用 Kops 部署一個叢集,過去自己因為公司都是屬於建置 On......

整合 Open LDAP 進行 Kubernetes 身份認證

本文將說明如何整合 OpenLDAP 來提供給 Kubernetes 進行使用者認證。Kubernetes 官方並沒有提供針對 LDAP 與 AD 的整合,但是可以藉由 Webhook Token Authentication 以及 Authenticating Proxy 來達到整合功能。概念是開發一個 HTTP Server 提供 POST Method 來塞入 Bearer Token......

Kubernetes v1.10.x HA 全手動苦工安裝教學(TL;DR)

本篇延續過往手動安裝方式來部署 Kubernetes v1.10.x 版本的 High Availability 叢集,主要目的是學習 Kubernetes 安裝的一些元件關析與流程。若不想這麼累的話,可以參考 Picking the Right Solution 來選擇自己最喜歡的方式。 本次安裝的軟體版本: Kubernetes v1.10.0 CNI v0.6.0 Etcd v3.1......

使用 kubefed 建立 Kubernetes Federation(On-premises)

Kubernetes Federation(聯邦) 是實現跨地區與跨服務商多個 Kubernetes 叢集的管理機制。Kubernetes Federation 的架構非常類似純 Kubenretes 叢集,Federation 會擁有自己的 API Server 與 Controller Manager 來提供一個標準的 Kubernetes API,以及管理聯邦叢集,並利用 Etcd 來......

利用 Kubeflow 來管理 TensorFlow 應用程式

Kubeflow 是 Google 開源的機器學習工具,目標是簡化在 Kubernetes 上運行機器學習的過程,使之更簡單、可攜帶與可擴展。Kubeflow 目標不是在於重建其他服務,而是提供一個最佳開發系統來部署到各種基礎設施架構中,另外由於使用 Kubernetes 來做為基礎,因此只要有 Kubernetes 的地方,都能夠執行 Kubeflow。 該工具能夠建立以下幾項功能: ......

Kubernetes NVIDIA Device Plugins

Device Plugins 是 Kubernetes v1.8 版本開始加入的 Alpha 功能,目標是結合 Extended Resource 來支援 GPU、FPGA、高效能 NIC、InfiniBand 等硬體設備介接的插件,這樣好處在於硬體供應商不需要修改 Kubernetes 核心程式,只需要依據 Device Plugins 介面來實作特定硬體設備插件,就能夠提供給 Kuber......

安裝 NVIDIA Docker 2 來讓容器使用 GPU

本篇主要介紹如何使用 NVIDIA Docker v2 來讓容器使用 GPU,過去 NVIDIA Docker v1 需要使用 nvidia-docker 來取代 Docker 執行 GPU image,或是透過手動掛載 NVIDIA driver 與 CUDA 來使 Docker 能夠編譯與執行 GPU 應用程式 image,而新版本的 Docker 則可以透過 –runtime 來選擇使......