本文件最初是基於kubenetes1.6版本編寫的,對於kuberentes1.8及以上版本同樣適用,只是個別位置有稍許變動,變動的地方我將特別註明版本要求。本系列文件介紹使用二進位制部署
kubernetes
集群的所有步驟,而不是使用kubeadm
等自動化方式來部署集群,同時開啟了集群的tls安全認證,該安裝步驟適用於所有bare metal環境、on-premise環境和公有雲環境。
如果您想快速的在自己電腦的本地環境下使用虛擬機器來搭建kubernetes集群,可以參考本地分布式開發環境搭建(使用vagrant和virtualbox)。在部署的過程中,將詳細列出各元件的啟動引數,給出配置檔案,詳解它們的含義和可能遇到的問題。
部署完成後,你將理解系統各元件的互動原理,進而能快速解決實際問題。
所以本文件主要適合於那些有一定 kubernetes 基礎,想通過一步步部署的方式來學習和了解系統配置、執行原理的人。
注:本文件中不包括docker和私有映象倉庫的安裝,安裝說明中使用的映象來自 google cloud platform,中國大陸使用者若無法訪問請自行選擇其他映象倉庫備份。
集群安裝時所有元件用到的配置檔案,包含在以下目錄中:
在下面的步驟中,我們將在三颱centos系統的物理機上部署具有三個節點的kubernetes1.6.0集群。
角色分配如下:
映象倉庫:172.20.0.112,網域名稱為harbor.jimmysong.io
,為私有映象倉庫,請替換為公共倉庫或你自己的映象倉庫位址。
master:172.20.0.113
node:172.20.0.113、172.20.0.114、172.20.0.115
注意:172.20.0.113這台主機master和node復用。所有生成證書、執行kubectl命令的操作都在這台節點上執行。一旦node加入到kubernetes集群之後就不需要再登陸node節點了。
在node節點上安裝docker1.12.5
直接使用yum install docker
關閉所有節點的selinux
永久方法 – 需要重啟伺服器
修改/etc/selinux/config
檔案中設定selinux=disabled ,然後重啟伺服器。
臨時方法 – 設定系統引數
使用命令setenforce 0
附:setenforce 1 設定selinux 成為enforcing模式 setenforce 0 設定selinux 成為permissive模式
準備harbor私有映象倉庫
參考:建立 tls 證書和秘鑰
建立kubeconfig 檔案
建立高可用etcd集群
安裝kubectl命令列工具
部署master節點
安裝flannel網路外掛程式
部署node節點
安裝kubedns外掛程式
安裝dashboard外掛程式
安裝heapster外掛程式
安裝efk外掛程式
由於啟用了 tls 雙向認證、rbac 授權等嚴格的安全機制,建議從頭開始部署,而不要從中間開始,否則可能會認證、授權等失敗!
該部署操作僅是搭建成了乙個可用 kubernetes 集群,而很多地方還需要進行優化,heapster 外掛程式、efk 外掛程式不一定會用於真實的生產環境中,但是通過部署這些外掛程式,可以讓大家了解到如何部署應用到集群上。
注:本安裝文件參考了 opsnull 跟我一步步部署 kubernetes 集群
如何使用K8S的Ingress
ingress的好處與特點我就沒有必要再說一次了,本文主要說明的是使用方法 請先完成k8s的安裝,安裝ingress,它包括乙個defaulebackend,與nginx ingress control,並pull下需要的docker image 注意這裡請注意一點,為了方便,我們希望在部署ingr...
K8S 2 k8s 集群搭建
kubeadm是官方社群推出的乙個用於快速部署kubernetes集群的工具。這個工具能通過兩條指令完成乙個kubernetes集群的部署 建立乙個 master 節點 kubeadm init 將乙個 node 節點加入到當前集群中 kubeadm join 在開始之前,部署 kubernetes...
K8s部署prometheus監控K8s細節
prometheus 一些配置檔案可以再github上找到。部署 root kube prometheus manifests 目錄下所有檔案 部署 root kube prometheus manifests setup 目錄下所有檔案 要注意的是自己要建立乙個工作空間 如果報錯執行下面語句 部署...