安裝 KubeSphere DevOps 系統


1.  安裝KubeSphere

安裝了一夜,終於看到了期待已久的畫面

第一步、硬件配置(PS:VirtualBox虛擬機):

操作系統:Ubuntu 18.04 

CPU:4核

內存:8G

磁盤:60G 

第二步、下載安裝包

curl -L https://kubesphere.io/download/stable/v2.1.1 > installer.tar.gz \
&& tar -zxf installer.tar.gz && cd kubesphere-all-v2.1.1/scripts

第三步、修改conf/common.yaml

主要是配置鏡像加速,以及啟用一些插件

docker_registry_mirrors:
  - https://xxx.mirror.aliyuncs.com
  - https://docker.mirrors.ustc.edu.cn
  - https://registry.docker-cn.com
  - https://mirror.aliyuncs.com

我的改動如下:

最后,配置防火牆需要開放的端口

我這里直接把防火牆關了

~/kubesphere-all-v2.1.1/scripts/install.sh

順利的話,幾個小時就成功了,嘿嘿~

如果不順利的話,請把文檔反復仔細閱讀三遍

https://kubesphere.io/docs/zh-CN/installation/intro/

https://kubesphere.io/docs/zh-CN/installation/port-firewall/

https://kubesphere.io/docs/zh-CN/installation/pluggable-components/

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

https://kubesphere.io/docs/zh-CN/installation/all-in-one/

https://kubesphere.io/docs/zh-CN/installation/verify-components/

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

。。。。。。

當我背着電腦到公司以后,我突然意識到一個問題,那就是ip變了

於是我嘗試重啟了一些機器,然后重新執行./install.sh

總是失敗,報什么“etcd cluster is unavailable or misconfigured; error #1: dial tcp 127.0.0.1:4001: getsockopt: connection refused”

Error:  client: etcd cluster is unavailable or misconfigured; error #0: dial tcp 10.0.28.43:2379: getsockopt: connection refused

error #0: dial tcp 10.0.28.43:2379: getsockopt: connection refused

網上各種查,沒找到解決方法

后來,無意中,我發現先uninstall.sh一下,再install.sh一下就好了

~/kubesphere-all-v2.1.1/scripts/uninstall.sh
~/kubesphere-all-v2.1.1/scripts/install.sh

我想,如果再不行的話,就刪除虛擬機,重裝系統,然后重新安裝KubeSphere

啊哈,終於又安裝成功了

訪問Grafana

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

默認賬號密碼是admin/admin,登錄后密碼改為admin123 

2.  從入門到放棄

2.1.  多租戶管理

目前,平台的資源一共有三個層級,包括 集群 (Cluster)企業空間 (Workspace)項目 (Project)DevOps Project (DevOps 工程),層級關系如下圖所示,即一個集群中可以創建多個企業空間,而每個企業空間,可以創建多個項目和 DevOps工程,而集群、企業空間、項目和 DevOps工程中,默認有多個不同的內置角色。

內置了三個角色:

集群管理員

操作步驟:

(1)創建users-manager角色,用於管理賬戶和角色;

(2)創建user-manager賬號,角色選擇users-manager;

(3)用user-manager登錄,創建ws-manager、ws-admin、project-admin、project-regular四個賬號;

企業空間管理員

企業空間 (workspace) 是 KubeSphere 實現多租戶模式的基礎,是用戶管理項目、DevOps 工程和企業成員的基本單位。 

操作步驟:

(1)用ws-manager賬號登錄,創建名為demo-workspace的企業空間,並指定ws-admin用戶為管理員;

(2)用ws-admin賬號登錄,邀請project-admin和project-regular進入企業空間,且分別授予workspace-regular和workspace-viewer的角色;

項目和 DevOps 工程管理員 

創建工作負載、服務和 CI/CD 流水線等資源之前,需要預先創建項目和 DevOps 工程。 

操作步驟:

(1)用project-admin賬號登錄 KubeSphere,默認進入 demo-workspace 企業空間下,創建資源型項目demo-project;

(2)邀請project-regular用戶進入該企業空間下的項目demo-project,角色選擇operator;

設置外網訪問

在創建應用路由之前,需要先啟用外網訪問入口,即網關。這一步是創建對應的應用路由控制器,負責接收項目外部進入的流量,並將請求轉發到對應的后端服務。

默認 NodePort 即可

2.2.  應用路由

KubeSphere 在項目中為用戶項目內置了一個全局的負載均衡器,即應用路由控制器 (Ingress Controller),為了代理不同后端服務 (Service) 而設置的負載均衡服務,用戶訪問 URL 時,應用路由控制器可以把請求轉發給不同的后端服務。

Kubernetes Ingress 官方提供了這樣一個例子:對於 https://cafe.example.com,如果訪問 https://cafe.example.com/coffee則返回 “咖啡點餐系統”,如果訪問 https://cafe.example.com/tea,則返回 “茶水點餐系統”。這兩個系統分別由后端的 coffee 和 tea 這兩個部署 (Deployment) 來提供服務。

分別創建tea和coffee兩個服務

創建TLS證書秘鑰

創建應用路由

由於沒有DNS服務器,因此還是選擇自動生成的域名吧,刪除后重新配置一個

2.3.  創建簡單任務

2.4.  配置中心

https://kubesphere.io/docs/zh-CN/configuration/secrets/

https://kubesphere.io/docs/zh-CN/configuration/image-registry/

密鑰 (Secret) 解決了密碼、token、密鑰等敏感數據的配置問題,配置密鑰后不需要把這些敏感數據暴露到鏡像或者工作負載 (Pod) 的 Spec 中。密鑰可以在創建工作負載時以存儲卷或者環境變量的方式使用。

為了演示,再建一個項目s2i-test

 

2.5.  Source-to-image

Source-to-image (S2I) 是一個允許用戶直接輸入源代碼然后打包成可運行程序到 Docker 鏡像的工具,在用戶不需要了解 Dockerfile 的情況下方便構建鏡像。它是通過將源代碼放入一個負責編譯源代碼的 Builder image 中,自動將編譯后的代碼打包成 Docker 鏡像。在 KubeSphere 中支持 S2I 構建鏡像,也支持以創建服務的形式,一鍵將源代碼生成鏡像推送到倉庫,並創建其部署 (Deployment) 和服務 (Service) 最終自動發布到 Kubernetes 中。 

------------------------------華麗的分割線----------------------------

由於電腦又背回家了,所以,又得重新uninstall.shinstall.sh

今天,接着來~~~

訪問GitHub和鏡像倉庫都是需要賬號密碼的,因此,提前先創建好密鑰

鏡像倉庫用的阿里雲

創建示例項目

2.6.  圖形化構建流水線

https://kubesphere.io/docs/zh-CN/quick-start/jenkinsfile-out-of-scm/

使用圖形化構建流水線(Jenkinsfile out of SCM),代碼倉庫中可以沒有 Jenkinsfile,你可以在控制台通過可視化的方式構建流水線或編輯 Jenkinsfile 生成流水線,操作界面更友好。

構建可視化流水線共包含以下 6 個階段 (stage),先通過一個流程圖簡單說明一下整個流水線的工作流:

詳細說明每個階段所執行的任務:

  • 階段一. Checkout SCM: 拉取 GitHub 倉庫代碼;
  • 階段二. Unit test: 單元測試,如果測試通過了才繼續下面的任務;
  • 階段三. Code Analysis: 配置 SonarQube 進行靜態代碼質量檢查與分析;
  • 階段四. Build and Push: 構建鏡像,並將 tag 為 SNAPSHOT-$BUILD_NUMBER 推送至 DockerHub (其中 $BUILD_NUMBER 為 pipeline 活動列表的運行序號);
  • 階段五. Artifacts: 制作制品 (jar 包) 並保存;
  • 階段六. Deploy to DEV: 將項目部署到 Dev 環境,此階段需要預先審核,若部署成功后則發送郵件。

創建憑證

創建流水線

最后,由於是從私有倉庫中拉取鏡像,可以將KubernetesDeploy配置到憑證中,就像前面push一樣

3. DevOps工程

https://kubesphere.io/docs/zh-CN/devops/intro/ 

https://kubesphere.io/docs/zh-CN/quick-start/jenkinsfile-out-of-scm/ 

https://kubesphere.io/docs/zh-CN/system-settings/push-img-harbor/ 

 


免責聲明!

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



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