KaiRen's Blog

Learn Anything, Anytime, Anywhere~

開發 Ansible Playbooks 部署 Kubernetes v1.11.x HA 叢集

本篇將介紹如何透過 Ansible Playbooks 來快速部署多節點 Kubernetes,一般自建 Kubernetes 叢集時,很多初步入門都會透過 kubeadm 或腳本來部署,雖然 kubeadm 簡化了很多流程,但是還是需要很多手動操作過程,這使得當節點超過 5 - 8 台時就覺得很麻煩,因此許多人會撰寫腳本來解決這個問題,但是腳本的靈活性不佳,一旦設定過程過於龐大時也會造成其......

初探 Knative 基本功能與概念

Knative 是基於 Kubernetes 平台建構、部署與管理現代 Serverless 工作負載的開源專案,其目標是要幫助雲端供應商與企業平臺營運商替任何雲端環境的開發者、操作者等提供 Serverless 服務體驗。Knative 採用了 Kubernetes 概念來建構函式與應用程式,並以 Istio 實現了叢集內的網路路由,以及進入服務的外部連接,這讓開發者在部署或執行變得更加......

透過 Minikube 建立多虛擬機節點的 Kubernetes 叢集(不要懷疑!)

本文將說明如何透過 Minikube 建立多節點 Kubernetes 叢集。一般來說 Minikube 僅提供單節點功能,即透過虛擬機建立僅有一個具備 Maste/Node 節點的 Kubernetes 叢集,然而為了方便快速部署與測試多節點功能,自己改了一下 Minikube,並支援到 v1.11.x 版本,因此這邊提供給大家參考。 事前準備開始部署叢集前需先確保以下條件已達成: ......

以 ExternalDNS 自動同步 Kubernetes Ingress 與 Service DNS 資源紀錄

本篇說明如何透過 CoreDNS 自建一套 DNS 服務,並利用 Kubernetes ExternalDNS 同步 Kubernetes 的 Ingress 與 Service API object 中的域名(Domain Name)來產生資源紀錄(Record Resources),讓使用者能夠透過自建 DNS 服務來導向到 Kubernetes 上的應用服務。 使用元件功能介紹 Co......

利用 kubeadm 部署 Kubernetes v1.11.x HA 叢集

本篇將說明如何透過 Kubeadm 來部署 Kubernetes v1.11 版本的 High Availability 叢集,而本安裝主要是參考官方文件中的 Creating Highly Available Clusters with kubeadm 內容來進行,這邊將透過 HAProxy 與 Keepalived 的結合來實現控制面的 Load Balancer 與 VIP。 Kub......

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

本篇延續過往手動安裝方式來部署 Kubernetes v1.11.x 版本的 High Availability 叢集,而此次教學將直接透過裸機進行部署 Kubernetes 叢集。以手動安裝的目標是學習 Kubernetes 各元件關析、流程、設定與部署方式。若不想這麼累的話,可以參考 Picking the Right Solution 來選擇自己最喜歡的方式。 Kubernetes......

Prometheus 高可靠實現方式

前面幾篇提到了 Prometheus 儲存系統與 Federation 功能,其中在儲存系統可以得知 Local on-disk 方式雖然能夠帶來很好的效能,但是卻也存在著單點故障的問題,並且限制了 Prometehsu 的可擴展性,引發資料的持久等問題,也因此 Prometheus 提供了遠端儲存(Remote storage)的特性來解決擴展性問題。 而除了儲存問題外,另一方面就是要考量......

了解 Prometheus Federation 功能

Prometheus 在效能上是能夠以單個 Server 支撐百萬個時間序列,當然根據不同規模的改變,Promethes 是能夠進行擴展的,這邊將介紹 Prometheus Federation 來達到此效果。 Prometheus Federation 允許一台 Prometheus Server 從另一台 Prometheus Server 刮取選定的時間序列資料。Federation ......

Kubernetes exec API 串接分析

本篇將說明 Kubernetes exec API 的運作方式,並以簡單範例進行開發在前後端上。雖然 Kubernetes 提供了不同資源的 RESTful API 來進行 CRUD 操作,但是部分 API 並非單純的回傳一個資料,有些是需要透過 SPDY 或 WebSocket 建立長連線串流,這種 API 以 exec、attach 為主,目標是對一個 Pod 執行指定指令,或者進入該 ......

Prometheus Operator 介紹與安裝

Prometheus Operator 是 CoreOS 開源的一套用於管理在 Kubernetes 上的 Prometheus 控制器,目標當然就是簡化部署與維護 Prometheus 上的事情,其架構如下所示: 架構中的每一個部分都執行於 Kubernetes 的資源,這些資源分別負責不同作用與意義: Operator:Operator 是整個系統的主要控制器,會以 Deploym......