<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Kubernetes容器交付介紹 如何在k8s集群中部署Java項目 ## 容器交付流程 - 開發代碼階段 - 編寫代碼 - 編寫Dockerfile【打鏡像做準備】 - 持續交付/集成 - 代碼編譯打包 - 制作鏡像 - 上傳鏡像倉庫 - 應用部署 - 環境準備 - Pod - Service - Ingress - 運維 - 監控 - 故障排查 - 應用升級 ## k8s部署Java項目流程 - 制作鏡像【Dockerfile】 - 上傳到鏡像倉庫【Dockerhub、阿里云、網易】 - 控制器部署鏡像【Deployment】 - 對外暴露應用【Service、Ingress】 - 運維【監控、升級】 ## k8s部署Java項目 ### 準備Java項目 第一步,準備java項目,把java進行打包【jar包或者war包】 ![image-20201121213239222](https://img.kancloud.cn/5d/40/5d40950179e2d0a58e840965f8b979ef_740x291.png) ### 依賴環境 在打包java項目的時候,我們首先需要兩個環境 - java環境【JDK】 - maven環境 然后把java項目打包成jar包 ```bash mvn clean install ``` ![image-20201121213654216](https://img.kancloud.cn/d6/55/d655f6bc61574a689a2d058fe572e309_736x344.png) ### 編寫Dockerfile文件 Dockerfile 內容如下所示 ```bash FROM openjdk:8-jdk-alpine VOLUME /tmp ADD ./target/demojenkins.jar demojenkins.jar ENTRYPOINT ["java","-jar","/demojenkins.jar", "&"] ``` ### 制作鏡像 在我們創建好Dockerfile文件后,我們就可以制作鏡像了 我們首先將我們的項目,放到我們的服務器上 ![image-20201121214251023](https://img.kancloud.cn/d0/1d/d01d45d2f7d99349f90aa469522a6b9a_788x172.png) 然后執行下面命令打包鏡像 ```bash docker build -t java-demo-01:latest . ``` 等待一段后,即可制作完成我們的鏡像 ![image-20201121214701015](https://img.kancloud.cn/ad/4a/ad4ac4afbf488f2a37e3962363ae9a30_516x258.png) 最后通過下面命令,即可查看我們的鏡像了 ```BASH docker images; ``` ### 啟動鏡像 在我們制作完成鏡像后,我們就可以啟動我們的鏡像了 ```bash docker run -d -p 8111:8111 java-demo-01:latest -t ``` 啟動完成后,我們通過瀏覽器進行訪問,即可看到我們的java程序 ```bash http://192.168.177.130:8111/user ``` ### 推送鏡像 下面我們需要將我們制作好的鏡像,上傳到鏡像服務器中【阿里云、DockerHub】 首先我們需要到 阿里云 [容器鏡像服務](https://cr.console.aliyun.com/cn-hangzhou/instances/repositories),然后開始創建鏡像倉庫 ![image-20201121223435851](https://img.kancloud.cn/c9/04/c9049b0981c1f7b4f63cd28c64c98652_780x686.png) 然后選擇本地倉庫 ![image-20201121223516789](https://img.kancloud.cn/58/87/588761b0fd19f9e91f1e607588de1f99_772x328.png) 我們點擊我們剛剛創建的鏡像倉庫,就能看到以下的信息 ![image-20201121224233092](https://img.kancloud.cn/43/dd/43dd0c08d3994934a2c069a250027d8c_806x862.png) #### 登錄鏡像服務器 使用命令登錄 ```bash docker login --username=XXXXXXX@163.com registry.cn-shenzhen.aliyuncs.com ``` 然后輸入剛剛我們開放時候的注冊的密碼 #### 鏡像添加版本號 下面為我們的鏡像添加版本號 ```bash # 實例 docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/mogublog/java-project-01:[鏡像版本號] # 舉例 docker tag 33f11349c27d registry.cn-shenzhen.aliyuncs.com/mogublog/java-project-01:1.0.0 ``` 操作完成后 ![image-20201121224609890](https://img.kancloud.cn/90/f3/90f3d492a1d401cd1fa5e5df7a3f3d20_1005x70.png) #### 推送鏡像 在我們添加版本號信息后,我們就可以推送我們的鏡像到阿里云了 ```bash docker push registry.cn-shenzhen.aliyuncs.com/mogublog/java-project-01:1.0.0 ``` ![image-20201121224714068](https://img.kancloud.cn/c8/3c/c83c973992db1149eb398a944e75d563_911x107.png) 操作完成后,我們在我們的阿里云鏡像服務,就能看到推送上來的鏡像了 ![image-20201121224858651](https://img.kancloud.cn/60/6e/606e1f15f3836bde50dc2860ff01917a_1216x321.png) ### 控制器部署鏡像 在我們推送鏡像到服務器后,就可以通過控制器部署鏡像了 首先我們需要根據剛剛的鏡像,導出yaml ```bash # 導出yaml kubectl create deployment javademo1 --image=registry.cn- shenzhen.aliyuncs.com/mogublog/java-project-01:1.0.0 --dry-run -o yaml > javademo1.yaml ``` 導出后的 javademo1.yaml 如下所示 ```bash apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: app: javademo1 name: javademo1 spec: replicas: 1 selector: matchLabels: app: javademo1 strategy: {} template: metadata: creationTimestamp: null labels: app: javademo1 spec: containers: - image: registry.cn-shenzhen.aliyuncs.com/mogublog/java-project-01:1.0.0 name: java-project-01 resources: {} status: {} ``` 然后通過下面命令,通過yaml創建我們的deployment ```bash # 創建 kubectl apply -f javademo1.yaml # 查看 pods ``` ![image-20201121225413122](https://img.kancloud.cn/af/f6/aff6d18b338daba75a21c98d371b4af1_561x102.png) 或者我們可以進行擴容,多創建幾個副本 ```bash kubectl scale deployment javademo1 --replicas=3 ``` ![image-20201121225600554](https://img.kancloud.cn/b7/cb/b7cb2f301e8690a4930446b7dbc4bfee_661x231.png) 然后我們還需要對外暴露端口【通過service 或者 Ingress】 ```bash # 對外暴露端口 kubectl expose deployment javademo1 --port=8111 --target-port=8111 --type=NodePort # 查看對外端口號 kubectl get svc ``` ![image-20201121225818003](https://img.kancloud.cn/8a/b1/8ab183f56a21775f5f31d5f2471f88a5_667x80.png) 然后通過下面的地址訪問 ```bash # 對內訪問 curl http://10.106.103.242:8111/user # 對外訪問 http://192.168.177.130:32190/user ``` ### 運維 ....
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看