<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Spring Boot Kubernetes 本指南將引導您完成在 上部署Spring Boot應用程序的 [Kubernetes 過程](https://kubernetes.io) 。 您可以選擇多種方式來使用Spring Boot和Kubernetes進行操作。 本指南的目的是使您盡快上手,而不是討論所有替代方法或進入生產方式的所有詳細信息。 有一些交互式教程可以補充和擴展 上本指南的內容 Katacoda / springguides 。 如果您遵循這些教程,則所有代碼都將在瀏覽器中的云中運行。 或者,您可以創建自己的集群,在本地安裝所需的所有工具,然后從指南中進行復制粘貼。Kubernetes上的Spring Boot入門 :與本指南相同的材料,但是在您的瀏覽器中運行。安裝Kubernetes 安裝Kubernetes :有關使用 在本地 的指南 Kind 。 如果您希望在筆記本電腦上運行教程,可以使用它在筆記本電腦上進行設置。Spring Boot的Kubernetes探針 Spring Boot的 : 活躍性和就緒性探針指南。 ## 你會建立什么 [Kubernetes](https://kubernetes.io) 是一個開源系統,用于自動化容器化應用程序的部署,擴展和管理。 它將組成應用程序的容器分組為邏輯單元,以便于管理和發現。 在本指南中,我們構建并部署了一個簡單的Spring引導應用程序。 您還可以 找到《 入門指南》 和《 主題指南 在Docker上 》,其中涵蓋了構建容器映像的一些背景知識。 ## 您將需要什么 您將需要Linux或類似Linux的命令行。 本指南中的命令行示例適用于Linux,帶外殼的MacOS終端或 [WSL](https://docs.microsoft.com/en-us/windows/wsl) Windows上的 。 您還需要一個Kubernetes集群和命令行工具 [Kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/) 。 您可以使用 本地創建集群 [Kind](https://github.com/kubernetes-sigs/kind) (在Docker上)或 在 [Minikube](https://github.com/kubernetes/minikube) 。 或者,您可以使用云提供商,例如 [Google Cloud Platform](https://console.cloud.google.com/kubernetes/) , [Amazon Web Services](https://aws.amazon.com/eks/) 或 [Microsoft Azure](https://azure.microsoft.com/en-gb/services/kubernetes-service/) 。 在繼續進行之前,請確認您可以運行 `kubectl`從外殼命令。 以下示例使用 `kind`: ~~~ $ kubectl cluster-info Kubernetes master is running at https://127.0.0.1:46253 KubeDNS is running at https://127.0.0.1:46253/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. ~~~ 您還應該運行以下命令: ~~~ $ kubectl get all NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/kubernetes ClusterIP 10.43.0.1 <none> 443/TCP 7m13s ~~~ ## 創建一個Spring Boot應用程序 首先,我們創建一個Spring Boot應用程序。 如果您希望在github中使用它,則可以在終端中將其克隆( `git` 和 `java`已安裝)。 另外,您可以使用start.spring.io從頭開始創建應用程序: ~~~ curl https://start.spring.io/starter.tgz -d dependencies=webflux,actuator | tar -xzvf - ~~~ 然后,您可以構建該應用程序: ~~~ ./mvnw install ~~~ 第一次將花費幾分鐘,但是,一旦所有依賴項都被緩存,它將很快。 然后,您可以看到構建的結果。 如果構建成功,則應該看到類似于以下內容的JAR文件: ~~~ ls -l target/*.jar -rw-r--r-- 1 root root 19463334 Nov 15 11:54 target/demo-0.0.1-SNAPSHOT.jar ~~~ JAR是可執行的: ~~~ $ java -jar target/*.jar ~~~ 該應用程序具有一些內置的HTTP端點,因為 `actuator`下載項目時添加的依賴項。 您應該在啟動日志中看到類似于以下內容的輸出: ~~~ ... 2019-11-15 12:12:35.333 INFO 13912 --- [ main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 2 endpoint(s) beneath base path '/actuator' 2019-11-15 12:12:36.448 INFO 13912 --- [ main] o.s.b.web.embedded.netty.NettyWebServer : Netty started on port(s): 8080 ... ~~~ 然后,您可以在另一個終端中卷曲端點: ~~~ $ curl localhost:8080/actuator | jq . { "_links": { "self": { "href": "http://localhost:8080/actuator", "templated": false }, "health-path": { "href": "http://localhost:8080/actuator/health/{*path}", "templated": true }, "health": { "href": "http://localhost:8080/actuator/health", "templated": false }, "info": { "href": "http://localhost:8080/actuator/info", "templated": false } } } ~~~ 要完成此步驟,請按Ctrl + C組合鍵以停止應用程序。 ## 容器化應用程序 有多個選項可用于容器化Spring Boot應用程序。 只要您已經在構建Spring Boot jar文件,您只需要直接調用插件即可。 以下命令使用 [Maven](https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/maven-plugin/html/#build-image) : ~~~ $ ./mvnw spring-boot:build-image ~~~ 以下命令使用 [Gradle](https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/gradle-plugin/reference/html/#build-image) : ~~~ $ ./gradlew bootBuildImage ~~~ 您可以在本地運行容器: ~~~ $ docker run -p 8080:8080 demo:0.0.1-SNAPSHOT ~~~ 然后,您可以檢查它是否可以在另一個終端上運行: ~~~ $ curl localhost:8080/actuator/health ~~~ 通過停止容器完成操作。 除非您通過Dockerhub進行身份驗證,否則無法推送映像( `docker login`),但已經有一個圖片可以正常工作了。 如果您已通過身份驗證,則可以: ~~~ $ docker tag demo:0.0.1-SNAPSHOT springguides/demo $ docker push springguides/demo ~~~ 在現實生活中,需要將映像推送到Dockerhub(或其他可訪問的存儲庫),因為Kubernetes從其Kubelet(節點)內部拉取映像,而Kubelet(節點)通常不連接到本地docker守護程序。 就此方案而言,您可以省略推送并使用已經存在的映像。 對于測試,有一些變通方法可以使 docker push 使用不安全的本地注冊表(例如),但這超出了本指南的范圍。 ## 將應用程序部署到Kubernetes 現在您有了一個運行并公開端口8080的容器,因此,要使Kubernetes運行,您所需要的只是一些YAML。 為了避免查看或編輯YAML,現在,您可以詢問 `kubectl`為您生成它。 唯一可能有所不同的是 `--image`姓名。 如果將容器部署到自己的存儲庫,請使用其標記而不是以下標記: ~~~ $ kubectl create deployment demo --image=springguides/demo --dry-run -o=yaml > deployment.yaml $ echo --- >> deployment.yaml $ kubectl create service clusterip demo --tcp=8080:8080 --dry-run -o=yaml >> deployment.yaml ~~~ 您可以采用上面生成的YAML并根據需要對其進行編輯,也可以按原樣應用: ~~~ $ kubectl apply -f deployment.yaml deployment.apps/demo created service/demo created ~~~ 檢查應用程序是否正在運行: ~~~ $ kubectl get all NAME READY STATUS RESTARTS AGE pod/demo-658b7f4997-qfw9l 1/1 Running 0 146m NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/kubernetes ClusterIP 10.43.0.1 <none> 443/TCP 2d18h service/demo ClusterIP 10.43.138.213 <none> 8080/TCP 21h NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/demo 1/1 1 1 21h NAME DESIRED CURRENT READY AGE replicaset.apps/demo-658b7f4997 1 1 1 21h d ~~~ 重復 kubectl get all 直到演示窗格將其狀態顯示為 Running. 現在,您需要能夠連接到在Kubernetes中作為服務公開的應用程序。 一種在開發時有效的方法是創建SSH隧道: ~~~ $ kubectl port-forward svc/demo 8080:8080 ~~~ 然后,您可以驗證該應用程序是否在另一個終端上運行: ~~~ $ curl localhost:8080/actuator/health {"status":"UP"} ~~~
                  <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>

                              哎呀哎呀视频在线观看