如何用k8s部署Java项目

使用dockerFile部署jar包 推送至阿里云镜像仓库

 

 (1)打需要部署项目的jar包

(2)创建Dockerfile文件(如下: Dockerfile文件 示例)

(3)构建镜像 docker build -t 仓库地址+版本号 --platform linux/amd64  

(4)修改镜像绑定远程仓库:docker tag 2733566c7b0a registry.cn-beijing.aliyuncs.com/agatha-dev/dev:1.0  (如图)

(5)推送镜像至远程仓库:docker push registry.cn-beijing.aliyuncs.com/agatha-dev/dev:1.0 (如图)

 

(6)指定配置文件并启动服务

kubectl apply -f car-deploy.yaml

 

 

 

 Dockerfile文件 示例
 
1
2
3
4
5
6
7
8
9
10
## 基础镜像java
FROM java:8
## 作者 Oak
MAINTAINER Oak
## 就是你上传的jar包的名称。给jar包起个别名
ADD project-spring_boot-1.0-SNAPSHOT.jar spring_boot.jar
## 就是在容器中以多少端口号运行
EXPOSE 8066
## 容器启动之后执行的命令,java -jar spring_boot.jar 即启动jar
ENTRYPOINT ["java","-jar","spring_boot.jar"]

  

k8s的网络请求

 

 

 

k8s的常用命令 

1
2
3
4
5
6
7
8
9
10
11
kubectl get ingress -n prod
 
kubectl get deployment -n prod
 
kubectl get pod -n prod
 
kubectl get service -n prod
 
kubectl logs -f -n prod prodName-6cc4c54645-765g9 看日志
 
kubectl apply -f ~/Downloads/paas/007.yaml 更新配置文件

 

car.yaml   示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: prod
  name: car-deployment
  labels:
    app: car
spec:
  replicas: 5
  selector:
    matchLabels:
      app: car
  template:
    metadata:
      labels:
        app: car
    spec:
      containers:
        - name: car
          image: registry.cn-beijing.aliyuncs.com/agatha-dev/dev:1.3
          ports:
            - containerPort: 8066
# ---
# apiVersion: v1
# kind: Service
# metadata:
#   namespace: prod
#   name: car
# spec:
#   selector:
#     app: car
#   ports:
#     - name: car
#       protocol: TCP
#       port: 8066
#       targetPort: 8066
# ---
# apiVersion: networking.k8s.io/v1
# kind: Ingress
# metadata:
#   namespace: prod
#   name: ingress-car
# spec:
#   rules:
#     - host: "k8s.agatha.pro"
#       http:
#         paths:
#           - pathType: Prefix
#             path: "/"
#             backend:
#               service:
#                 name: car
#                 port:
#                   number: 8066

  

 k8s的一些基础概念

(1)kubeadm(管理端)
(2)kubelet(服务端)
(3)kubectl(客户端)(创建和管理 Deployment(一根豆子),可以有很多Pod 容器组(一颗豆子),一个Pod可以部署1+个jar包;Service 类似ng)

  负责 Kubernetes 主节点和工作节点之间通信的过程; 它管理 Pod 和机器上运行的容器,容器运行时(如 Docker)负责从仓库中提取容器镜像,解压缩容器以及运行应用程序。
      

posted @   哦克Oak  阅读(2268)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示