天天看點

【K8s】第一次部署項目

慵懶的早上,躺着浏覽這個各種視訊,想着去看牙齒呢還是去公司呢

現在我已經在公司了(與前端聯調結束了) w(゚Д゚)w

吭,正題,在部署時候遇到一些問題,阻塞一天,so,記錄下吧

我司用的是:k8s、jenkins、阿裡雲Git

一、步驟

(1)在應用中心 建立應用

這個應用中心是運維搭建

用于管理應用和連接配接 jenkins

【K8s】第一次部署項目

(2)檢視應用詳情

【K8s】第一次部署項目

(3)檢視部署連接配接

1. 檢視 jenkins 任務

檢視是否建構,若無建構,則手動建構

【K8s】第一次部署項目
2. 檢視 k8s 部署

當 jenkins ​

​clone code​

​​ 、​

​copy dickerfile​

​​ 、​

​maven package​

​​ 、​

​build and push docker image​

​ 完成後

會有對應的 ​

​pods​

​​ 、​

​service​

每次 jenkins建構(代碼 ​

​push​

​)時候,要重新開機 k8s(即,删除對應的 pods)

【K8s】第一次部署項目
3. k8s service 更改端口
【K8s】第一次部署項目
【K8s】第一次部署項目

更改 ​

​nodePort​

​, 即可更改對外開放的端口

【K8s】第一次部署項目
4. 可進控制台檢視
【K8s】第一次部署項目
在控制台中查找,或者。。。

(4)在 阿裡雲 Git 中添加 jenkins 的 hook

這樣每次更新代碼,jenkins能監測到,進而自動建構

二、遇到的問題

(1)jenkins 無法 ​

​clone code​

這是因為沒有權限,有兩種方法:

1. 找運維,把 jenkins 配置改下

2. 在 阿裡雲項目 中添加成員,我添加我們 項目組 為 develop 進我的項目

(2)jenkins 建構成功,但 k8s 上 pods 建構失敗

maven 打包配置錯誤 (可能打包時候,少了建構 jar 包;可能應用啟動錯誤,即找到啟動類)

我碰見的是:

pom.xml 配置錯誤,導緻找不到對應的 ​​

​Application​

​<mainClass>com.donaldy.Application</mainClass>​

<plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>2.4</version>
                    <configuration>
                        <archive>
                            <manifest>
                                <addClasspath>true</addClasspath>
                                <classpathPrefix>lib/</classpathPrefix>
                                <mainClass>com.donaldy.Application</mainClass>
                            </manifest>
                        </archive>
                    </configuration>
                </plugin>      

(3)k8s pods 不斷重新開機

原因:

代碼有錯誤,(這種錯誤 在 jenkins 建構時候無影響,但在項目啟動時候出現)

三、感受

  • 一開始用的時候,哇,好神奇啊,真是好東西,運維真厲害,想多去了解些。
  • 後來,遇到這幾個問題,體驗感下降
  • 再後來,等 k8s 上應用啟動,有時候要​

    ​200s​

    ​,好浪費時間啊。。。
  • 再再再後來,聽 同僚說 這個時間貌似跟對應語言有關系,Java慢些,Go 很快的。。。( ̄□ ̄||)
  • 總的來說,好東西,但要多多學習。

繼續閱讀