{"id":36230,"date":"2022-11-26T11:06:11","date_gmt":"2023-02-01T09:20:26","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8-kubernetes-%e7%8e%af%e5%a2%83%e4%b8%8b%e5%90%af%e5%8a%a8-spring-boot-web-%e6%9c%8d%e5%8a%a1\/"},"modified":"2024-04-29T02:32:47","modified_gmt":"2024-04-28T18:32:47","slug":"%e5%9c%a8-kubernetes-%e7%8e%af%e5%a2%83%e4%b8%8b%e5%90%af%e5%8a%a8-spring-boot-web-%e6%9c%8d%e5%8a%a1","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8-kubernetes-%e7%8e%af%e5%a2%83%e4%b8%8b%e5%90%af%e5%8a%a8-spring-boot-web-%e6%9c%8d%e5%8a%a1\/","title":{"rendered":"\u5728 Kubernetes \u73af\u5883\u4e0b\u542f\u52a8 Spring Boot WEB \u670d\u52a1"},"content":{"rendered":"<h1>\u5728Kubernetes\u73af\u5883\u4e0b\u542f\u52a8Spring Boot WEB\u670d\u52a1<\/h1>\n<h2>\u76ee\u7684 &#8211; One option<\/h2>\n<p>\u5728Kubernetes\u73af\u5883\u4e0b\u542f\u52a8Spring Boot WEB\u670d\u52a1\uff0c\u4ee5\u52a0\u6df1\u7406\u89e3\u3002<\/p>\n<h2>\u5b9e\u73b0<\/h2>\n<p>\u5728\u672c\u5730\uff08Ubuntu\uff09\u7684Kubernetes\u73af\u5883\uff08Docker Desktop\uff09\u4e2d\uff0c\u90e8\u7f72\u5e76\u542f\u52a8Spring Boot WEB\u5e94\u7528\u7684Docker\u955c\u50cf\u3002<\/p>\n<h2>\u5f00\u53d1\u73af\u5883<\/h2>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Windows 11 Home 22H2 \u3092\u4f7f\u7528\u3057\u3066\u3044\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>WSL \u306e Ubuntu \u3092\u64cd\u4f5c\u3057\u3066\u3044\u304d\u307e\u3059\u306e\u3067 macOS \u306e\u65b9\u3082\u53c2\u8003\u306b\u3057\u3066\u9802\u3051\u307e\u3059\u3002<\/p>\n<details>WSL\uff08Microsoft Store\u5e94\u7528\u7248\uff09<br \/>\n&gt; wsl &#8211;version<br \/>\nWSL\u7248\u672c\uff1a1.0.3.0<br \/>\n\u5185\u6838\u7248\u672c\uff1a5.15.79.1<br \/>\nWSLg\u7248\u672c\uff1a1.0.47Ubuntu<br \/>\n$ lsb_release -a<br \/>\n\u6ca1\u6709\u53ef\u7528\u7684LSB\u6a21\u5757\u3002<br \/>\n\u53d1\u884c\u5546ID\uff1aUbuntu<br \/>\n\u63cf\u8ff0\uff1aUbuntu 22.04.1 LTS<br \/>\n\u53d1\u5e03\u7248\u672c\uff1a22.04<\/p>\n<p>Java JDK \u203b \u6700\u5c0f\u914d\u7f6e Java JDK \u7684\u5b89\u88c5\u548c Hello World\uff01<br \/>\n$ java -version<br \/>\nopenjdk version &#8220;11.0.17&#8221; 2022-10-18<br \/>\nOpenJDK Runtime Environment (build 11.0.17+8-post-Ubuntu-1ubuntu222.04)<br \/>\nOpenJDK 64-Bit Server VM (build 11.0.17+8-post-Ubuntu-1ubuntu222.04, mixed mode, sharing)<\/p>\n<p>Maven \u203b \u6700\u5c0f\u914d\u7f6e Maven \u7684\u5b89\u88c5\u548c Hello World\uff01<br \/>\n$ mvn -version<br \/>\nApache Maven 3.6.3<br \/>\nMaven home: \/usr\/share\/maven<br \/>\nJava version: 11.0.17, vendor: Ubuntu, runtime: \/usr\/lib\/jvm\/java-11-openjdk-amd64<\/p>\n<p>Docker Desktop<br \/>\n\u7248\u672c 4.16.3 (96739)<\/p>\n<p>$ docker &#8211;version<br \/>\nDocker \u7248\u672c 20.10.22\uff0c\u6784\u5efa\u53f7 3a2c30b<\/p>\n<p>$ docker-compose &#8211;version<br \/>\nDocker Compose \u7248\u672c v2.15.1<\/p>\n<p>$ kubectl version &#8211;short<br \/>\n\u5ba2\u6237\u7aef\u7248\u672c\uff1av1.25.4<br \/>\nKustomize \u7248\u672c\uff1av4.5.7<br \/>\n\u670d\u52a1\u5668\u7248\u672c\uff1av1.25.4<\/p>\n<\/details>\n<p>\u203b\u672c\u6587\u4e2d\u4e3b\u8981\u4f7f\u7528Ubuntu\u7ec8\u7aef\u8fdb\u884c\u64cd\u4f5c\u3002<\/p>\n<h2>\u5c55\u793a\u201c\u4f60\u597d\u4e16\u754c\u201d\u7684\u6b65\u9aa4<\/h2>\n<h3>\u521b\u5efaSpring Boot\u7f51\u9875\u670d\u52a1<\/h3>\n<p>\u8bf7\u53c2\u8003\u6700\u7b80\u5355\u7684Spring Boot WEB\u670d\u52a1\u7684&#8221;Hello World!&#8221;\u3002<\/p>\n<p>\u8bf7\u5c06\u9879\u76ee\u6587\u4ef6\u5939\u66f4\u6539\u4e3a\u6307\u5b9a\u4f4d\u7f6e<br \/>\n\u203b \u5047\u8bbe\u5c06 ~\/tmp\/hello-spring-boot \u5f53\u4f5c\u9879\u76ee\u6587\u4ef6\u5939<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">cd<\/span> ~\/tmp\/hello-spring-boot\r\n<\/code><\/pre>\n<p>\u5728\u6784\u5efaJava\u5e94\u7528\u7a0b\u5e8f\u65f6\uff08\u8bf7\u53c2\u8003\uff09\uff0c<br \/>\n\u5c06\u521b\u5efa\u4e00\u4e2a\u76ee\u6807\/app.jar\u7684\u6587\u4ef6\u3002<br \/>\n\u5e76\u4e0d\u4e00\u5b9a\u662f\u5fc5\u9700\u7684\uff0c\u56e0\u4e3a\u5728\u521b\u5efa\u4e0b\u9762\u7684Docker\u955c\u50cf\u65f6\uff0c\u540c\u65f6\u4e5f\u4f1a\u521b\u5efa\u76ee\u6807\/app.jar\u7684\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>mvn clean <span class=\"nb\">install<\/span>\r\n<\/code><\/pre>\n<h3>\u521b\u5efaDocker\u955c\u50cf<\/h3>\n<p>\u6784\u5efaDocker\u955c\u50cf<br \/>\n* \u5728\u672c\u5730Docker\u73af\u5883(Docker Desktop)\u4e2d\u521b\u5efaapp-hello-spring-boot Docker\u955c\u50cf\u3002<br \/>\n* Docker\u955c\u50cf\u7684\u521b\u5efa\u65f6\u95f4\u662f\u6839\u636espring-boot:build-image\u89c4\u8303\u8bbe\u7f6e\u4e3aUnix\u7eaa\u5143\u65f6\u95f4\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>mvn spring-boot:build-image <span class=\"se\">\\<\/span>\r\n    <span class=\"nt\">-Dspring-boot<\/span>.build-image.imageName<span class=\"o\">=<\/span>app-hello-spring-boot\r\n<\/code><\/pre>\n<p>\u68c0\u67e5Docker\u955c\u50cf\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>docker images | <span class=\"nb\">grep <\/span>app-hello-spring-boot\r\napp-hello-spring-boot   latest   e37cc77f2b36   43 years ago   262MB\r\n<\/code><\/pre>\n<h3>\u51c6\u5907 Kubernetes \u73af\u5883<\/h3>\n<h4>Docker\u684c\u9762\u7248<\/h4>\n<p>\u542f\u7528Docker Desktop\u7684Kubernetes\u73af\u5883\u3002<\/p>\n<p>\\[\\text{\u8bbe\u7f6e} \\rightarrow \\text{Kubernetes}\\]<\/p>\n<p>Enable Kubernetes<\/p>\n<h3>\u521b\u5efaKubernetes\u7684\u6e05\u5355\u6587\u4ef6\u3002<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>vim kube-all-in-one.yaml\r\n<\/code><\/pre>\n<p>\u6587\u4ef6\u7684\u5185\u5bb9<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Service<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">app-service<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">type<\/span><span class=\"pi\">:<\/span> <span class=\"s\">NodePort<\/span>\r\n  <span class=\"na\">selector<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">app<\/span><span class=\"pi\">:<\/span> <span class=\"s\">app<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">http<\/span>\r\n    <span class=\"na\">port<\/span><span class=\"pi\">:<\/span> <span class=\"m\">8080<\/span>\r\n    <span class=\"na\">targetPort<\/span><span class=\"pi\">:<\/span> <span class=\"m\">8080<\/span>\r\n    <span class=\"na\">nodePort<\/span><span class=\"pi\">:<\/span> <span class=\"m\">30000<\/span>\r\n<span class=\"nn\">---<\/span>\r\n<span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">apps\/v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Deployment<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">app-deployment<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">replicas<\/span><span class=\"pi\">:<\/span> <span class=\"m\">1<\/span>\r\n  <span class=\"na\">selector<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">matchLabels<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">app<\/span><span class=\"pi\">:<\/span> <span class=\"s\">app<\/span>\r\n  <span class=\"na\">template<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">app<\/span><span class=\"pi\">:<\/span> <span class=\"s\">app<\/span>\r\n    <span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">containers<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">app<\/span>\r\n        <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">app-hello-spring-boot<\/span>\r\n        <span class=\"na\">imagePullPolicy<\/span><span class=\"pi\">:<\/span> <span class=\"s\">IfNotPresent<\/span>\r\n        <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"na\">containerPort<\/span><span class=\"pi\">:<\/span> <span class=\"m\">8080<\/span>\r\n<\/code><\/pre>\n<h3>\u76ee\u5f55\u6587\u4ef6\u7ed3\u6784<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>tree <span class=\"nt\">-I<\/span> <span class=\"nb\">test<\/span> <span class=\"nt\">-I<\/span> target\r\n<span class=\"nb\">.<\/span>\r\n\u251c\u2500\u2500 Dockerfile\r\n\u251c\u2500\u2500 HELP.md\r\n\u251c\u2500\u2500 docker-compose.yml\r\n\u251c\u2500\u2500 kube-all-in-one.yaml\r\n\u251c\u2500\u2500 mvnw\r\n\u251c\u2500\u2500 mvnw.cmd\r\n\u251c\u2500\u2500 nginx.conf\r\n\u251c\u2500\u2500 pom.xml\r\n\u2514\u2500\u2500 src\r\n    \u2514\u2500\u2500 main\r\n        \u251c\u2500\u2500 java\r\n        \u2502\u00a0\u00a0 \u2514\u2500\u2500 com\r\n        \u2502\u00a0\u00a0     \u2514\u2500\u2500 example\r\n        \u2502\u00a0\u00a0         \u2514\u2500\u2500 springboot\r\n        \u2502\u00a0\u00a0             \u251c\u2500\u2500 SpringbootApplication.java\r\n        \u2502\u00a0\u00a0             \u2514\u2500\u2500 controller\r\n        \u2502\u00a0\u00a0                 \u2514\u2500\u2500 DataController.java\r\n        \u2514\u2500\u2500 resources\r\n            \u251c\u2500\u2500 application.properties\r\n            \u251c\u2500\u2500 static\r\n            \u2514\u2500\u2500 templates\r\n<\/code><\/pre>\n<h3>Kubernetes\u73af\u5883<\/h3>\n<p>\u7248\u672c\u786e\u8ba4<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>kubectl version <span class=\"nt\">--short<\/span>\r\nClient Version: v1.25.4\r\nKustomize Version: v4.5.7\r\nServer Version: v1.25.4\r\n<\/code><\/pre>\n<p>\u786e\u8ba4\u8fde\u63a5\u76ee\u6807<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>kubectl config current-context\r\ndocker-desktop\r\n<\/code><\/pre>\n<p>\u203b \u5982\u679c\u8981\u5c06\u8fde\u63a5\u6062\u590d\u5230\u672c\u5730(docker-desktop)\u7684\u60c5\u51b5\u4e0b<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>kubectl config use-context docker-desktop\r\n<\/code><\/pre>\n<p>\u90e8\u7f72<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>kubectl apply <span class=\"nt\">-f<\/span> kube-all-in-one.yaml\r\nservice\/app-service created\r\ndeployment.apps\/app-deployment created\r\n<\/code><\/pre>\n<p>\u786e\u8ba4\u72b6\u6001<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>kubectl get pods,services,deployments\r\nNAME                                 READY   STATUS    RESTARTS   AGE\r\npod\/app-deployment-cdc7dcbf9-4rkp2   1\/1     Running   0          22s\r\n\r\nNAME                  TYPE        CLUSTER-IP      EXTERNAL-IP   PORT<span class=\"o\">(<\/span>S<span class=\"o\">)<\/span>          AGE\r\nservice\/app-service   NodePort    10.103.38.116   &lt;none&gt;        8080:30000\/TCP   22s\r\nservice\/kubernetes    ClusterIP   10.96.0.1       &lt;none&gt;        443\/TCP          2d22h\r\n\r\nNAME                             READY   UP-TO-DATE   AVAILABLE   AGE\r\ndeployment.apps\/app-deployment   1\/1     1            1           22s\r\n<\/code><\/pre>\n<p>\u5f53\u6211\u4eec\u68c0\u67e5Docker\u684c\u9762\u65f6\uff0c\u5b83\u4f5c\u4e3a\u4e00\u4e2a\u5bb9\u5668\u5728\u8fd0\u884c\u3002<\/p>\n<p>\u8bf7\u4f7f\u7528\u7f51\u7edc\u6d4f\u89c8\u5668\u8fdb\u884c\u786e\u8ba4\u3002<\/p>\n<pre class=\"post-pre\"><code>http:\/\/localhost:30000\/api\/data\r\n<\/code><\/pre>\n<p>\u6211\u6210\u529f\u5730\u5728\u7f51\u9875\u6d4f\u89c8\u5668\u4e0a\u663e\u793a\u4e86{&#8220;message&#8221;:&#8221;Hello World!&#8221;}\u5e76\u83b7\u53d6\u4e86JSON\u6570\u636e\u3002<\/p>\n<p>\u53ef\u4ee5\u901a\u8fc7\u53e6\u4e00\u4e2a\u7ec8\u7aef\u7684\u547d\u4ee4\u8fdb\u884c\u786e\u8ba4\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>curl <span class=\"nt\">-X<\/span> GET http:\/\/localhost:30000\/api\/data\r\n<span class=\"o\">{<\/span><span class=\"s2\">\"message\"<\/span>:<span class=\"s2\">\"Hello World!\"<\/span><span class=\"o\">}<\/span>\r\n<\/code><\/pre>\n<h2>\u603b\u7ed3 ji\u00e9)<\/h2>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Ubuntu \u306e \u6700\u5c0f\u69cb\u6210\u306e Java \u958b\u767a\u74b0\u5883\u3067 Spring Boot WEB\u30b5\u30fc\u30d3\u30b9\u3092 Kubernetes \u74b0\u5883\u306b\u3066\u30b3\u30f3\u30c6\u30ca\u3068\u3057\u3066\u8d77\u52d5\u3055\u305b\u308b\u3053\u3068\u304c\u51fa\u6765\u307e\u3057\u305f\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u6b21\u306e\u30b9\u30c6\u30c3\u30d7\u3068\u3057\u3066\u69cb\u6210\u306b\u30ea\u30d0\u30fc\u30b9\u30d7\u30ed\u30ad\u30b7\u3092\u52a0\u3048\u308b\u8a2d\u5b9a\u306b\u7d9a\u304d\u307e\u3059\u3002<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u5728Kubernetes\u73af\u5883\u4e0b\u542f\u52a8Spring Boot WEB\u670d\u52a1 \u76ee\u7684 &#8211; One option [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-36230","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u5728 Kubernetes \u73af\u5883\u4e0b\u542f\u52a8 Spring Boot WEB \u670d\u52a1 - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5728-kubernetes-\u73af\u5883\u4e0b\u542f\u52a8-spring-boot-web-\u670d\u52a1\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u5728 Kubernetes \u73af\u5883\u4e0b\u542f\u52a8 Spring Boot WEB \u670d\u52a1\" \/>\n<meta property=\"og:description\" content=\"\u5728Kubernetes\u73af\u5883\u4e0b\u542f\u52a8Spring Boot WEB\u670d\u52a1 \u76ee\u7684 &#8211; One option [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5728-kubernetes-\u73af\u5883\u4e0b\u542f\u52a8-spring-boot-web-\u670d\u52a1\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-02-01T09:20:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-28T18:32:47+00:00\" \/>\n<meta name=\"author\" content=\"\u65b0, \u97f5\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u65b0, \u97f5\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8-kubernetes-%e7%8e%af%e5%a2%83%e4%b8%8b%e5%90%af%e5%8a%a8-spring-boot-web-%e6%9c%8d%e5%8a%a1\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8-kubernetes-%e7%8e%af%e5%a2%83%e4%b8%8b%e5%90%af%e5%8a%a8-spring-boot-web-%e6%9c%8d%e5%8a%a1\/\",\"name\":\"\u5728 Kubernetes \u73af\u5883\u4e0b\u542f\u52a8 Spring Boot WEB \u670d\u52a1 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-02-01T09:20:26+00:00\",\"dateModified\":\"2024-04-28T18:32:47+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8-kubernetes-%e7%8e%af%e5%a2%83%e4%b8%8b%e5%90%af%e5%8a%a8-spring-boot-web-%e6%9c%8d%e5%8a%a1\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8-kubernetes-%e7%8e%af%e5%a2%83%e4%b8%8b%e5%90%af%e5%8a%a8-spring-boot-web-%e6%9c%8d%e5%8a%a1\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8-kubernetes-%e7%8e%af%e5%a2%83%e4%b8%8b%e5%90%af%e5%8a%a8-spring-boot-web-%e6%9c%8d%e5%8a%a1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u5728 Kubernetes \u73af\u5883\u4e0b\u542f\u52a8 Spring Boot WEB \u670d\u52a1\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9\",\"name\":\"\u65b0, \u97f5\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g\",\"caption\":\"\u65b0, \u97f5\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunxin\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8-kubernetes-%e7%8e%af%e5%a2%83%e4%b8%8b%e5%90%af%e5%8a%a8-spring-boot-web-%e6%9c%8d%e5%8a%a1\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u5728 Kubernetes \u73af\u5883\u4e0b\u542f\u52a8 Spring Boot WEB \u670d\u52a1 - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u5728-kubernetes-\u73af\u5883\u4e0b\u542f\u52a8-spring-boot-web-\u670d\u52a1\/","og_locale":"zh_CN","og_type":"article","og_title":"\u5728 Kubernetes \u73af\u5883\u4e0b\u542f\u52a8 Spring Boot WEB \u670d\u52a1","og_description":"\u5728Kubernetes\u73af\u5883\u4e0b\u542f\u52a8Spring Boot WEB\u670d\u52a1 \u76ee\u7684 &#8211; One option [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u5728-kubernetes-\u73af\u5883\u4e0b\u542f\u52a8-spring-boot-web-\u670d\u52a1\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-02-01T09:20:26+00:00","article_modified_time":"2024-04-28T18:32:47+00:00","author":"\u65b0, \u97f5","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u65b0, \u97f5","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"2 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8-kubernetes-%e7%8e%af%e5%a2%83%e4%b8%8b%e5%90%af%e5%8a%a8-spring-boot-web-%e6%9c%8d%e5%8a%a1\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8-kubernetes-%e7%8e%af%e5%a2%83%e4%b8%8b%e5%90%af%e5%8a%a8-spring-boot-web-%e6%9c%8d%e5%8a%a1\/","name":"\u5728 Kubernetes \u73af\u5883\u4e0b\u542f\u52a8 Spring Boot WEB \u670d\u52a1 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-02-01T09:20:26+00:00","dateModified":"2024-04-28T18:32:47+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8-kubernetes-%e7%8e%af%e5%a2%83%e4%b8%8b%e5%90%af%e5%8a%a8-spring-boot-web-%e6%9c%8d%e5%8a%a1\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8-kubernetes-%e7%8e%af%e5%a2%83%e4%b8%8b%e5%90%af%e5%8a%a8-spring-boot-web-%e6%9c%8d%e5%8a%a1\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8-kubernetes-%e7%8e%af%e5%a2%83%e4%b8%8b%e5%90%af%e5%8a%a8-spring-boot-web-%e6%9c%8d%e5%8a%a1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u5728 Kubernetes \u73af\u5883\u4e0b\u542f\u52a8 Spring Boot WEB \u670d\u52a1"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9","name":"\u65b0, \u97f5","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g","caption":"\u65b0, \u97f5"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunxin\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8-kubernetes-%e7%8e%af%e5%a2%83%e4%b8%8b%e5%90%af%e5%8a%a8-spring-boot-web-%e6%9c%8d%e5%8a%a1\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/36230","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=36230"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/36230\/revisions"}],"predecessor-version":[{"id":75292,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/36230\/revisions\/75292"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=36230"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=36230"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=36230"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}