基于Kubernetes部署安裝KubeSphere

本文來自于我的公眾號程序猿天璇基于Kubernetes部署安裝KubeSphere珠增,轉載請保留鏈接 ;)

KubeSphere簡介

Kubernetes官方有提供一套Dashboard超歌,但是我這里選擇功能更強大的KubeSphere,以下內容引用自KubeSphere官網:

KubeSphere是在Kubernetes之上構建的以應用為中心的企業(yè)級分布式容器平臺蒂教,提供簡單易用的操作界面以及向導式操作方式巍举,在降低用戶使用容器調度平臺學習成本的同時,極大減輕開發(fā)凝垛、測試懊悯、運維的日常工作的復雜度,旨在解決 Kubernetes 本身存在的存儲梦皮、網絡炭分、安全和易用性等痛點。除此之外剑肯,平臺已經整合并優(yōu)化了多個適用于容器場景的功能模塊捧毛,以完整的解決方案幫助企業(yè)輕松應對敏捷開發(fā)與自動化運維、DevOps让网、微服務治理呀忧、灰度發(fā)布、多租戶管理溃睹、工作負載和集群管理而账、監(jiān)控告警、日志查詢與收集因篇、服務與網絡泞辐、應用商店、鏡像構建與鏡像倉庫管理和存儲管理等多種業(yè)務場景惜犀。后續(xù)版本還將提供和支持多集群管理铛碑、大數據狠裹、人工智能等更為復雜的業(yè)務場景虽界。

KubeSphere 從項目初始階段就采用開源的方式來進行項目的良性發(fā)展,相關的項目源代碼和文檔都在GitHub可見涛菠。KubeSphere 支持部署和運行在包括公有云莉御、私有云撇吞、VM、BM 和 Kubernetes 等任何基礎設施之上礁叔,并且支持在線安裝與離線安裝牍颈,目前已在阿里云、騰訊云琅关、華為云煮岁、青云、AWS涣易、Kubernetes上進行過部署測試画机。

KubeSphere 2.1 提供了全棧化容器部署與管理平臺新症,支持在生產環(huán)境安裝與使用步氏,它的核心功能可以概括在以下的功能架構圖中,了解 2.1 的具體功能說明徒爹,可以在產品功能進行查看荚醒。

image

安裝要求

KubeSphere支持直接在Linux上部署集群,也支持在Kubernetes上部署隆嗅,我這里選擇后者界阁,基本的要求如下:

  • Kubernetes 版本:1.15.x ≤ K8s version ≤ 1.17.x
  • Helm 版本:2.10.0 ≤ Helm Version < 3.0.0(不支持 helm 2.16.0#6894)胖喳,且已安裝了 Tiller铺董,參考如何安裝與配置 Helm(預計 3.0 支持 Helm v3);
  • 集群已有默認的存儲類型(StorageClass)禀晓,若還沒有準備存儲請參考安裝 OpenEBS 創(chuàng)建 LocalPV 存儲類型用作開發(fā)測試環(huán)境精续。
  • 集群能夠訪問外網,若無外網請參考在 Kubernetes 離線安裝 KubeSphere粹懒。

安裝Helm

Helm簡介

helm基本思想如圖所示

image

以下內容引用自 此篇文章

為什么要用Helm重付?

首先在原來項目中都是基于yaml文件來進行部署發(fā)布的,而目前項目大部分微服務化或者模塊化凫乖,會分成很多個組件來部署确垫,每個組件可能對應一個deployment.yaml,一個service.yaml,一個Ingress.yaml還可能存在各種依賴關系,這樣一個項目如果有5個組件帽芽,很可能就有15個不同的yaml文件删掀,這些yaml分散存放,如果某天進行項目恢復的話导街,很難知道部署順序披泪,依賴關系等,而所有這些包括

  • 基于yaml配置的集中存放
  • 基于項目的打包
  • 組件間的依賴
  • 都可以通過helm來進行解決搬瑰。

Helm 基本概念

Helm 可以理解為 Kubernetes 的包管理工具款票,可以方便地發(fā)現控硼、共享和使用為Kubernetes構建的應用,它包含幾個基本概念

  • Chart:一個 Helm 包艾少,其中包含了運行一個應用所需要的鏡像卡乾、依賴和資源定義等,還可能包含 Kubernetes 集群中的服務定義
  • Release: 在 Kubernetes 集群上運行的 Chart 的一個實例缚够。在同一個集群上幔妨,一個 Chart 可以安裝很多次。每次安裝都會創(chuàng)建一個新的 release谍椅。例如一個 MySQL Chart陶冷,如果想在服務器上運行兩個數據庫,就可以把這個 Chart 安裝兩次毯辅。每次安裝都會生成自己的 Release埂伦,會有自己的 Release 名稱。
  • Repository:用于發(fā)布和存儲 Chart 的倉庫思恐。

Helm 組件及架構

Helm 采用客戶端/服務器架構沾谜,有如下組件組成:

  • Helm CLI 是 Helm 客戶端,可以在本地執(zhí)行
  • Tiller 是服務器端組件胀莹,在 Kubernetes 群集上運行基跑,并管理 Kubernetes 應用程序的生命周期
  • Repository 是 Chart 倉庫,Helm客戶端通過HTTP協議來訪問倉庫中Chart的索引文件和壓縮包描焰。

Helm安裝

安裝過程如下

# 創(chuàng)建部署目錄并下載Helm
mkdir tiller
cd tiller

# 先使用官方的方式安裝媳否,如果安裝不了,可以看到下載文件的地址荆秦,然后手動下載解壓
curl -L https://git.io/get_helm.sh | bash
# 獲取到下載地址后篱竭,想辦法下載
wget https://get.helm.sh/helm-v2.16.3-linux-amd64.tar.gz
tar zxf helm-v2.16.3-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/helm

# 驗證
helm version

部署tiller,對于tiller的官方的解釋如下

Tiller is the server component for helm. Tiller will be present in the kubernetes cluster and the helm client talks to it for deploying applications using helm charts.

先創(chuàng)建 SA

# yaml文件如下
$ cat /root/tiller/helm-rbac.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
 name: tiller
 namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
 name: tiller
roleRef:
 apiGroup: rbac.authorization.k8s.io
 kind: ClusterRole
 name: cluster-admin
subjects:
 - kind: ServiceAccount
 name: tiller
 namespace: kube-system

創(chuàng)建ac

kubectl apply -f helm-rbac.yaml

初始化步绸,這個過程可能不會成功掺逼,具體接著往下看

helm init --service-account=tiller --history-max 300

檢查初始化的情況,不出意外的話瓤介,墻內用戶看pod詳情可以看到獲取不到鏡像的錯誤吕喘。

kubectl get deployment tiller-deploy -n kube-system

如果一直獲取不到鏡像,可以通過更換到Azure中國鏡像源來解決刑桑,操作步驟如下:

# 編輯 deploy
kubectl edit deploy tiller-deploy -n kube-system
# 查找到image地址氯质,替換為如下地址,保存退出
gcr.azk8s.cn/kubernetes-helm/tiller:v2.16.3

接下來稍等片刻祠斧,再次查看deployment和pod詳情闻察,就正常了

kubectl get deployment tiller-deploy -n kube-system

安裝StorageClass

Kubernetes支持多種StorageClass,我這選擇NFS作為集群的StorageClass。

參考地址:https://github.com/kubernetes-incubator/external-storage/tree/master/nfs-client

下載所需文件

下載所需文件蜓陌,并進行內容調整

mkdir nfsvolume && cd nfsvolume
for file in class.yaml deployment.yaml rbac.yaml ; do wget https://raw.githubusercontent.com/kubernetes-incubator/external-storage/master/nfs-client/deploy/$file ; done

修改deployment.yaml中的兩處NFS服務器IP和目錄

...
          env:
            - name: PROVISIONER_NAME
              value: fuseim.pri/ifs
            - name: NFS_SERVER
              value: 192.168.115.50
            - name: NFS_PATH
              value: /data/k8s
      volumes:
        - name: nfs-client-root
          nfs:
            server: 192.168.115.50
            path: /data/k8s

部署創(chuàng)建

具體的說明可以去官網查看觅彰。

kubectl create -f rbac.yaml
kubectl create -f class.yaml
kubectl create -f deployment.yaml

如果日志中看到“上有壞超級塊”吩蔑,請在集群內所有機器上安裝nfs-utils并啟動钮热。

yum -y install nfs-utils
systemctl start nfs-utils
systemctl enable nfs-utils
rpcinfo -p

查看storageclass

$ kubectl get storageclass
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
managed-nfs-storage fuseim.pri/ifs Delete Immediate false 10m

標記一個默認的StorageClass

操作命令格式如下

kubectl patch storageclass -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

請注意,最多只能有一個 StorageClass 能夠被標記為默認烛芬。

驗證標記是否成功

$ kubectl get storageclass
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
managed-nfs-storage (default) fuseim.pri/ifs Delete Immediate false 12m

部署kubesphere

過程很簡單隧期,如果你的機器資源足夠,建議你進行完整安裝赘娄,操作步驟如下仆潮。如果你的資源不是很充足,則可以進行最小化安裝遣臼,參考地址性置。我當然是選擇完整安裝了,香揍堰!

# 下載yaml文件
mkdir kubesphere && cd kubesphere
wget https://raw.githubusercontent.com/kubesphere/ks-installer/master/kubesphere-complete-setup.yaml
# 部署 kubesphere
kubectl apply -f kubesphere-complete-setup.yaml

這個過程根據你實際網速鹏浅,實際使用時間長度有所不同。你可以通過如下命令查看實時的日志輸出屏歹。當你在日志充看到 http://192.168.115.49:30880 字樣的輸出時隐砸,證明你的集群安裝成功。

kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f

當你看到如下日志輸出蝙眶,證明你的 KubeSphere 部署成功

**************************************************
task monitoring status is successful
task notification status is successful
task devops status is successful
task alerting status is successful
task logging status is successful
task openpitrix status is successful
task servicemesh status is successful
total: 7     completed:7
**************************************************
#####################################################
###              Welcome to KubeSphere!           ###
#####################################################

Console: http://192.168.115.49:30880
Account: admin
Password: P@88w0rd

NOTES:
  1\. After logging into the console, please check the
     monitoring status of service components in
     the "Cluster Status". If the service is not
     ready, please wait patiently. You can start
     to use when all components are ready.
  2\. Please modify the default password after login.

#####################################################

確認 Pod 都正常運行后季希,可使用IP:30880訪問 KubeSphere UI 界面,默認的集群管理員賬號為admin/P@88w0rd幽纷,Enjoy it式塌,??!

image
image
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末友浸,一起剝皮案震驚了整個濱河市珊搀,隨后出現的幾起案子,更是在濱河造成了極大的恐慌尾菇,老刑警劉巖境析,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異派诬,居然都是意外死亡劳淆,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門默赂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沛鸵,“玉大人,你說我怎么就攤上這事∏” “怎么了疾捍?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長栏妖。 經常有香客問我乱豆,道長,這世上最難降的妖魔是什么吊趾? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任宛裕,我火速辦了婚禮,結果婚禮上论泛,老公的妹妹穿的比我還像新娘揩尸。我一直安慰自己,他們只是感情好屁奏,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布岩榆。 她就那樣靜靜地躺著,像睡著了一般坟瓢。 火紅的嫁衣襯著肌膚如雪勇边。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天载绿,我揣著相機與錄音粥诫,去河邊找鬼。 笑死崭庸,一個胖子當著我的面吹牛怀浆,可吹牛的內容都是我干的。 我是一名探鬼主播怕享,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼执赡,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了函筋?” 一聲冷哼從身側響起沙合,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎跌帐,沒想到半個月后首懈,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡谨敛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年究履,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片脸狸。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡最仑,死狀恐怖藐俺,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情泥彤,我是刑警寧澤欲芹,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站吟吝,受9級特大地震影響菱父,放射性物質發(fā)生泄漏。R本人自食惡果不足惜爸黄,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一滞伟、第九天 我趴在偏房一處隱蔽的房頂上張望揭鳞。 院中可真熱鬧炕贵,春花似錦、人聲如沸野崇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽乓梨。三九已至鳖轰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間扶镀,已是汗流浹背蕴侣。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留臭觉,地道東北人昆雀。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像蝠筑,于是被迫代替她去往敵國和親狞膘。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內容