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

Kops 是 Kubernetes 官方維護的專案,是一套 Production ready 的 Kubernetes 部署、升級與管理工具,早期用於 AWS 公有雲上建置 Kubernetes 叢集使用,但隨著社群的推進已支援 GCP、vSphere(Alpha),未來也會有更多公有雲平台慢慢被支援(Maybe)。本篇簡單撰寫使用 Kops 部署一個叢集,過去自己因為公司都是屬於建置 On-premises 的 Kubernetes,因此很少使用 Kops,剛好最近社群分享又再一次接觸的關析,所以就來寫個文章。

本次安裝的軟體版本:

  • Kubernetes v1.9.3
  • Kops v1.9.0

Read More

Share Comments

以 OpenLDAP 進行 Kubernetes 身份認證

本文將說明如何整合 OpenLDAP 來提供給 Kubernetes 進行使用者認證。Kubernetes 官方並沒有提供針對 LDAP 與 AD 的整合,但是可以藉由 Webhook Token Authentication 以及 Authenticating Proxy 來達到整合功能。概念是開發一個 HTTP Server 提供 POST Method 來塞入 Bearer Token,而該 HTTP Server 利用 LDAP library 檢索對應 Token 的 User 進行認證,成功後回傳該 User 的所有 Group 等資訊,而這時可以利用 Kubernetes 針對該 User 的 Group 設定對應的 RBAC role 進行權限控管。

Read More

Share Comments

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


本文章已被棄用,請不要參考。
(This post is being deprecated. Don’t refer it.)

Kubernetes Federation(聯邦) 是實現跨地區與跨服務商多個 Kubernetes 叢集的管理機制。Kubernetes Federation 的架構非常類似純 Kubenretes 叢集,Federation 會擁有自己的 API Server 與 Controller Manager 來提供一個標準的 Kubernetes API,以及管理聯邦叢集,並利用 Etcd 來儲存所有狀態,不過差異在於 Kubenretes 只管理多個節點,而 Federation 是管理所有被註冊的 Kubernetes 叢集。

Read More

Share Comments

[Kubeflow] 初探基本功能與概念

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

Read More

Share Comments

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