安裝KubeSphere


一、概述

官方中文文檔:https://kubesphere.io/docs/zh-CN/introduction/what-is-kubesphere/

KubeSphere 是什么

KubeSphere 是在 Kubernetes 之上構建的以應用為中心的企業級分布式容器平台,提供簡單易用的操作界面以及向導式操作方式,在降低用戶使用容器調度平台學習成本的同時,極大減輕開發、測試、運維的日常工作的復雜度,旨在解決 Kubernetes 本身存在的存儲、網絡、安全和易用性等痛點。除此之外,平台已經整合並優化了多個適用於容器場景的功能模塊,以完整的解決方案幫助企業輕松應對敏捷開發與自動化運維、DevOps、微服務治理、灰度發布、多租戶管理、工作負載和集群管理、監控告警、日志查詢與收集、服務與網絡、應用商店、鏡像構建與鏡像倉庫管理和存儲管理等多種業務場景。后續版本還將提供和支持多集群管理、大數據、人工智能等更為復雜的業務場景。

KubeSphere 從項目初始階段就采用開源的方式來進行項目的良性發展,相關的項目源代碼和文檔都在 GitHub 可見。KubeSphere 支持部署和運行在包括公有雲、私有雲、VM、BM 和 Kubernetes 等任何基礎設施之上,並且支持在線安裝與離線安裝,目前已在 阿里雲、騰訊雲、華為雲、青雲、AWS、Kubernetes 上進行過部署測試

功能架構

 

關於KubeSphere,最好最全面最通俗易懂的一篇文章是《一文說清 KubeSphere 容器平台的價值》,鏈接如下:

https://www.kubernetes.org.cn/7962.html

 

個人理解

KubeSphere,這是國內唯一一個開源的Kubernetes(k8s)發行版,它的開源不涉及任何商業意圖,它不屬於青雲而屬於社區,它極大地降低了使用Kubernetes的門檻,它的出現將加速中國企業向雲原生邁進的步伐。

“發行版”的說法常用於Linux操作系統。比如,雖有Linux內核,而Ubuntu、CentOS等等叫做Linux發行版,對應的,Kubernetes就相當於內核,KubeSphere就是Kubernetes的發行版,正常人類是很難使用Linux內核和Kubenetes的,為了讓大家用起來,要基於Linux內核和Kubernetes做很多周邊配套,Linux和Kubenetes就好像一台光禿禿的汽車發動機,為了把它當車開,你起碼得有車架子、輪胎、方向盤、剎車、……等等。 

所以,開源KubeSphere的青雲就像一個汽車廠,負責KubeSphere牌汽車各個組件的組裝搭配,不過,這個汽車不需要花錢就能獲取到,這就是青雲開源KubeSphere的實質。它的意義在於加快了大家使用k8s發動機的進程,讓大家都能開上KubeSphere牌汽車。

雲原生能幫助企業做數字化轉型,幫助企業用數字化轉型獲取競爭力。而KubeSphere可以讓企業更快地上原生,開上汽車。

 

以上摘抄自https://tech.ifeng.com/c/7u6tUXwXbJU

我覺得,讀完以后,醍醐灌頂,茅塞頓開

我們使用Linux的各種發行版(比如:CentOS、Ubuntu等)與Linux內核交互,極大地降低了使用Linux的門檻,而且像Ubuntu還提供了特別漂亮的桌面版,圖像界面式的操作使用起來更方便。

我們當然可以使用CMD命令行窗口同Windows系統交互,所有在圖形界面上完成的操作都可以通過命令行完成,但是這種操作方式的門檻極高,不利於微軟推行Windows桌面操作系統。

同樣的,Kubenetes就相當於內核,而KubeSphere就相當於是Kubernetes的發行版。KubeSphere提供極簡體驗,向導式UI,極大的降低了使用Kubenetes的門檻。

記不住Kubenetes命令不要緊,不會寫Dockerfile也沒關系,使用KubeSphere圖像界面以后一起都變得簡單了,而且它是以應用為中心的,極大地解放了運維和開發人員的生產力。

KubeSphere就是Java編程界的Spring。想想看,用了Spring以后你不需要關心各種數據庫的連接,各種各樣的組件都幫你集成好了,拿來就用。KubeSphere也是一樣,開箱即用。

 

二、最小化安裝

配置要求

官方配置要求:k8s集群可用 CPU > 1 Core 且可用內存 > 2 G

 

環境說明

系統 k8s版本 docker ip 主機名 配置
centos 7.6 1.16.3 19.03.5 192.168.31.148 k8s-master 2核4G
centos 7.6 1.16.3 19.03.5 192.168.31.179 k8s-node01 2核4G

 

 

 

 

安裝要求

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

 

注意:KubeSphere要求k8s版本 小於v1.18.0。否則會出現錯誤:

fatal: [localhost]: FAILED! => {
    "assertion": "kubernetes_version.stdout is version('v1.18.0', '<')", 
    "changed": false, 
    "evaluated_to": false, 
    "msg": "The current k8s version is not supported"
}

 

關於Kubernetes1.16.3安裝,請參考鏈接:

https://www.cnblogs.com/xiao987334176/p/11899321.html

 

安裝helm

KubeSphere依賴於helm,關於helm安裝,請參考鏈接:

https://www.cnblogs.com/xiao987334176/p/12752783.html

 

安裝nfs

為了方便演示,這里我直接在主機k8s-node01上面安裝。

 

創建共享目錄

mkdir -p /data/kubernetes

 

安裝組件

yum -y install nfs-utils rpcbind

 

編輯配置文件

vi /etc/exports

內容如下:

/data/kubernetes 192.168.31.0/24(rw,sync,no_root_squash)

注意:這里的192.168.31.0/24,表示客戶端訪問白名單。只有符合的ip,才能訪問。

 

啟動nfs服務

service nfs start
service rpcbind start

 

設置開機自啟動

systemctl enable nfs
systemctl enable rpcbind

 

登錄主機k8s-master,安裝客戶端組件

yum -y install nfs-utils rpcbind

 

測試nfs

# showmount -e 192.168.31.179
Export list for 192.168.31.179:
/data/kubernetes 192.168.31.0/24

出現列表,表示nfs工作正常。

 

安裝 StorageClass

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

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

 

登錄主機k8s-master,創建目錄

mkdir nfsvolume

 

下載yaml文件

https://raw.githubusercontent.com/kubernetes-incubator/external-storage/master/nfs-client/deploy/rbac.yaml
https://raw.githubusercontent.com/kubernetes-incubator/external-storage/master/nfs-client/deploy/class.yaml
https://raw.githubusercontent.com/kubernetes-incubator/external-storage/master/nfs-client/deploy/deployment.yaml

注意:以上鏈接,無法直接用wget下載。只能手動打開網頁,復制粘貼到本地。

 

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

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

 

部署創建

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

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

 

注意:請確保每一個k8s node節點,安裝了nfs-utils

yum -y install nfs-utils

 

查看storageclass

# kubectl get storageclass
NAME                            PROVISIONER      AGE
managed-nfs-storage    fuseim.pri/ifs   139m

 

查看nfs pod

# kubectl get pods
NAME                                      READY   STATUS    RESTARTS   AGE
nfs-client-provisioner-59777fb457-dkf87   1/1     Running   0          153m

確保狀態正常

 

標記一個默認的 StorageClass

操作命令

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

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

 

驗證標記是否成功

# kubectl get storageclass
NAME                            PROVISIONER      AGE
managed-nfs-storage (default)   fuseim.pri/ifs   139m

出現了一個default,表示成功了。

 

部署 KubeSphere

過程很簡單,如果你的機器資源足夠,集群可用 CPU > 8 Core 且可用內存 > 16 G。建議你進行完整安裝,參考鏈接:

https://kubesphere.io/docs/zh-CN/installation/install-on-k8s/

 

由於我的是在一台i7 16g內存的筆記本運行,只能最小化安裝。完整版真心帶不動!!!

創建目錄

mkdir kubesphere

 

下載yaml文件

https://raw.githubusercontent.com/kubesphere/ks-installer/master/kubesphere-minimal.yaml

注意:以上鏈接,無法直接用wget下載。只能手動打開網頁,復制粘貼到本地。

 

部署 KubeSphere

kubectl apply -f kubesphere-minimal.yaml

 

這個過程根據你實際網速,實際使用時間長度有所不同。

等待1分鍾,你可以通過如下命令查看實時的日志輸出。

 

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

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

#####################################################
###              Welcome to KubeSphere!           ###
#####################################################

Console: http://192.168.31.148: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 都正常運行

[root@k8s-master kubesphere]# kubectl get pods -A
NAMESPACE                      NAME                                       READY   STATUS    RESTARTS   AGE
default                        nfs-client-provisioner-59777fb457-dkf87    1/1     Running   0          156m
kube-system                    calico-kube-controllers-7489ff5b7c-4vs7c   1/1     Running   0          154m
kube-system                    calico-node-5qzhg                          1/1     Running   0          154m
kube-system                    calico-node-wrpq4                          1/1     Running   0          154m
kube-system                    coredns-58cc8c89f4-jhkzr                   1/1     Running   0          159m
kube-system                    coredns-58cc8c89f4-wmdqk                   1/1     Running   0          159m
kube-system                    etcd-k8s-master                            1/1     Running   0          158m
kube-system                    kube-apiserver-k8s-master                  1/1     Running   0          158m
kube-system                    kube-controller-manager-k8s-master         1/1     Running   0          159m
kube-system                    kube-proxy-8rmvg                           1/1     Running   0          159m
kube-system                    kube-proxy-r9pnm                           1/1     Running   0          159m
kube-system                    kube-scheduler-k8s-master                  1/1     Running   0          159m
kube-system                    tiller-deploy-6588db4955-wsxdt             1/1     Running   0          140m
kubesphere-controls-system     default-http-backend-5d464dd566-vd8pr      1/1     Running   0          137m
kubesphere-controls-system     kubectl-admin-6c664db975-95dbr             1/1     Running   0          137m
kubesphere-monitoring-system   kube-state-metrics-566cdbcb48-69gqx        4/4     Running   0          136m
kubesphere-monitoring-system   node-exporter-ntdbs                        2/2     Running   0          136m
kubesphere-monitoring-system   node-exporter-sz5rb                        2/2     Running   0          136m
kubesphere-monitoring-system   prometheus-k8s-0                           3/3     Running   1          135m
kubesphere-monitoring-system   prometheus-k8s-system-0                    3/3     Running   1          135m
kubesphere-monitoring-system   prometheus-operator-6b97679cfd-rfj48       1/1     Running   0          136m
kubesphere-system              ks-account-596657f8c6-f6nfn                1/1     Running   0          137m
kubesphere-system              ks-apigateway-78bcdc8ffc-95g9n             1/1     Running   0          137m
kubesphere-system              ks-apiserver-5b548d7c5c-gkh5g              1/1     Running   0          137m
kubesphere-system              ks-console-78bcf96dbf-kvfq5                1/1     Running   0          137m
kubesphere-system              ks-controller-manager-696986f8d9-59fhp     1/1     Running   0          137m
kubesphere-system              ks-installer-75b8d89dff-l855b              1/1     Running   0          139m
kubesphere-system              openldap-0                                 1/1     Running   0          137m
kubesphere-system              redis-6fd6c6d6f9-d5tn9                     1/1     Running   0          138m
View Code

 

三、訪問KubeSphere UI 

使用IP:30880訪問 KubeSphere UI 界面,默認的集群管理員賬號為:admin,密碼:P@88w0rd

 

 

登錄成功后,效果如下:

 

 

點擊平台管理-->監控中心

 

 

 

 

本文參考鏈接:

https://www.cnblogs.com/cjsblog/p/12828639.html

https://www.kubernetes.org.cn/7315.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM