Kubernetes中部署Spring Boot項目(七)

這個springboot項目打包過程我就不說了,很基礎;下面我直接從寫Dockerfile文件開始,如果不知道Dockerfile文件是什麼的可以去看下我寫的幾篇docker的文章

一、創建文件夾

mkdir springboot-demo
cd springboot-demo

二、創建Dockerfile文件

vi Dockerfile

將下面文件複製進去

ROM openjdk:8-jre-alpine
COPY springboot-demo-0.0.1-SNAPSHOT.jar /springboot-demo.jar
ENTRYPOINT ["java","-jar","/springboot-demo.jar"]

三、根據Dockerfile創建image

docker build -t springboot-demo-image .

四、使用docker run創建container

docker run -d --name s1 springboot-demo-image

五、訪問測試

docker inspect s1
curl ip:8080/k8s

六、將鏡像推送到鏡像倉庫

我自己電腦沒有創建私服的鏡像倉庫,所以我上傳到我自己的阿里雲鏡像倉庫了,如果想創建私服也可以看我的docker文章,裡面也有說明怎麼創建

登錄阿里雲鏡像倉庫

docker login [email protected] registry.cn-hangzhou.aliyuncs.com

打tag標籤

docker tag springboot-demo-image:v1.0 ghy/springboot-demo-image:v1.0

上傳阿里雲

docker push ghy/springboot-demo-image:v1.0

七、編寫Kubernetes配置文件

vi springboot-demo.yaml
# 以Deployment部署Pod
apiVersion: apps/v1
kind: Deployment
metadata: 
  name: springboot-demo
spec: 
  selector: 
    matchLabels: 
      app: springboot-demo
  replicas: 1
  template: 
    metadata:
      labels: 
        app: springboot-demo
    spec: 
      containers: 
      - name: springboot-demo
        image: ghy/springboot-demo-image:v1.0
        ports: 
        - containerPort: 8080
---
# 創建Pod的Service
apiVersion: v1
kind: Service
metadata: 
  name: springboot-demo
spec: 
  ports: 
  - port: 80
    protocol: TCP
    targetPort: 8080
  selector: 
    app: springboot-demo
---
# 創建Ingress,定義訪問規則,一定要記得提前創建好nginx ingress controller
apiVersion: extensions/v1beta1
kind: Ingress
metadata: 
  name: springboot-demo
spec: 
  rules: 
  - host: k8s.demo
    http: 
      paths: 
      - path: /
        backend: 
          serviceName: springboot-demo
          servicePort: 80

執行命令執行腳本

kubectl apply -f springboot-demo.yaml

八、查看資源

查看資源命令

kubectl get pods
kubectl get pods -o wide
kubectl get svc

查看訪問的域名,會看到hosts上的域名

kubectl get ingress

九、win配置hosts文件

 192.168.0.61 k8s.demo

十、win瀏覽器訪問

//k8s.demo/介面