Kubernetes NVIDIA Device Plugins

Device Plugins 是 Kubernetes v1.8 版本開始加入的 Alpha 功能,目標是結合 Extended Resource 來支援 GPU、FPGA、高效能 NIC、InfiniBand 等硬體設備介接的插件,這樣好處在於硬體供應商不需要修改 Kubernetes 核心程式,只需要依據 Device Plugins 介面來實作特定硬體設備插件,就能夠提供給 Kubernetes Pod 使用。而本篇會稍微提及 Device Plugin 原理,並說明如何使用 NVIDIA device plugin。

P.S. 傳統的alpha.kubernetes.io/nvidia-gpu將於 1.11 版本移除,因此與 GPU 相關的排程與部署原始碼都將從 Kubernetes 核心移除。

Read More

Share Comments

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

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

Read More

Share Comments

Ceph Luminous CRUSH map 400000000000000 問題

在 Ceph Luminous(v12) 版本中,預設開啟了一些 Kernel 特性,其中首先遇到的一般是 400000000000000 問題,即CEPH_FEATURE_NEW_OSDOPREPLY_ENCODING特性(可以從對照表得知CEPH_FEATURE Table and Kernel Version),剛問題需要在 Kernel 4.5+ 才能夠被支援,但如果不想升級可以依據本篇方式解決。

Read More

Share Comments

利用 RBAC + SA 進行 Kubectl 權限控管

這邊說明如何建立不同 Service account user,以及 RBAC 來定義存取規則,並綁定於指定 Service account ,以對指定 Namespace 中資源進行存取權限控制。

Read More

Share Comments

多租戶 Kubernetes 部署方案 Stackube

Stackube是一個 Kubernetes-centric 的 OpenStack 發行版本(架構如下圖所示),該專案結合 Kubernetes 與 OpenStack 的技術來達到真正的 Kubernetes 租戶隔離,如租戶實例採用 Frakti 來進行隔離、網路採用 Neutron OVS 達到每個 Namespace 擁有獨立的網路資源等。本篇會簡單介紹如何用 DevStack 建立測試用 Stackube。

Read More

Share Comments

Deploy OpenStack on Kubernetes using OpenStack-helm

OpenStack Helm 是一個提供部署建置的專案,其目的是為了推動 OpenStack 生產環境的解決方案,而這種部署方式採用容器化方式,並執行於 Kubernetes 系統上來提供 OpenStack 服務的管理與排程等使用。

Read More

Share Comments

利用 Kuryr 整合 OpenStack 與 Kubernetes 網路

Kubernetes Kuryr 是 OpenStack Neutron 的子專案,其主要目標是透過該專案來整合 OpenStack 與 Kubernetes 的網路。該專案在 Kubernetes 中實作了原生 Neutron-based 的網路,因此使用 Kuryr-Kubernetes 可以讓你的 OpenStack VM 與 Kubernetes Pods 能夠選擇在同一個子網路上運作,並且能夠使用 Neutron 的 L3 與 Security Group 來對網路進行路由,以及阻擋特定來源 Port。

Read More

Share Comments

利用 OpenStack Ironic 提供裸機部署服務

Ironic 是 OpenStack 專案之一,主要目的是提供裸機機器部署服務(Bare-metal service)。它能夠單獨或整合 OpenStack 其他服務被使用,而可整合服務包含 Keystone、Nova、Neutron、Glance 與 Swift 等核心服務。當使用 Compute 與 Network 服務對 Bare-metal 進行適當的配置時,OpenStack 可以透過 Compute API 同時部署虛擬機(Virtual machines)與裸機(Bare machines)。

本篇為了精簡安裝過程,故這邊不採用手動安裝教學(會在 Gitbook 書上更新),因此採用 DevStack 來部署服務,再手動設定一些步驟。

本環境安裝資訊:

  • OpenStack Pike
  • DevStack Pike
  • Pike Pike Pike ….

Read More

Share Comments

利用 LinuxKit 建立 Kubernetes 叢集

LinuxKit 是以 Container 來建立最小、不可變的 Linux 作業系統映像檔框架,先前有簡單介紹與操作過,可以參考LinuxKit。本篇則將利用 LinuxKit 來建立 Kubernetes 的映像檔,並部署簡單的 Kubernetes 叢集。

Read More

Share Comments

智能合約(Smart contracts)

智能合約(Smart Contracts) 是在 Ethereum 區塊鏈中所屬的物件。它們包含程式碼函式以及能夠與其他合約進行互動、做出決策、儲存資料與傳送乙太幣給其他人。合約是由創建者所定義,但是它們的執行與他們所提供的服務,都是由 Ethereum 網路本身提供。它們將存在且可被執行,只要整個網路存在,並且只會因程式中有撰寫自我銷毀的功能才會消失。

我可以用合約做什麼呢?只要想像力夠豐富,要做什麼幾乎都沒問題,但以下指南只會是入門,讓我們去實現一些簡單的事情。

Read More

Share Comments