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
package com.example.sample1.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class SampleController { @RequestMapping("/sample") public String home() { return "Hello World"; } }
★Dockerfile
FROM tomcat:10-jdk8 COPY ./sample1-0.0.1-SNAPSHOT.war /usr/local/tomcat/webapps/ EXPOSE 8080
★springboot_deployment.yaml
yaml
apiVersion: apps/v1 kind: Deployment metadata: name: spring-boot-sample1 spec: replicas: 1 selector: matchLabels: app: spring-boot-sample1 template: metadata: labels: app: spring-boot-sample1 visualize: "true" spec: containers: - name: spring-boot-sample1-pod image: (Dockerユーザ名)/springboot-sample1:v1 ports: - containerPort: 8080 --- apiVersion: v1 kind: Service metadata: labels: visualize: "true" service-label: spring-boot-sample1-service name: spring-boot-sample1-service-name spec: type: ClusterIP ports: - name: angular-sample-service-port-name port: 8080 protocol: TCP selector: app: spring-boot-sample1
★springboot-sample1-load-balancer-service.yaml
yaml
apiVersion: v1 kind: Service metadata: labels: service-label: spring-boot-sample1-service name: spring-boot-sample1-loadbalancer spec: type: LoadBalancer ports: - name: spring-boot-sample1-service-port-name port: 8080 protocol: TCP selector: app: spring-boot-sample1
まだ回答がついていません
会員登録して回答してみよう