Kubernetesを勉強しているものです。
以下のサイトを参考にDocker DesktopのKubernetesを使ってTomcatにwarファイルを配置した状態のpodにブラウザからアクセスしようとしています。
https://betterprogramming.pub/hello-kubernetes-spring-boot-a20e47d57872
以下の手順を実施してブラウザからアクセスをしたのですが、404エラーとなってしまいます。
①Dockerイメージを作成する
docker build -t (Dockerユーザ名)/springboot-sample1:v1 .
②springboot_deployment.yamlからリソースを作成する
kubectl apply -f springboot_deployment.yaml
③Podの状態を確認する
kubectl get pods NAME READY STATUS RESTARTS AGE spring-boot-sample1-798976f57c-l9q8z 1/1 Running 0 13m
④Podにアクセスしてwarファイルが配置されているかを確認する
kubectl exec -it spring-boot-sample1-798976f57c-l9q8z /bin/bash kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead. root@spring-boot-sample1-798976f57c-l9q8z:/usr/local/tomcat# ls -la root@spring-boot-sample1-798976f57c-l9q8z:/usr/local/tomcat# ls -la total 176 drwxr-xr-x 1 root root 4096 Dec 22 17:10 . drwxr-xr-x 1 root root 4096 Dec 22 17:09 .. -rw-r--r-- 1 root root 18994 Dec 2 22:01 BUILDING.txt -rw-r--r-- 1 root root 6210 Dec 2 22:01 CONTRIBUTING.md -rw-r--r-- 1 root root 60269 Dec 2 22:01 LICENSE -rw-r--r-- 1 root root 2333 Dec 2 22:01 NOTICE -rw-r--r-- 1 root root 3378 Dec 2 22:01 README.md -rw-r--r-- 1 root root 6905 Dec 2 22:01 RELEASE-NOTES -rw-r--r-- 1 root root 16517 Dec 2 22:01 RUNNING.txt drwxr-xr-x 2 root root 4096 Dec 22 17:10 bin drwxr-xr-x 1 root root 4096 Dec 27 14:26 conf drwxr-xr-x 2 root root 4096 Dec 22 17:10 lib drwxrwxrwx 1 root root 4096 Dec 27 14:26 logs drwxr-xr-x 2 root root 4096 Dec 22 17:10 native-jni-lib drwxrwxrwx 2 root root 4096 Dec 22 17:10 temp drwxr-xr-x 1 root root 4096 Dec 27 14:26 webapps drwxr-xr-x 7 root root 4096 Dec 2 22:01 webapps.dist drwxrwxrwx 1 root root 4096 Dec 27 14:26 work root@spring-boot-sample1-798976f57c-l9q8z:/usr/local/tomcat# cd /usr/local/tomcat/webapps root@spring-boot-sample1-798976f57c-l9q8z:/usr/local/tomcat/webapps# ls -la total 17220 drwxr-xr-x 1 root root 4096 Dec 27 14:26 . drwxr-xr-x 1 root root 4096 Dec 22 17:10 .. drwxr-x--- 5 root root 4096 Dec 27 14:26 sample1-0.0.1-SNAPSHOT -rwxr-xr-x 1 root root 17614964 Dec 27 13:22 sample1-0.0.1-SNAPSHOT.war
⑤springboot-sample1-load-balancer-service.yamlからリソースを作成する
springboot-sample1-load-balancer-service.yaml
⑥サービス状態を確認する
kubectl get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 6d2h spring-boot-sample1-loadbalancer LoadBalancer XX.XXX.XXX.XX localhost 8080:30175/TCP 10s spring-boot-sample1-service-name ClusterIP XX.XXX.XXX.XX <none> 8080/TCP 25s
⑦http://localhost:8080/sampleにアクセスするが404となる
原因を調べていますが、今のところ見つかっていません
Kubernetes、Tomcatに詳しい方がいましたらご回答いただけないでしょうか?
よろしくお願いいたします。
ちなみに設定した内容は以下です。
★SampleController.java
Java
1package com.example.sample1.controller; 2 3import org.springframework.web.bind.annotation.RequestMapping; 4import org.springframework.web.bind.annotation.RestController; 5 6@RestController 7public class SampleController { 8 @RequestMapping("/sample") 9 public String home() { 10 return "Hello World"; 11 } 12}
★Dockerfile
FROM tomcat:10-jdk8 COPY ./sample1-0.0.1-SNAPSHOT.war /usr/local/tomcat/webapps/ EXPOSE 8080
★springboot_deployment.yaml
yaml
1apiVersion: apps/v1 2kind: Deployment 3metadata: 4 name: spring-boot-sample1 5spec: 6 replicas: 1 7 selector: 8 matchLabels: 9 app: spring-boot-sample1 10 template: 11 metadata: 12 labels: 13 app: spring-boot-sample1 14 visualize: "true" 15 spec: 16 containers: 17 - name: spring-boot-sample1-pod 18 image: (Dockerユーザ名)/springboot-sample1:v1 19 ports: 20 - containerPort: 8080 21--- 22apiVersion: v1 23kind: Service 24metadata: 25 labels: 26 visualize: "true" 27 service-label: spring-boot-sample1-service 28 name: spring-boot-sample1-service-name 29spec: 30 type: ClusterIP 31 ports: 32 - name: angular-sample-service-port-name 33 port: 8080 34 protocol: TCP 35 selector: 36 app: spring-boot-sample1
★springboot-sample1-load-balancer-service.yaml
yaml
1apiVersion: v1 2kind: Service 3metadata: 4 labels: 5 service-label: spring-boot-sample1-service 6 name: spring-boot-sample1-loadbalancer 7spec: 8 type: LoadBalancer 9 ports: 10 - name: spring-boot-sample1-service-port-name 11 port: 8080 12 protocol: TCP 13 selector: 14 app: spring-boot-sample1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。