溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

基于KubeSphere CI/CD如何將Spring Boot項(xiàng)目發(fā)布至Kubernetes

發(fā)布時(shí)間:2021-12-20 10:05:50 來源:億速云 閱讀:244 作者:柒染 欄目:云計(jì)算

基于KubeSphere CI/CD如何將Spring Boot項(xiàng)目發(fā)布至Kubernetes,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

基于開源的 KubeSphere 容器平臺(tái)演示如何通過 GitHub 倉庫中的 Jenkinsfile 來創(chuàng)建流水線,流水線共包括 8 個(gè)階段,最終將一個(gè) Hello World 頁面部署到 Kubernetes 集群中的不同 namespace。

流水線概覽

下面的流程圖簡單說明了流水線完整的工作過程:

基于KubeSphere CI/CD如何將Spring Boot項(xiàng)目發(fā)布至Kubernetes

流程說明:

  • 階段一. Checkout SCM: 拉取 GitHub 倉庫代碼

  • 階段二. Unit test: 單元測試,如果測試通過了才繼續(xù)下面的任務(wù)

  • 階段三. sonarQube analysis:sonarQube 代碼質(zhì)量檢測

  • 階段四. Build & push snapshot image: 根據(jù)行為策略中所選擇分支來構(gòu)建鏡像,并將 tag 為 SNAPSHOT-$BRANCH_NAME-$BUILD_NUMBER 推送至 Harbor (其中 $BUILD_NUMBER 為 pipeline 活動(dòng)列表的運(yùn)行序號(hào))。

  • 階段五. Push latest image: 將 master 分支打上 tag 為 latest,并推送至 DockerHub。

  • 階段六. Deploy to dev: 將 master 分支部署到 Dev 環(huán)境,此階段需要審核。

  • 階段七. Push with tag: 生成 tag 并 release 到 GitHub,并推送到 DockerHub。

  • 階段八. Deploy to production: 將發(fā)布的 tag 部署到 Production 環(huán)境。

創(chuàng)建憑證

使用 project-regular 登錄 KubeSphere,進(jìn)入已創(chuàng)建的 devops-demo 工程,開始創(chuàng)建憑證。

1、本示例代碼倉庫中的 Jenkinsfile 需要用到 DockerHub、GitHubkubeconfig (kubeconfig 用于訪問接入正在運(yùn)行的 Kubernetes 集群) 等一共 3 個(gè)憑證 (credentials) 。 2、然后創(chuàng)建一個(gè) Java 的 Token 并復(fù)制。

3、最后在 KubeSphere 中進(jìn)入 devops-demo 的 DevOps 工程中,與上面步驟類似,在 憑證 下點(diǎn)擊 創(chuàng)建,創(chuàng)建一個(gè)類型為 秘密文本 的憑證,憑證 ID 命名為 sonar-token,密鑰為上一步復(fù)制的 token 信息,完成后點(diǎn)擊 確定

基于KubeSphere CI/CD如何將Spring Boot項(xiàng)目發(fā)布至Kubernetes

至此,4 個(gè)憑證已經(jīng)創(chuàng)建完成,下一步需要在示例倉庫中的 jenkinsfile 修改對(duì)應(yīng)的四個(gè)憑證 ID 為用戶自己創(chuàng)建的憑證 ID。

基于KubeSphere CI/CD如何將Spring Boot項(xiàng)目發(fā)布至Kubernetes

修改 Jenkinsfile

第一步:Fork項(xiàng)目

登錄 GitHub,將本示例用到的 GitHub 倉庫 devops-java-sample Fork 至您個(gè)人的 GitHub。

基于KubeSphere CI/CD如何將Spring Boot項(xiàng)目發(fā)布至Kubernetes

第二步:修改 Jenkinsfile

1、Fork 至您個(gè)人的 GitHub 后,在 根目錄 進(jìn)入 Jenkinsfile-online。

基于KubeSphere CI/CD如何將Spring Boot項(xiàng)目發(fā)布至Kubernetes

2、在 GitHub UI 點(diǎn)擊編輯圖標(biāo),需要修改如下環(huán)境變量 (environment) 的值。

基于KubeSphere CI/CD如何將Spring Boot項(xiàng)目發(fā)布至Kubernetes

修改項(xiàng)含義
DOCKER_CREDENTIAL_IDdockerhub-id填寫創(chuàng)建憑證步驟中的 DockerHub 憑證 ID,用于登錄您的 DockerHub
GITHUB_CREDENTIAL_IDgithub-id填寫創(chuàng)建憑證步驟中的 GitHub 憑證 ID,用于推送 tag 到 GitHub 倉庫
KUBECONFIG_CREDENTIAL_IDdemo-kubeconfigkubeconfig 憑證 ID,用于訪問接入正在運(yùn)行的 Kubernetes 集群
REGISTRYdocker.io默認(rèn)為 docker.io 域名,用于鏡像的推送
DOCKERHUB_NAMESPACEyour-dockerhub-account替換為您的 DockerHub 賬號(hào)名 <br> (它也可以是賬戶下的 Organization 名稱)
GITHUB_ACCOUNTyour-github-account替換為您的 GitHub 賬號(hào)名,例如 https://github.com/kubesphere/ 則填寫 kubesphere (它也可以是賬戶下的 Organization 名稱)
APP_NAMEdevops-java-sample應(yīng)用名稱
SONAR_CREDENTIAL_IDsonar-token填寫創(chuàng)建憑證步驟中的 SonarQube token憑證 ID,用于代碼質(zhì)量檢測

注: Jenkinsfile 中 mvn 命令的參數(shù) -o,表示開啟離線模式。本示例為適應(yīng)某些環(huán)境下網(wǎng)絡(luò)的干擾,以及避免在下載依賴時(shí)耗時(shí)太長,已事先完成相關(guān)依賴的下載,默認(rèn)開啟離線模式。

3、修改以上的環(huán)境變量后,點(diǎn)擊 Commit changes,將更新提交到當(dāng)前的 master 分支。

基于KubeSphere CI/CD如何將Spring Boot項(xiàng)目發(fā)布至Kubernetes

創(chuàng)建項(xiàng)目

CI/CD 流水線會(huì)根據(jù)示例項(xiàng)目的 yaml 模板文件,最終將示例分別部署到 Dev 和 Production 這兩個(gè)項(xiàng)目 (Namespace) 環(huán)境中,即 kubesphere-sample-devkubesphere-sample-prod,這兩個(gè)項(xiàng)目需要預(yù)先在控制臺(tái)依次創(chuàng)建,參考如下步驟創(chuàng)建該項(xiàng)目。

第一步:創(chuàng)建第一個(gè)項(xiàng)目

1、使用項(xiàng)目管理員 project-admin 賬號(hào)登錄 KubeSphere,在之前創(chuàng)建的企業(yè)空間 (demo-workspace) 下,點(diǎn)擊 項(xiàng)目 → 創(chuàng)建,創(chuàng)建一個(gè) 資源型項(xiàng)目,作為本示例的開發(fā)環(huán)境,填寫該項(xiàng)目的基本信息,完成后點(diǎn)擊 下一步。

  • 名稱:固定為 kubesphere-sample-dev,若需要修改項(xiàng)目名稱則需在 yaml 模板文件 中修改 namespace

  • 別名:可自定義,比如 開發(fā)環(huán)境

  • 描述信息:可簡單介紹該項(xiàng)目,方便用戶進(jìn)一步了解

2、本示例暫無資源請(qǐng)求和限制,因此高級(jí)設(shè)置中無需修改默認(rèn)值,點(diǎn)擊 創(chuàng)建,項(xiàng)目可創(chuàng)建成功。

第二步:邀請(qǐng)成員

第一個(gè)項(xiàng)目創(chuàng)建完后,還需要項(xiàng)目管理員 project-admin 邀請(qǐng)當(dāng)前的項(xiàng)目普通用戶 project-regular 進(jìn)入 kubesphere-sample-dev 項(xiàng)目,進(jìn)入「項(xiàng)目設(shè)置」→「項(xiàng)目成員」,點(diǎn)擊「邀請(qǐng)成員」選擇邀請(qǐng) project-regular 并授予 operator 角色。

第三步:創(chuàng)建第二個(gè)項(xiàng)目

同上,參考以上兩步創(chuàng)建一個(gè)名稱為 kubesphere-sample-prod 的項(xiàng)目作為生產(chǎn)環(huán)境,并邀請(qǐng)普通用戶 project-regular 進(jìn)入 kubesphere-sample-prod 項(xiàng)目并授予 operator 角色。

說明:當(dāng) CI/CD 流水線后續(xù)執(zhí)行成功后,在 kubesphere-sample-devkubesphere-sample-prod 項(xiàng)目中將看到流水線創(chuàng)建的部署 (Deployment) 和服務(wù) (Service)。

基于KubeSphere CI/CD如何將Spring Boot項(xiàng)目發(fā)布至Kubernetes

創(chuàng)建流水線

第一步:填寫基本信息

1、進(jìn)入已創(chuàng)建的 DevOps 工程,選擇左側(cè)菜單欄的 流水線,然后點(diǎn)擊 創(chuàng)建。

基于KubeSphere CI/CD如何將Spring Boot項(xiàng)目發(fā)布至Kubernetes

2、在彈出的窗口中,輸入流水線的基本信息。

  • 名稱:為創(chuàng)建的流水線起一個(gè)簡潔明了的名稱,便于理解和搜索

  • 描述信息:簡單介紹流水線的主要特性,幫助進(jìn)一步了解流水線的作用

  • 代碼倉庫:點(diǎn)擊選擇代碼倉庫,代碼倉庫需已存在 Jenkinsfile

基于KubeSphere CI/CD如何將Spring Boot項(xiàng)目發(fā)布至Kubernetes

第二步:添加倉庫

1、點(diǎn)擊代碼倉庫,以添加 Github 倉庫為例。

2、點(diǎn)擊彈窗中的 獲取 Token。

基于KubeSphere CI/CD如何將Spring Boot項(xiàng)目發(fā)布至Kubernetes

3、在 GitHub 的 access token 頁面填寫 Token description,簡單描述該 token,如 DevOps demo,在 Select scopes 中無需任何修改,點(diǎn)擊 Generate token,GitHub 將生成一串字母和數(shù)字組成的 token 用于訪問當(dāng)前賬戶下的 GitHub repo。

基于KubeSphere CI/CD如何將Spring Boot項(xiàng)目發(fā)布至Kubernetes

4、復(fù)制生成的 token,在 KubeSphere Token 框中輸入該 token 然后點(diǎn)擊保存。

5、驗(yàn)證通過后,右側(cè)會(huì)列出此 Token 關(guān)聯(lián)用戶的所有代碼庫,選擇其中一個(gè)帶有 Jenkinsfile 的倉庫。比如此處選擇準(zhǔn)備好的示例倉庫 devops-java-sample,點(diǎn)擊 選擇此倉庫,完成后點(diǎn)擊 下一步。

基于KubeSphere CI/CD如何將Spring Boot項(xiàng)目發(fā)布至Kubernetes

第三步:高級(jí)設(shè)置

完成代碼倉庫相關(guān)設(shè)置后,進(jìn)入高級(jí)設(shè)置頁面,高級(jí)設(shè)置支持對(duì)流水線的構(gòu)建記錄、行為策略、定期掃描等設(shè)置的定制化,以下對(duì)用到的相關(guān)配置作簡單釋義。

1、構(gòu)建設(shè)置中,勾選 丟棄舊的構(gòu)建,此處的 保留分支的天數(shù)保留分支的最大個(gè)數(shù) 默認(rèn)為 -1。

基于KubeSphere CI/CD如何將Spring Boot項(xiàng)目發(fā)布至Kubernetes

說明:

分支設(shè)置的保留分支的天數(shù)和保持分支的最大個(gè)數(shù)兩個(gè)選項(xiàng)可以同時(shí)對(duì)分支進(jìn)行作用,只要某個(gè)分支的保留天數(shù)和個(gè)數(shù)不滿足任何一個(gè)設(shè)置的條件,則將丟棄該分支。假設(shè)設(shè)置的保留天數(shù)和個(gè)數(shù)為 2 和 3,則分支的保留天數(shù)一旦超過 2 或者保留個(gè)數(shù)超過 3,則將丟棄該分支。默認(rèn)兩個(gè)值為 -1,表示不自動(dòng)刪除分支。

丟棄舊的分支將確定何時(shí)應(yīng)丟棄項(xiàng)目的分支記錄。分支記錄包括控制臺(tái)輸出,存檔工件以及與特定分支相關(guān)的其他元數(shù)據(jù)。保持較少的分支可以節(jié)省 Jenkins 所使用的磁盤空間,我們提供了兩個(gè)選項(xiàng)來確定應(yīng)何時(shí)丟棄舊的分支:

  • 保留分支的天數(shù):如果分支達(dá)到一定的天數(shù),則丟棄分支。

  • 保留分支的個(gè)數(shù):如果已經(jīng)存在一定數(shù)量的分支,則丟棄最舊的分支。

2、行為策略中,KubeSphere 默認(rèn)添加了三種策略。由于本示例還未用到 從 Fork 倉庫中發(fā)現(xiàn) PR 這條策略,此處可以刪除該策略,點(diǎn)擊右側(cè)刪除按鈕。

基于KubeSphere CI/CD如何將Spring Boot項(xiàng)目發(fā)布至Kubernetes

說明:

支持添加三種類型的發(fā)現(xiàn)策略。需要說明的是,在 Jenkins 流水線被觸發(fā)時(shí),開發(fā)者提交的 PR (Pull Request) 也被視為一個(gè)單獨(dú)的分支。

發(fā)現(xiàn)分支:

  • 排除也作為 PR 提交的分支:選擇此項(xiàng)表示 CI 將不會(huì)掃描源分支 (比如 Origin 的 master branch),也就是需要被 merge 的分支

  • 只有被提交為 PR 的分支:僅掃描 PR 分支

  • 所有分支:拉取的倉庫 (origin) 中所有的分支

從原倉庫中發(fā)現(xiàn) PR:

  • PR 與目標(biāo)分支合并后的源代碼版本:一次發(fā)現(xiàn)操作,基于 PR 與目標(biāo)分支合并后的源代碼版本創(chuàng)建并運(yùn)行流水線

  • PR 本身的源代碼版本:一次發(fā)現(xiàn)操作,基于 PR 本身的源代碼版本創(chuàng)建并運(yùn)行流水線

  • 當(dāng) PR 被發(fā)現(xiàn)時(shí)會(huì)創(chuàng)建兩個(gè)流水線,一個(gè)流水線使用 PR 本身的源代碼版本,一個(gè)流水線使用 PR 與目標(biāo)分支合并后的源代碼版本:兩次發(fā)現(xiàn)操作,將分別創(chuàng)建兩條流水線,第一條流水線使用 PR 本身的源代碼版本,第二條流水線使用 PR 與目標(biāo)分支合并后的源代碼版本

3、默認(rèn)的 腳本路徑Jenkinsfile,請(qǐng)將其修改為 Jenkinsfile-online。

注:路徑是 Jenkinsfile 在代碼倉庫的路徑,表示它在示例倉庫的根目錄,若文件位置變動(dòng)則需修改其腳本路徑。

基于KubeSphere CI/CD如何將Spring Boot項(xiàng)目發(fā)布至Kubernetes

4、在 掃描 Repo Trigger 勾選 如果沒有掃描觸發(fā),則定期掃描,掃描時(shí)間間隔可根據(jù)團(tuán)隊(duì)習(xí)慣設(shè)定,本示例設(shè)置為 5 minutes。

說明:定期掃描是設(shè)定一個(gè)周期讓流水線周期性地掃描遠(yuǎn)程倉庫,根據(jù) 行為策略 查看倉庫有沒有代碼更新或新的 PR。

Webhook 推送:

Webhook 是一種高效的方式可以讓流水線發(fā)現(xiàn)遠(yuǎn)程倉庫的變化并自動(dòng)觸發(fā)新的運(yùn)行,GitHub 和 Git (如 Gitlab) 觸發(fā) Jenkins 自動(dòng)掃描應(yīng)該以 Webhook 為主,以上一步在 KubeSphere 設(shè)置定期掃描為輔。在本示例中,可以通過手動(dòng)運(yùn)行流水線,如需設(shè)置自動(dòng)掃描遠(yuǎn)端分支并觸發(fā)運(yùn)行,詳見 設(shè)置自動(dòng)觸發(fā)掃描 - GitHub SCM。

完成高級(jí)設(shè)置后點(diǎn)擊 創(chuàng)建。

基于KubeSphere CI/CD如何將Spring Boot項(xiàng)目發(fā)布至Kubernetes

第四步:運(yùn)行流水線

流水線創(chuàng)建后,點(diǎn)擊瀏覽器的 刷新 按鈕,可見一條自動(dòng)觸發(fā)遠(yuǎn)程分支后的運(yùn)行記錄。

1、點(diǎn)擊右側(cè) 運(yùn)行,將根據(jù)上一步的 行為策略 自動(dòng)掃描代碼倉庫中的分支,在彈窗選擇需要構(gòu)建流水線的 master分支,系統(tǒng)將根據(jù)輸入的分支加載 Jenkinsfile-online (默認(rèn)是根目錄下的 Jenkinsfile)。

2、由于倉庫的 Jenkinsfile-online 中 TAG_NAME: defaultValue 沒有設(shè)置默認(rèn)值,因此在這里的 TAG_NAME 可以輸入一個(gè) tag 編號(hào),比如輸入 v0.0.1。

3、點(diǎn)擊 確定,將新生成一條流水線活動(dòng)開始運(yùn)行。

說明: tag 用于在 Github 和DockerHub 中分別生成帶有 tag 的 release 和鏡像。 注意: 在主動(dòng)運(yùn)行流水線以發(fā)布 release 時(shí),TAG_NAME 不應(yīng)與之前代碼倉庫中所存在的 tag 名稱重復(fù),如果重復(fù)會(huì)導(dǎo)致流水線的運(yùn)行失敗。

基于KubeSphere CI/CD如何將Spring Boot項(xiàng)目發(fā)布至Kubernetes

至此,流水線 已完成創(chuàng)建并開始運(yùn)行。

注:點(diǎn)擊 分支 切換到分支列表,查看流水線具體是基于哪些分支運(yùn)行,這里的分支則取決于上一步 行為策略 的發(fā)現(xiàn)分支策略。

基于KubeSphere CI/CD如何將Spring Boot項(xiàng)目發(fā)布至Kubernetes

第五步:審核流水線

為方便演示,此處默認(rèn)用當(dāng)前賬戶來審核,當(dāng)流水線執(zhí)行至 input 步驟時(shí)狀態(tài)將暫停,需要手動(dòng)點(diǎn)擊 繼續(xù),流水線才能繼續(xù)運(yùn)行。注意,在 Jenkinsfile-online 中分別定義了三個(gè)階段 (stage) 用來部署至 Dev 環(huán)境和 Production 環(huán)境以及推送 tag,因此在流水線中依次需要對(duì) deploy to dev, push with tag, deploy to production 這三個(gè)階段審核 3 次,若不審核或點(diǎn)擊 終止 則流水線將不會(huì)繼續(xù)運(yùn)行。

基于KubeSphere CI/CD如何將Spring Boot項(xiàng)目發(fā)布至Kubernetes

說明:在實(shí)際的開發(fā)生產(chǎn)場景下,可能需要更高權(quán)限的管理員或運(yùn)維人員來審核流水線和鏡像,并決定是否允許將其推送至代碼或鏡像倉庫,以及部署至開發(fā)或生產(chǎn)環(huán)境。Jenkinsfile 中的 input步驟支持指定用戶審核流水線,比如要指定用戶名為 project-admin 的用戶來審核,可以在 Jenkinsfile 的 input 函數(shù)中追加一個(gè)字段,如果是多個(gè)用戶則通過逗號(hào)分隔,如下所示:

···
input(id: 'release-image-with-tag', message: 'release image with tag?', submitter: 'project-admin,project-admin1')
···

查看流水線

1、點(diǎn)擊流水線中 活動(dòng) 列表下當(dāng)前正在運(yùn)行的流水線序列號(hào),頁面展現(xiàn)了流水線中每一步驟的運(yùn)行狀態(tài),注意,流水線剛創(chuàng)建時(shí)處于初始化階段,可能僅顯示日志窗口,待初始化 (約一分鐘) 完成后即可看到流水線。黑色框標(biāo)注了流水線的步驟名稱,示例中流水線共 8 個(gè) stage,分別在 Jenkinsfile-online 中被定義。

基于KubeSphere CI/CD如何將Spring Boot項(xiàng)目發(fā)布至Kubernetes

2、當(dāng)前頁面中點(diǎn)擊右上方的 查看日志,查看流水線運(yùn)行日志。頁面展示了每一步的具體日志、運(yùn)行狀態(tài)及時(shí)間等信息,點(diǎn)擊左側(cè)某個(gè)具體的階段可展開查看其具體的日志。日志可下載至本地,如出現(xiàn)錯(cuò)誤,下載至本地更便于分析定位問題。

基于KubeSphere CI/CD如何將Spring Boot項(xiàng)目發(fā)布至Kubernetes

驗(yàn)證運(yùn)行結(jié)果

1、若流水線執(zhí)行成功,點(diǎn)擊該流水線下的 代碼質(zhì)量,即可看到通過 SonarQube 的代碼質(zhì)量檢測結(jié)果,如下圖(僅供參考)。

基于KubeSphere CI/CD如何將Spring Boot項(xiàng)目發(fā)布至Kubernetes

2、流水線最終 build 的 Docker 鏡像也將被成功地 push 到 DockerHub 中,我們?cè)?Jenkinsfile-online 中已經(jīng)配置過 DockerHub,登錄 DockerHub 查看鏡像的 push 結(jié)果,可以看到 tag 為 snapshot、TAG_NAME(master-1)、latest 的鏡像已經(jīng)被 push 到 DockerHub,并且在 GitHub 中也生成了一個(gè)新的 tag 和 release。Hello World 示例頁面最終將以 deployment 和 service 分別部署到 KubeSphere 的 kubesphere-sample-devkubesphere-sample-prod 項(xiàng)目環(huán)境中。

環(huán)境訪問地址所在項(xiàng)目 (Namespace)部署 (Deployment)服務(wù) (Service)
Devhttp://{$Virtual IP}:{$8080} <br> 或者 http://{$內(nèi)網(wǎng)/公網(wǎng) IP}:{$30861}kubesphere-sample-devks-sample-devks-sample-dev
Productionhttp://{$Virtual IP}:{$8080} <br> 或者 http://{$內(nèi)網(wǎng)/公網(wǎng) IP}:{$30961}kubesphere-sample-prodks-sampleks-sample

3、可通過 KubeSphere 回到項(xiàng)目列表,依次查看之前創(chuàng)建的兩個(gè)項(xiàng)目中的部署和服務(wù)的狀態(tài)。例如,以下查看 kubesphere-sample-prod項(xiàng)目下的部署。

進(jìn)入該項(xiàng)目,在左側(cè)的菜單欄點(diǎn)擊 工作負(fù)載 → 部署,可以看到 ks-sample 已創(chuàng)建成功。正常情況下,部署的狀態(tài)應(yīng)該顯示 運(yùn)行中。

基于KubeSphere CI/CD如何將Spring Boot項(xiàng)目發(fā)布至Kubernetes

4、在菜單欄中選擇 網(wǎng)絡(luò)與服務(wù) → 服務(wù) 也可以查看對(duì)應(yīng)創(chuàng)建的服務(wù),可以看到該服務(wù)的 Virtual IP 為 10.233.42.3,對(duì)外暴露的節(jié)點(diǎn)端口 (NodePort) 是 30961

查看服務(wù)

基于KubeSphere CI/CD如何將Spring Boot項(xiàng)目發(fā)布至Kubernetes

5、查看推送到您個(gè)人的 DockerHub 中的鏡像,可以看到 devops-java-sample就是 APP_NAME 的值,而 tag 也是在 jenkinsfile-online 中定義的 tag。

基于KubeSphere CI/CD如何將Spring Boot項(xiàng)目發(fā)布至Kubernetes

6、點(diǎn)擊 release,查看 Fork 到您個(gè)人 GitHub repo 中的 v0.0.1 tag 和 release,它是由 jenkinsfile 中的 push with tag 生成的。

訪問示例服務(wù)

若在內(nèi)網(wǎng)環(huán)境訪問部署的 HelloWorld 示例服務(wù),可通過 SSH 登陸集群節(jié)點(diǎn),或使用集群管理員登陸 KubeSphere 在 web kubectl 中輸入以下命令驗(yàn)證訪問,其中 Cluster IP 和節(jié)點(diǎn)端口 (NodePort) 可通過對(duì)應(yīng)項(xiàng)目下的服務(wù)中查看:

驗(yàn)證 Dev 環(huán)境的示例服務(wù)

# curl {$Virtual IP}:{$Port} 或者 curl {$內(nèi)網(wǎng) IP}:{$NodePort}
curl 10.233.40.5:8080
Hello,World!

驗(yàn)證 Prodcution 環(huán)境的示例服務(wù)

# curl {$Virtual IP}:{$Port} 或者 curl {$內(nèi)網(wǎng) IP}:{$NodePort}
curl 10.233.42.3:8080
Hello,World!

KubeSphere (https://github.com/kubesphere/kubesphere) 是一個(gè)開源的以應(yīng)用為中心的容器管理平臺(tái),支持部署在任何基礎(chǔ)設(shè)施之上,并提供簡單易用的 UI,極大減輕日常開發(fā)、測試、運(yùn)維的復(fù)雜度,旨在解決 Kubernetes 本身存在的存儲(chǔ)、網(wǎng)絡(luò)、安全和易用性等痛點(diǎn),幫助企業(yè)輕松應(yīng)對(duì)敏捷開發(fā)與自動(dòng)化監(jiān)控運(yùn)維、端到端應(yīng)用交付、微服務(wù)治理、多租戶管理、多集群管理、服務(wù)與網(wǎng)絡(luò)管理、鏡像倉庫、AI 平臺(tái)、邊緣計(jì)算等業(yè)務(wù)場景。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI